Confidentialité dans les bases de données DRUIDE 2004 Luc Bouganim, Philippe Pucheral

Download Report

Transcript Confidentialité dans les bases de données DRUIDE 2004 Luc Bouganim, Philippe Pucheral

Confidentialité dans les
bases de données
DRUIDE 2004
Luc Bouganim, Philippe Pucheral
INRIA & Université de Versailles
Pré[email protected]
2
Plan
• Problématique
– Besoins de confidentialité
– Caractérisation des attaques
– Définition du problème et approches traditionnelles
• Protection de BD relationnelles
– Modèle de contrôle d’accès SQL
– Chiffrement et interrogation
• Protection de données XML
– Modèle(s) de contrôle d’accès XML
– Chiffrement et interrogation/diffusion
• Perspectives
– Evolution des modèles de contrôle d’accès
– Contrôle d’usage
Problématique
4
Besoins de confidentialité (1) ?
• Omniprésence des bases de données
–
–
–
–
Grands systèmes d’information (publics ou privés)
BD PME
BD personnelles (agenda, carnet d’adresses, bookmarks …)
BD "ambiantes" (capteurs, aware home …)
• L’organisation des données est un facteur de risque
– L’analyse d’une collection d’informations insignifiantes peut
générer des résultats sensibles
• L’inter-connexion croissante en est un autre
– Connexions permanentes, accès ubiquitaires, objets
communicants
5
Besoins de confidentialité (2) ?
• Hébergement de données (DSP)
– Hébergement de site Web, sous-traitance de la gestion du système
d’information d’une PME, équipes virtuelles, dossiers personnels …
– caspio.com, quickbase.com, cyberworker.com, primadoctor.com …
– Nombreuses violations de chartes de privacité [AKS02]
• Vulnérabilité des serveurs d’entreprise
– Source CSI/FBI : coût des attaques BD  $103 milliards/an, 45% des
attaques sont internes
– Source ZATAK : 1551 sites français piratés dans le musée de ZATAZ
– Source Clusif (Club de la Sécurité des Systèmes d'Information Français ) :
• Modification, par un concurrent, du carnet de commande d’un équipementier
automobile, induisant des ruptures de stock gravissimes
• Détournement, par une compagnie concurrente, d’informations commerciales du
fichier clients de la compagnie aérienne Virgin
6
Besoins de confidentialité (3) ?
• Indexation des bases de données
– "Google entre vie privée et secret défense" (source : confidentiel.net)
• Négligence
– Craquage d'un système bancaire US (mots de passe trop courts par rapport au
nb de comptes gérés)
– Consultation de la facture détaillée d’autrui (télécom brésil)
• Croisement de bases de données
– CAPPS-II (Computer Assisted Passenger Pre-Screening System) croise des
BD pour lutter contre le terrorisme
Ron Rivest : « La révolution digitale inverse les défauts : ce qui était
autrefois difficile à copier devient facile à dupliquer, ce qui était oublié
devient mémorisé à jamais et ce qui était privé devient public
7
Protection : Solution Oracle ?
• Oracle's 'Unbreakable' Boast Attracts Hackers
– Hack attempts on the company's website have increased to
30,000 per week.
• Some days after ….
– 'When they say their software is unbreakable, they're lying.'
-- Bruce Schneier
– U.K. security researcher David Litchfield revealed that a
common programming error -- a buffer overflow -- was present
in Oracle's application server
8
Confidentialité vs. sécurité
• Authentification
SECURITE
• Contrôle d'accès (droits)
• Confidentialité
• Intégrité (Logique, Physique, Com)
• Complétude (du résultat)
• Disponibilité
• Sauvegarde et reprise sur panne
• Détection d'intrusion
• Audit
• …
9
Caractérisation des attaques de
confidentialité
Pirate
administrateur
utilisateur
Attaque empreinte
disque
Attaque système
Contournement des
droits, inférence
BD
BD
P.M.E.
Serveur BD
Consommateur
/gestionnaire
usage illicite du
contenu
10
Définition du problème
Confidentialité des données : Interdire toute
consultation aux personnes non autorisées
SGBD idéal : Data + Query Mgr + Rights Mgr enceinte sécurisée
Data
Data
Data
Data
Data
Query Mgr
Data
Rights
Mgr
User
Data
– Mise en œuvre « impossible » dans un cadre général
• Les sites les plus « sûrs » sont piratés
11
T1 : Identification/authentification
BD
Utilisateur
Serveur
BD
• Base : login + password
• Nombreux protocoles et systèmes matériels (carte à puce,
biométrie …)
 Nécessaire mais insuffisant !!
