Vous êtes sur la page 1sur 9

1 2

Gestion des droits daccs Les menaces


Omniprsence des bases de donnes
Systmes dinformation institutionnels, SI dentreprise, BD personnelles, BD
"ambiantes" et grands oprateurs du Web (Google, Facebook )
Menaces Une information de valeur
Donnes centralises, organises, cohrentes, compltes, jour
Modles de contrle daccs Pouvant rvrer des informations critiques du point de vue personnel,
industriel, commercial, administratif, militaire, diplomatique
Contrle daccs dans SQL
Pouvant tre croise avec une multitude dautres sources
Chiffrement de bases de donnes "Google entre vie prive et secret dfense" (confidentiel.net)
Database in the sky, MySQL
Contrle de lusage des bases de donnes Dsanonymisation de donnes personnelles (Sweeney, AOL)
De plus en plus aux mains de prestataires externes
Hbergement de BD professionnelles ou personnelles
Donnes accumuls par des sites web, fournisseurs de services,

Ron Rivest : La rvolution digitale inverse les dfauts : ce qui tait autrefois
difficile copier devient facile dupliquer, ce qui tait oubli devient mmoris
jamais et ce qui tait priv devient public

3 4
Quelques exemples de vulnrabilit Exemple dusage dtourn :
Que voulez-vous savoir sur vos amis, voisins, nourrice,
La ngligence lorigine de nombreux trous de scurit employs ?
Base des adhrents UMP et leurs dons en accs libre (Canard Enchan, janv 07)
Donnes personnelles de 25 Millions de contribuables Anglais gares (BBC,
nov 07)
Donnes de 70 Millions de vtrans US gares (DataLossDB, oct 09)
Muse des sites francophones pirats environ 50/mois (ZATAZ)
490.000 Bases de Donnes sans protection sur le Web (D. Litchfield) ?
Mme les sites les plus srs sont pirats/analyss
FBI, NASA, Pentagone nchappent pas la rgle
Rapport annuel CSI/FBI
Les SGBD constituent la 1re cible des attaques
45% des attaques sont internes

Parades ?
Unbreakable Oracle cass quelques semaines aprs son annonce
5 6
Exemple dusage dtourn : Autre exemple emblmatique: PRISM NSA
Que voulez-vous savoir sur vos amis, voisins, nourrice, employs ?

The data within the report is compiled from thousands of different sources
that include government, property, and other public record repositories.

7 8
Scurit des Systmes dInformation :
dfinition Une combinaison doutils scuritaires
9- Lgislation
Confidentialit
2- Protection des 3- Autorisations 8- Anonymisation
Seules les personnes autorises ont accs aux ressources du SI communications de donnes
Ressources BD: donnes stockes dans la base ainsi que
traitements activables sur ces donnes Extraction

Intgrit Requtes

Les ressources du SI ne sont pas corrompues User


6- Contrle
BD: toute modification illicite (destruction, altration, dusage
substitution, rejeu) des donnes stockes et changes doivent 5- Audit
pouvoir tre dtecte 4- Chiffrement
des donnes
Disponibilit 7- Rtention
1- Authentification
limite des
Laccs aux ressources du SI est garanti de faon permanente donnes

BD: idem
9 10

T1 : Identification/authentification T2 : Chiffrement des communications

BD BD

Utilisateur Serveur Utilisateur Serveur


BD BD

Au minimum : login (identification) + password (authentification) Technologie prouve (ex: SSL)


Assure la confidentialit des messages
Assur par le SGBD et/ou lOS et/ou lapplication
Techniques cryptographiques complmentaires
Authentification forte : Hachage : intgrit des messages
Forte = 2 lments dauthentification distincts parmi : Signature : authentification et non rpudiation du message
Ce que lentit connat : password, pin code, etc
Ce que lentit dtient : carte puce, token, badge RFID, etc
Ce que lentit est : empreinte biomtrique

11 12

T3 : Contrle daccs Politique de contrle daccs =


ensemble de rgles

BD
Prcise qui est autoris faire quoi sur quelles donnes et
sous quelles conditions
Serveur
Utilisateur BD Format des rgles :

avoir Permission agir


Contrle daccs sophistiqu dans les SGBD raliser
sur Objet
Autorisations affectes des utilisateurs, groupes ou rles avoir
Peut porter sur des objets dune granularit varie : tables, vues, Sujet Interdiction Action
raliser
procdures stockes Ensemble
agir d objets
avoir raliser
Obligation sur
13 14

Modle discrtionnaire (DAC) Commandes SQL Grant


GRANT <liste privileges>
DAC = Discretionary Access Control ON <table ou vue ou procedure stocke >
Contrle daccs discrtionnaire TO <liste utilisateurs>
[ WITH GRANT OPTION ] ;
Principes de DAC
Le crateur dun objet fixe la politique de contrle daccs sur
WITH GRANT OPTION
cet objet
est optionnel
Les sujets reoivent des permissions pour raliser des actions signifie que l utilisateur qui obtient le privilge peut ensuite accorder ce
sur des objets privilge un autre utilisateur
Les sujets ont lautorisation de transfrer certaines permissions
d autres sujets
Ex: GRANT All
Droits discrtionnaires de donner des permissions dautres sujets
ON Prescriptions
TO Dupont // Dupont est mdecin
WITH GRANT OPTION

