430 likes | 527 Views
Confidentialité dans les bases de données. DRUIDE 2004 Luc Bouganim, Philippe Pucheral INRIA & Université de Versailles Prénom.Nom@inria.fr. Plan. Problématique Besoins de confidentialité Caractérisation des attaques Définition du problème et approches traditionnelles
E N D
Confidentialité dans les bases de données DRUIDE 2004 Luc Bouganim, Philippe Pucheral INRIA & Université de Versailles Prénom.Nom@inria.fr
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
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
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
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
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
Confidentialité vs. sécurité • Authentification • 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 • … SECURITE
Caractérisation des attaques de confidentialité utilisateur Contournement des droits, inférence Pirate Attaque empreinte disque administrateur Attaque système BD P.M.E. BD Consommateur/gestionnaire usage illicite du contenu Serveur BD
Définition du problème Rights Mgr User Data Data Data Query Mgr Data Data Data Data Confidentialité des données : Interdire toute consultation aux personnes non autorisées SGBD idéal : Data + Query Mgr + Rights Mgr enceinte sécurisée • Mise en œuvre « impossible » dans un cadre général • Les sites les plus « sûrs » sont piratés
T1 : Identification/authentification • Base : login + password • Nombreux protocoles et systèmes matériels (carte à puce, biométrie …) Nécessaire mais insuffisant !! BD Serveur BD Utilisateur
T2 : Chiffrement des communications • Technologie éprouvée • Chiffrement => confidentialité des messages • Hachage => intégrité des messages • Signature => non répudiation des transactions Nécessaire mais insuffisant !! BD Serveur BD Utilisateur
T3 : Mécanismes de contrôle d’accès • 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 !! BD Serveur BD Utilisateur
T4 : Protection de la 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 ? BD Serveur BD Utilisateur
L’approche ‘‘Bases de données’’ Système de gestion de bases de données I- Indépendance Physique X - Standards II- Indépendance Logique IX - Gestion de la confidentialité III – Langage de manipulation BD VIII - Concurrence d’accès IV - Gestion des vues V - Optimisation des questions VII - Gestion des pannes VI - Gestion de la cohérence
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 ViewParisiensas( SelectNom, Prénom From Patients Where Patients.Ville = ’Paris’ )
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
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 Requête Q’ sur les relations de base Définition des Vues + Droits associés Exécution de requête
Confidentialité via les vues Public (internet) Employés (intranet) Service des ressources humaines
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" !!
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 » !!
Protegrity Secure.Data BD • Solution basée sur 2 modules : • 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 Clés Utilisateurs Privilèges SGBD + Secure Server Utilisateur Secure Manager
Alternatives : déchiffrement et contrôle sur le client Data Data Data Data Data Data Data Data Data Data Data Rights Mgr Encryption Decryption User Query Mgr Data Query Mgr Data C-SDA [BoP02] : Données partagées (droits différents) Encryption Decryption Query Mgr User Query Mgr Data [HIL02] : hébergement de données privées
Tradeoff : Confidentialité vs Performance Data Data Data Data Data Data Data Data Data Data Data Data Performance inacceptable Confidentialité maximale Client ??? [HIL02] Performance Confidentialité Client Query Mgr Data C-SDA [BoP02] Data Data Data Data Client Query Mgr Data SGBD classique Data Data Data Performance maximale Confidentialité minimale
C-SDA [BoP02]: Chiffrement granule attribut Terminal Serveur Trouver la moyenne des salaires des employés de type = "cadre1" C-SDA SGBD Calcul de la moyenne Moyenne sdz azds sdeefa zze zszd dedef zze zarevgzd Fffe 9400 df’g Sde iukèefsa dgss ... ... ... ... Fffe ….. Trouver le zze des lqskdqs de sdeefa= "zarevgzd" lqskdqs • 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..)
C-SDA : Décomposition d’une requête SELECT C.Code, C.nom, sum(Q.montant) FROM Client C, Commandes Q WHERE C.Code = Q.Code and Q.date > 1996 GROUP BY C.Code, C.nom HAVING count(*) >= 10 ORDER BY C.nom • Produit cartésien des relations du FROM : Client X Commande • Prédicats du WHERE : C.code = Q.Code and Q.date > 1996 • Groupement (GROUP BY) : C.Code, C.Nom • Calcul des agrégats : Count(*) , sum(Q.montant) • Prédicats du HAVING : Count(*) >= 10 • Projection (SELECT) : C.Code, C.nom, sum(Q.montant) • Tri final (ORDER BY) : C.Nom
Alternatives à l’hypothèse a=b E(a)=E(b) Data Data Data Data Data Data Row: id name age salary Encryption Decryption Query Mgr User Query Mgr Data Encrypted row Iid Iname Iage Isalary Encrypted row: index • [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
[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 32<Age<40 Age=53 Connaissance du serveur IAge IAge= 9 IAge= 12 or IAge= 3 (Age=37) E(R1) 3 (Age=53) E(R2) 9 (Age=26) E(R3) 4
[HIL02] : Attributs String • Signatures de string (n-grams) Connaissance du client N={"g", "re", "ma"} exemple : name LIKE '%green%' Connaissance du serveur IName in (110, 111) IName E(R1) 110 E(R2) 111 E(R3) 101
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 Appointment Category Work Category Friend General Content General Content Start 10:00 End 12:00 Avail. Busy Contact François Title e-gate Notes …. Start 22:00 End 24:00 Avail. Out Contact Bob Tiltle Cinema Kill Bil Notes …..
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 • ACL : un utilisateur a une permission (ou une interdiction) d’accéder à une ressource donnée • Utilisation du langage XPATH pour désigner … • des « ressources » sur le document à protéger • éventuellement des sujets, sur un document XML les contenant sujet accès objet
Exemple (simplifié) .... • Politique fermée • Rule 1 : < Friends, , //Appointment /general> • Rule 2 : < Friends, , //Appointment[Content/Contact=USER]/Content> • Rule 3 : < Friends, , //Notes> Appointment Appointment Category Work Category Friend General Content General Content Start 10:00 End 12:00 Avail. Busy Contact François Title e-gate Notes …. Start 22:00 End 24:00 Avail. Out Contact Bob Tiltle Cinema Kill Bil Notes …..
Exemple (simplifié) .... • 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 Appointment Appointment Category Work Category Friend General Content General Content Start 10:00 End 12:00 Avail. Busy Contact François Title e-gate Notes …. Start 22:00 End 24:00 Avail. Out Contact Bob Tiltle Cinema Kill Bil Notes …..
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 ?
Exemples : AuthorX [BCF01], [BDP04] 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 Document chiffré en fonction des droits Règlesd’accès Document chiffré Diffusion Diffusion Canal sécurisé Règles d’accès Clés de chiffrt Clés de l’utilisateur SOE Decryption Integrity control Access control Vue autorisée Vue autorisée
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 …)
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) • Motivations : [CaB02] The Caspio Bridge DSP. www.caspio.com/bridge.htm [DSS94] La menace et les attaques informatiques, Délégation Interministérielle pour la Sécurité des Systèmes d'Information, 1994 [eCr02] The eCriteria DSP. www.ecriteria.net [FBI03] Computer Security Institute, "CSI/FBI Computer Crime and Security Survey" http://www.gocsi.com/forms /fbi/pdf.html). [Goo01] “Google entre vie privée et secret défense” http://www.confidentiel.firstream.net/ [Qck02] The Quickbase DSP. https://www.quickbase.com/ [Ora04] 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.
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 Author-X", 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 Fine-Grained 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.