12
T2 : Chiffrement des communications
BD
Utilisateur
Serveur
BD
• Technologie éprouvée
• Chiffrement => confidentialité des messages
• Hachage => intégrité des messages
• Signature => non répudiation des transactions
 Nécessaire mais insuffisant !!
13
T3 : Mécanismes de contrôle d’accès
BD
Utilisateur
Serveur
BD
• Droits sophistiqués contrôlés par le serveur
• Ne résiste pas à une attaque sur les fichiers du serveur ou
à une attaque du DBA (DataBase Administrator) !
 Nécessaire mais insuffisant !!
14
T4 : Protection de la BD
BD
Utilisateur
Serveur
BD
• Principe : chiffrer l’empreinte disque de la BD
• Seule solution pour résister aux attaques sur les fichiers
• Mise en œuvre et limites de cette solution ?
Protection
de bases de données
relationnelles
L’approche ‘‘Bases de données’’
I- Indépendance
Physique
X - Standards
II- Indépendance
Logique
III – Langage de
manipulation
IX - Gestion de la
confidentialité
VIII - Concurrence
d’accès
BD
IV - Gestion des
vues
V - Optimisation des
questions
VII - Gestion des
pannes
VI - Gestion de la
cohérence
16
17
Modélisation Relationnelle
Docteurs
Prescriptions
Id-D
Nom
Prénom
1
Dupont
Pierre
2
Durand
Paul
3
Masse
Jean
….
……..
……
Id-V
Ligne
Id-M
Posologie
1
1
12
1 par jour
Visites
Id-D
Id-P
Id-V
Date
Prix
1
2
5
10 gouttes
1
2
1
15 juin
250
2
1
8
2 par jour
1
1
2
12 août
180
2
2
12
1 par jour
2
2
3
13 juillet
350
2
3
3
2 gouttes
2
3
4
1 mars
250
….
….
….
…………
Patients
Médicaments
Id-P
Nom
Prénom
Ville
1
Lebeau
Jacques
Paris
Id-M
Nom
Description
2
Troger
Zoe
Evry
1
Aspegic 1000
……………………………..
3
Doe
John
Paris
2
Fluisédal
……………………………..
4
Perry
Paule
Valenton
3
Mucomyst
……………………………..
….
…….
…….
…….
….
……..
……………………………..
18
Gestion des vues
• Les vues permettent de créer des objets virtuels
• Vue = Question SQL stockée
• Le SGBD stocke la définition et non le résultat
• Exemple : la vue des patients parisiens
Create View Parisiens as (
Select
Nom, Prénom
From
Patients
Where
Patients.Ville = ’Paris’ )
19
Gestion des vues
Le SGBD transforme la question sur les vues en
question sur les relations de base
Requête Q
sur des vues
Résultat
Gestionnaire
de Vues
Requête Q’
sur les relations
de base
Définition
des
vues
Exécution de
requête
20
Confidentialité via les vues
Principe : les droits d’accès sont exprimés sur les
vues plutôt que sur les relations de base
Requête Q
sur des vues
OK
Résultat
Vérification
des droits
OK
Gestionnaire
de Vues
Définition des
Vues
+
Droits
associés
Requête Q’
sur les relations
de base
Exécution de
requête
21
Confidentialité via les vues
Public
(internet)
Employés
(intranet)
Service des
ressources
humaines
Id-E
1
2
3
Nom
Ricks
Trock
Lerich
Prénom
Jim
Jack
Zoe
Poste
5485
1254
5489
4
Doe
Joe
4049
Nombre
Masse
d’employés Salariale
4
890
Id-E
1
2
3
Nom
Ricks
Trock
Lerich
Prénom
Jim
Jack
Zoe
Poste
5485
1254
5489
Adresse
……….
……….
……….
Ville
Paris
Versailles
Chartres
Salaire
230
120
380
4
Doe
Joe
4049
……….
Paris
160
22
Confidentialité dans les SGBDR (bilan)
• GRANT operation ON relations, vues, procédures stockées …
TO utilisateur, groupe
• Modèle de base DAC (Discretionary Access Control)
• Certains systèmes supportent également
– RBAC => adjonction de rôles
– MAC => sécurité multi-niveaux (ex: Trusted Oracle 7 -> 9i,
DB2 …)
 tous les cas supposent que