15 16

Privilges SQL Commande SQL Revoke


REVOKE [ GRANT OPTION FOR ] <liste privileges>
Principaux privilges (permissions) possibles ON <table ou vue ou procdure stocke >
FROM <liste utilisateurs>
SELECT : permet la consultation de la table [option_propagation] ;
INSERT : permet l insertion de nouvelles donnes dans la table
[GRANT OPTION FOR]
UPDATE : permet la mise jour de n importe quelle colonne de la table signifie que seul le droit de transfert est rvoqu
UPDATE(nom_colonne) : permet la mise jour d une colonne spcifique de [option_propagation] = RESTRICT ou CASCADE
la table Supposons que A accorde le privilge p B et B accorde ensuite p C
DELETE : permet de supprimer nimporte quelle donne de la table CASCADE : si A rvoque p B alors C perd aussi le privilge
ALTER : Modifier la dfinition dun objet RESTRICT : si A rvoque p B alors la rvocation choue
EXECUTE : Compiler et excuter une procdure utilise dans un programme
Ex: REVOKE Delete, Update ON Prescriptions
REFERENCE : rfrencer une table dans une contrainte FROM Dupont
INDEX : Crer un index sur une table CASCADE

Ainsi que les fonctions dadministration: CREATE/ALTER/DROP TABLE et Et si un utilisateur U a reu le privilge p de A et de B
CREATE/DROP USER
(sans relation entre A et B) ?
17 18

Confidentialit via les vues Droits daccs sur des vues


Principe : Restreindre l'accs la BD en distribuant Employs Public
les droits via des vues : Service des (intranet) (internet)
ressources
Requte Q humaines
sur des vues
Id-E Nom Prnom Poste
OK 1 Ricks Jim 5485
Rsultat
2 Trock Jack 1254 Nombre Masse
Vrification
3 Lerich Zoe 5489 demploys Salariale
des droits
4 Doe Joe 4049 4 890

OK
Gestionnaire Requte Q
de Vues sur les relations
de base
Dfinition des Id-E Nom Prnom Poste Adresse Ville Salaire
Vues 1 Ricks Jim 5485 . Paris 230
+ 2 Trock Jack 1254 . Versailles 120
Droits Excution de 3 Lerich Zoe 5489 . Chartres 380
associs requte
4 Doe Joe 4049 . Paris 160

19 20

Base de donnes prive virtuelle (VPD) VPD : Contexte dapplication


Principe (Oracle) : Rajouter dynamiquement des conditions aux Oracle a prvu un contexte par dfaut
requtes utilisateur en fonction dun contexte quelconque (li cet USERENV : contient des informations systme relatives la
utilisateur et/ou lapplication) session courante
Requte Q
Exemple : CURRENT_USER, HOST, ISDBA

Rsultat
Possibilit de crer un nouveau contexte et dy associer
des attributs
Contexte Exemple :
Requte Q
Gestionnaire Complte en create context CTX_SEC_MEDICALE using
de VPD fonction du SCHEMA_MED.SEC_MEDICALE
contexte
Fonction
dajout de
condition lie CTX_SEC_MEDICALE sera un contexte associ au package PL/SQL
au contexte Excution de nomm SEC_MEDICALE et stock dans le schma SCHEMA_MED
requte
21 22

VPD : Dfinition des rgles de scurit Exemple de transformation de requtes


