Confidentialité dans les bases de données DRUIDE 2004 Luc Bouganim, Philippe Pucheral
Download ReportTranscript 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.