l'utilisateur passe "par la porte d'entrée" !!
23
Oracle Obfuscation Toolkit
• Fourniture d’un « package » permettant le chiffrement /
déchiffrement de données
• Problèmes :
– Gestion et partage de clés à la charge de l’application
– Système non résistant à un pirate administrateur
• Les packages peuvent être substitués,
• Les données apparaissent en clair lors de l’exécution des requêtes
• ORACLE : « DBA has all privileges » !!
24
Protegrity Secure.Data
BD
Utilisateur
SGBD
+
Secure
Server
• Solution basée sur 2 modules :
Clés
Utilisateurs
Privilèges
Secure
Manager
– Secure.Manager : gestion des utilisateurs, droits et clés
– Secure.Server : module de chiffrement intégré au noyau SGBD
• … et 2 personnes physiques différentes …
– Database Administrator (DBA) / Security Administrator (SA)
• Isolation DBA/SA ?
• Données toujours en clair à un moment de l’exécution
25
Alternatives :
déchiffrement et contrôle sur le client
Data
Data
Data
Data
Data
Query Mgr
Data
Encryption
Decryption
Query Mgr
User
Data
[HIL02] : hébergement de données privées
Data
Data
Data
Data
Query Mgr
Encryption
Decryption
Rights
Mgr
User
Query Mgr
Data
Data
Data
C-SDA [BoP02] : Données partagées (droits différents)
26
Tradeoff : Confidentialité vs Performance
Data
Data
Client
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Query Mgr
Data
Data
Data
[HIL02]
C-SDA [BoP02]
Data
Query Mgr
Data
Client
???
Performance
Confidentialité
Data
Data
Performance inacceptable
Confidentialité maximale
Data
Client
SGBD classique
Data
Performance maximale
Confidentialité minimale
27
C-SDA [BoP02]: Chiffrement granule attribut
Terminal
Serveur


C-SDA


Moyenne
9400
Trouver le zze des lqskdqs
de sdeefa= "zarevgzd"
 Calcul de
la moyenne
 SGBD