Les rgles de scurit sont crites en PL/SQL Supposons que le mdecin Jean formule la requte suivante :
create package body SEC_MEDICALE as SELECT *
function DOSSIER_SEC return varchar2 is
MY_PREDICATE varchar2(2000) ; FROM dossier_medical
begin WHERE id_patient = 'Paul'
MY_PREDICATE := 'id_patient in
(SELECT id_patient
FROM dossier_medical Lapplication de la rgle mesdossiers va automatiquement
WHERE medecin_traitant = sys_context("USERENV", transformer cette requte en la requte suivante :
"CURRENT_USER"))' ;
return MY_PREDICATE ; SELECT *
end DOSSIER_SEC ; FROM dossier_medical
end SEC_MEDICALE ; WHERE id_patient = 'Paul'
AND id_patient in (SELECT id_patient
Puis associes un objet FROM dossier_medical
DBMS_RLS.add_policy // RLS = Row Level Security WHERE medecin_traitant = 'Jean' ) ;
(object_schema => 'SCHEMA_MED',
object_name => dossier_medical',
policy_name => mesdossiers', Jean ne pourra ainsi accder quaux dossiers mdicaux de ses patients
policy_function => ' DOSSIER_SEC');
END;

23 24

RBAC : Role-Based Access Control RBAC : Gestion des rles dans SQL
Cration des rles
Rle = ensemble de privilges associs une fonction CREATE ROLE <nom_role> ;
Cration dun nouveau rle nom_role
Les utilisateurs sont habilits jouer certains rles
DROP ROLE <nom_role> ;
Les rles peuvent tre organiss en hirarchie Suppression du rle nom_role

Factorise la gestion des privilges SET ROLE <liste_roles> ;


Permet un utilisateur d activer un ensemble de rles pendant la dure dune session SQL
Cardiologue Rhumatologue ...
Affectation des privilges aux rles
GRANT <liste privileges>
R1 rle senior de R2 ON <table ou vue ou procdure>
si chaque fois quun utilisateur joue TO <liste roles>
Gnraliste Spcialiste [ WITH GRANT OPTION ] ;
le rle R1, cet utilisateur joue aussi le
rle R2
Affectation des rles aux utilisateurs
GRANT <liste roles>
Permet dexprimer Mdecin TO <liste utilisateurs>
Spcialisation/Gnralisation
Relation hirarchique entre employs Rle junior et rle senior
Personnel mdical GRANT <role1> TO <role2>
Le rle role2 reoit tous les privilges du rle role1
25 26

Exemple dutilisation La thorie face la pratique


Le mdecin a accs aux dossiers de ses patients

Dfinition dune vue


Create view dossier_patient_du_medecin as
Select * From dossier_patient
Where dossier_patient.medecin_traitant = CURRENT_USER ;

Cration du rle mdecin


Create role medecin

Affectation des droits au rle mdecin


Grant all on dossier_patient_du_medecin to medecin
Affectation du rle aux mdecins
Grant medecin to jean, jeanne

27
Synthse sur 28

MAC : Mandatory Access Control


les modles de contrle daccs
Objectif : lutter contre les chevaux de Troie Principe fondateur
transmission illgale dinformations via un programme
Raliser Agir sur
malveillant Sujet Action Objet
Bas sur le modle de Bell-LaPadula
Politique de scurit multi-niveaux (simplifie) DAC
Niveaux de scurit hirarchiques Permet de structurer les Objets
Unclassified < Confidentiel < Secret < Trs Secret RBAC
Permet de structurer les Sujets
Le niveau de scurit dun utilisateur = niveau daccrditation
MAC
Le niveau de scurit dun objet = niveau de classification Lutte contre les programmes malveillants
Mais offre peu de souplesse dans la dfinition des politiques
Principe du contrle
No read up : read permis si accrditation classification
Mais tout cela suppose que l'utilisateur
No write down : write permis si accrditation classification passe "par la porte d'entre" !!
29 30

T4 : Chiffrement de la BD T4 : Oracle Obfuscation Toolkit

Fourniture dun package permettant le chiffrement /


BD dchiffrement de donnes

Utilisateur Serveur
BD Problmes :
Gestion et partage de cls la charge de lapplication
Principe : chiffrer lempreinte disque de la BD pour rsister aux Dgradation des performances
attaques sur les fichiers
Systme non rsistant un pirate administrateur
Exemples : Les packages peuvent tre substitus,
Oracle Obfuscation Toolkit Les donnes apparaissent en clair lors de lexcution des requtes
Protegrity Secure.Data
Oracle, Informix, Sybase, SQL Server, IBM DB2
ORACLE : DBA has all privileges !!

31 32

T4 : Protegrity Secure.Data Alternatives (non gnrales) :


dchiffrement et contrle sur le client
BD

Utilisateur SGBD
+ Data Data Data
Secure Cls
Server Utilisateurs Encryption
Privilges Data Query Mgr
Decryption
Query Mgr User
Secure
Manager Data Data Data

Solution base sur 2 modules : [HIL02] : hbergement de donnes prives


Secure.Manager : gestion des utilisateurs, droits et cls
Secure.Server : module de chiffrement intgr au noyau SGBD
Data Data Data
et 2 personnes physiques diffrentes Rights
Mgr
Encryption
Database Administrator (DBA) / Security Administrator (SA) Data Query Mgr
Decryption User
Query Mgr
Data Data Data
Isolation DBA/SA
Mais donnes toujours en clair un moment de lexcution C-SDA [BoP02] : Donnes partages (droits diffrents)
33 34
Un vu pour le futur :
Les Dix commandements des BDH (suite)
Bases de donnes Hippocratiques
Limitation de divulgation:
Les dix commandements des BDH Ne divulguer les donnes personnelles quaux organismes autoriss par
lutilisateur
Spcification des objectifs:
Les objectifs de la collecte et de lexploitation des donnes doivent tre Limitation de conservation:
associs au stockage de ces donnes Supprimer les donnes dpassant le dlai de conservation prvu
Consentement: Exactitude:
Le consentement de lutilisateur pour stocker/interroger/transmettre ses Sassurer de lexactitude des donnes recueillies
donnes par rapport un objectif annonc doit tre recueilli Sret:
Limitation de collecte: Protger les donnes contre tout type dattaques
Ne collecter que les donnes strictement ncessaires laccomplissement Ouverture:
de lobjectif annonc Doter lutilisateur du droit daccs et de modification de ses donnes
Limitation dusage: personnelles.
Limiter lusage des donnes laccomplissement de lobjectif annonc Conformit:
Doter lutilisateur du droit dauditer le systme et den vrifier la
conformit.