lqskdqs
Trouver la moyenne des
salaires des employés
de type = "cadre1"
sdz azds sdeefa zze
zszd dedef zarevgzd Fffe
df’g Sde
...
...
iukèefsa dgss
...
...
zze
Fffe
…..
– Les données sont chiffrées par attribut en respectant la propriété : a=b  E(a)=E(b)
– La partie des requêtes non évaluable sur les données chiffrées est évaluée sur la carte
(prédicats <, >, fonctions de calcul, etc..)
28
C-SDA : Décomposition d’une requête
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
C.Code, C.nom, sum(Q.montant)
Client C, Commandes Q
C.Code = Q.Code and Q.date > 1996
C.Code, C.nom
count(*) >= 10
C.nom
1.
Produit cartésien des relations du FROM : Client X Commande
2.
Prédicats du WHERE : C.code = Q.Code and Q.date > 1996
3. Groupement (GROUP BY) : C.Code, C.Nom
4.
Calcul des agrégats : Count(*) , sum(Q.montant)
5.
Prédicats du HAVING : Count(*) >= 10
6. Projection (SELECT) : C.Code, C.nom, sum(Q.montant)
7.
Tri final (ORDER BY) : C.Nom
Alternatives à l’hypothèse a=b  E(a)=E(b)
Data
Data
Data
Data
Data
Encryption
Decryption
Query Mgr
Data
Query Mgr
User
Data
• [Hacigumus et al, SIGMOD’02], Univ. Irvine, CA
• Granule de chiffrement = tuple dans sa globalité
• Ajout d’index d’attributs
– Indique l’appartenance d’un attribut d’un tuple à une plage de valeurs
– Permet des traitements approximatifs sur le serveur
Row:
Encrypted row:
id name age salary
Encrypted row
Iid Iname Iage Isalary
index
29
30
[HIL02] : Attributs numériques
• Partitionner le domaine de variation d’un attribut
Connaissance du client
h(1)=17 h(2)=4 h(3)=12 h(4)=3 h(5)=6 h(6)=1 h(7)=9
20
25
30
35
40
45
50
55
Connaissance du serveur
(Age=37)
(Age=53)
(Age=26)
E(R1)
E(R2)
E(R3)
IAge
3
9
4
32<Age<40
Age=53
IAge= 12
or
IAge= 3
IAge= 9
31
[HIL02] : Attributs String
• Signatures de string (n-grams)
Connaissance du client
N={"g", "re", "ma"}
exemple :
string
signature
'Greencar'
110
'Bigrecordman'
111
'Bigman'
101
name LIKE '%green%'
Connaissance du serveur I
Name
E(R1)
E(R2)
E(R3)
110
111
101
IName in (110, 111)
Protection de données
XML
33
Données XML
• Modèle de données XML
– Modèle de données semi-structuré et arborescent
– Standard pour l’échange, le stockage, la description d’information
• Impact
– Comment définir la vue autorisée d’un document XML ?
– Comment prendre en compte des modèles de diffusion ?
• Exemple : un agenda en XML
....
Appointment
Category
Work
General
Appointment
Category
Content
Friend
Start
End
Avail.
Contact
Title
Notes
10:00
12:00
Busy
François
e-gate
….
General
Content
Start End Avail. Contact Tiltle
22:00 24:00
Out
Bob
Cinema
Kill Bil
Notes
…..
34
Règles d’autorisation dans XML
• Plusieurs modèles proposés
– pas encore de standard…
• Les règles d’autorisation sont décrites sous forme d’ACL
sujet
accès
• ACL : un utilisateur a une permission (ou une
interdiction) d’accéder à une ressource donnée
objet
• Utilisation du langage XPATH pour désigner …
• des « ressources » sur le document à protéger
• éventuellement des sujets, sur un document XML les contenant
35
Exemple (simplifié)
....
Appointment
Category
Work
General
Appointment
Category
Content
Friend
Start
End
Avail.
Contact
Title
Notes
10:00
12:00
Busy
François
e-gate
….
General
Content
Start End Avail. Contact Tiltle
22:00 24:00
Out
Bob
Cinema
Kill Bil
Notes
…..
• Politique fermée
• Rule 1 : < Friends, , //Appointment /general>
• Rule 2 : < Friends, , //Appointment[Content/Contact=USER]/Content>
• Rule 3 : < Friends, , //Notes>
36
Exemple (simplifié)
....
Appointment
Category
Work

General
 

Appointment
Category
Content
Friend
Start
End
Avail.
Contact
Title
10:00
12:00
Busy
François
e-gate
Notes

….

General

Content
   
 
Start End Avail. Contact Tiltle
22:00 24:00
Out
Bob
Cinema
Kill Bil
Notes
…..
• Politique fermée
• Rule 1 : < Friends, , //Appointment /general>
• Rule 2 : < Friends, , //Appointment[Content/Contact=USER]/Content>
• Rule 3 : < Friends, , //Notes>
• Règles de gestion de conflits :
– Denial-Takes-Precedence
– Most-Specific-Object-Takes-Precedence
37
Chiffrement de données XML
• Les mêmes problèmes qu’en relationnel se posent :
– Où et qui vérifie les droits ?
– Où réalise-t-on le déchiffrement ?
• Et si l’on considère des modèles de diffusion …
– Comment distribuer les clés ?
– Comment mettre à jour les droits ?
– Comment faire le contrôle en flux ?
38
Exemples : AuthorX [BCF01], [BDP04]
Règles
d’accès
Document chiffré en fonction des droits
Document chiffré
Diffusion
Diffusion
Canal sécurisé
Clés de
l’utilisateur
Règles d’accès
Clés de chiffrt
SOE
Vue
autorisée
Decryption
Integrity control
Access control
Vue autorisée
AuthorX [BCF01] associe clés et droit.
– droits "compilés" statiquement lors du
chiffrement
– clés distribuées en fonction des droits
– Mise à jour des droits  rechiffrement et
redistribution des clés
Au contraire, [BDP04] dissocie droit et chiffrt
–
–
–
–
Pas de contrainte de chiffrement
droits évalués dynamiquement dans un SOE
Maj des droits facile à prendre en compte
Evaluation en flux des droits XPATH
Perspectives
(non exhaustif)
40
Contrôle d’usage
• Hippocratic Databases [AKS+02]
– contrôler l’usage des données gérées par un SGBD
• 10 principes fondateurs :
– 1-Purpose Specification, 2-Consent, 3-Limited Collection,
4-Limited Use, 5-Limited Disclosure, 6-Limited Retention,
7-Accuracy, 8-Safety, 9-Openness, 10-Compliance
• Chacun de ces principes génère un problème de recherche
• Travaux connexes :
– P3P (Platform for Privacy Preference, W3C)
– Relais d’anonymat, pseudonymat, contrôle parental
– Et aussi gestion des droits d’accès digitaux (XrML, XACML,
ODRL …)
41
Evolution des modèles de contrôle d’accès
• Les données sont de moins en moins centralisées
– Sources largement distribuées, autonomes, parfois « pervasives »
(intelligence ambiante)
– Qui fixe les règles du contrôle d’accès ?
– Qui contrôle ces règles ?
– Qui contrôle le contrôleur ?
– Comment empêcher l’inférence d’informations illicites par croisement
d’informations autorisées ?
• Les données sont variées et complexes
– Prise en compte de données arborescents et semi-structurés
– Contrôle sur des images, des vidéos …
• Les modes d’accès à l’information se diversifient
– Client/serveur, diffusion, P2P …
– Prise en compte du contexte de l’accès (obligations, traçabilité) [ABM03]
• Un cas d’école : le futur dossier médical partagé (Libération 25/05)
Références bibliographiques (1)
42
• Motivations :
[CaB02]
[DSS94]
[eCr02]
[FBI03]
[Goo01]
[Qck02]
[Ora04]
The Caspio Bridge DSP. www.caspio.com/bridge.htm
La menace et les attaques informatiques, Délégation Interministérielle pour la
Sécurité des Systèmes d'Information, 1994
The eCriteria DSP. www.ecriteria.net
Computer Security Institute, "CSI/FBI Computer Crime and Security
Survey" http://www.gocsi.com/forms /fbi/pdf.html).
“Google entre vie privée et secret défense” http://www.confidentiel.firstream.net/
The Quickbase DSP. https://www.quickbase.com/
Oracle Unbreakable
http://www.techtv.com/news/securityalert/story/0,24195,3364291,00.html
• BD relationnelles :
[BoP02]
L. Bouganim, P. Pucheral, "Chip-Secured Data Access: Confidential Data on
Untrusted Servers", VLDB, 2002.
[HeW01] J. He, M. Wang, "Cryptography and Relational Database Management
Systems", IDEAS, 2001.
[HIL02] H. Hacigumus, B. Iyer, C. Li, S. Mehrotra, "Executing SQL over encrypted
data in the database-service-provider model", ACM SIGMOD, 2002.
[Mat00] U. Mattsson, Secure.Data Functional Overview, Protegity Technical Paper
TWP-0011, 2000. (http://www.protegrity.com/White_Papers.html)
[Ora02] Oracle Corp., “Advanced Security Administrator Guide”, Release 9.2, 2002.
43
Références bibliographiques (2)
• XML :
[BCF00]
E.Bertino, S.Castano, E.Ferrari, M.Mesiti, "Specifying and Enforcing Access
Control Policies for XML Document Sources", WWW Journal, vol.3, n.3,
2000.
[BCF01] E. Bertino, S. Castano, E. Ferrari, "Securing XML documents with AuthorX", IEEE Internet Computing, 2001.
[BDP04] L. Bouganim, F. Dang Ngoc, P. Pucheral, “Client-Based Access Control
Management for XML documents”, VLDB, 2004
[DDP02] E. Damiani, S. De Capitani di Vimercati, S. Paraboschi, P. Samarati, "A FineGrained Access Control System for XML Documents", ACM TISSEC, vol.
5, n. 2, 2002.
[GaB01] A. Gabillon and E. Bruno, “Regulating access to XML documents. IFIP
Working Conference on Database and Application Security, 2001.
• Perspectives :
[ABM03] A. El Kalam, S. Benferhat, A. Miege, R. Baida, F. Cuppens, C. Saurel, P.
Balbiani, Y. Deswarte, G. Trouessin, "Organization based access control",
IEEE 4th International Workshop on Policies for Distributed Systems and
Networks, 2003.
[AKS02] Agrawal R., Kiernan J., Srikant R., Xu Y., “Hippocratic Databases”, VLDB ,
2002.