Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html
Plan du cours 1 Introduction 2 3 4
Bibliographie Livres : W. Stallings & L. Brown : Computer security, principles and practice. Pearson Prentice Hall ed. 2008. Supports de cours : Support de cours : J. Le Maitre : http ://lemaitre.univ-tln.fr/cours.htm Support de cours : A. Bonnecaze : http ://alexis.bonnecaz.perso.esil.univmed.fr
Introduction Sécurité des bases de données : définir une politique de sécurité préserver la confidentialité, l intégrité et la disponibilité des données éviter les inférences
Introduction Fig.: source cours J. Le Maitre
Objectifs du contrôle d accès préserver la confidentialité, l intégrité et la disponibilité des données confidentialité : protection contre divulgation non autorisée intégrité des données : protection contre modification ou destruction non autorisées disponibilité : fournir les données aux utilisateurs autorisés quand ils en ont besoin
Fig.: source cours J. Le Maitre
sujets utilisateurs, groupe d utilisateurs, tous les utilisateurs objets BD, tables, vues, index, procédures, sur les tables sur le schéma sur la base de données groupe de privilèges privilèges rôles
contrôle d accès SGBD : en général discrétionnaire (DAC) basé sur les rôles (RBAC)
contrôle d accès SGBD : différentes politiques administration centralisé : un petit nombre d utilisateurs peut accorder ou révoquer des privilèges administration basée sur le propriétaire : le créateur d un objet peut accorder ou révoquer des privilèges administration décentralisée : le créateur d un objet peut également accorder ou révoquer des droits à d autres utilisateurs qui peuvent à leur tour accorder ou refuser des privilèges sur l objet
Fig.: source cours J. Le Maitre
contrôle d accès SQL modèle discrétionnaire (DAC) le créateur d un objet possède tous les privilèges sur cet objet pour accéder à un objet qu il n a pas crée un utilisateur doit recevoir les privilèges nécessaires création des utilisateurs : administrateur de la BD création d utilisateurs création de groupes d utilisateurs
privilèges privilèges objets concernent des opérations précises sur des tables, des vues, des procédures stockées dont le nom est spécifié privilèges systèmes concernent des opérations sur tous les objets d une certaine catégorie
privilèges objets SELECT(C 1, C 2 ) pour lire le contenu de certaines ou toutes les colonnes d une table INSERT(C 1, C 2 ) pour insérer une valeur dans certaines ou toutes les colonnes d une table UPDATE(C 1, C 2 ) pour modifier le contenu de certaines ou toutes les colonnes d une table DELETE pour supprimer des lignes d une table
privilèges objets REFERENCES(C 1, C 2 ) pour faire référence à une table ou à certaines colonnes d une table dans une contrainte d intégrité TRIGGER pour placer un TRIGGER sur une table USAGE pour manipuler des domaines EXECUTE pour exécuter des procédures stockées
attribution de privilèges sur des objets oracle GRANT liste-droits ALL ON nom-composant TO liste-utilisateurs PUBLIC [WITH GRANT OPTION ] ; ALL : tous les privilèges que le donneur peut accorder PUBLIC : tous les utilisateurs connus du système WITH GRANT OPTION : possibilité de transmettre les privilèges qui lui sont accordés
attribution de privilèges sur des objets oracle GRANT liste-droits ALL ON nom-composant TO liste-utilisateurs PUBLIC [WITH GRANT OPTION ] ; liste-droits : SELECT INSERT UPDATE DELETE ALTER INDEX REFERENCES ALL [PRIVILEGES ]
Fig.: source cours W. Stallings & L. Brown
suppression de privilèges REVOKE [GRANT OPTION FOR] liste-systeme-privileges ALL ON liste-objets FROM liste-utilisateurs [RESTRICT CASCADE] liste CASCADE : révocation concerne les utilisateurs cités dans la clause FROM ainsi que ceux à qui les privilèges ont été récursivement transmis RESTRICT révocation concerne les utilisateurs cités dans la clause FROM [GRANT OPTION FOR] pas les privilèges révoqués mais le droit de les transmettre
graphe d octroi de privilèges : outil de gestion de la propagation de privilèges et leur révocation chaque noeud représente un utilisateur chaque arc représente un octroi de privilège, il est étiqueté par ce privilège
Fig.: source cours J. Le Maitre
Fig.: source cours J. Le Maitre
Fig.: source cours J. Le Maitre
: vues Importance des vues : elles permettent de définir de façon précise les portions dune BD sur lesquelles des privilèges sont accordés. exemple table : employe(nom, departement, salaire) restriction de l accès à l affectation ou au salaire d un employé en définissant les deux vues suivantes : create view affectation employe(nom, departement) as select nom, departement from employe create view salaire employe(nom, salaire) as select nom, salaire from employe et en accordant des privilèges sur chacune de ces deux vues, par exemple : grant update on salaire employe to pierre
Fig.: source cours J. Le Maitre
Fig.: source cours J. Le Maitre
Les rôles un rôle est un ensemble de privilèges les rôles sont assignés aux utilisateurs qui peuvent avoir plusieurs rôles Les rôles sont organisés hiérarchiquement différence entre rôle et utilisateur : un utilisateur peut être propriétaire dun objet, un rôle ne le peut pas.
création de rôle CREATE ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ]; ajout, modification, suppression de mot de passe ALTER ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ] ; suppression de rôle DROP ROLE nom-de-rôle;
attribution de rôles GRANT liste-roles TO liste-roles-utilisateurs [WITH ADMIN OPTION ] ; suppression de rôles REVOKE liste-roles FROM liste-roles-utilisateurs
exemple : Les 4 rôles de la BD ma petite entreprise : employé : privilège de consulter les affectations responsable (de département) : privilège employé privilège de consulter les salaires de ses employés srh (service des ressources humaines) : privilège employé, privilège de modifier le département dans lequel travaille un employé et le responsable dun département. agent comptable : privilège employé privilège de mettre jour le salaire des employés
Fig.: exemple rôles source : J. Le Maitre
problème d inférence en sécurité BD possibilité de déduire (d inférer) des informations confidentielles à partir d informations non confidentielles canal d inférence canal par lequel un utilisateur peut atteindre un ensemble de données autorisées X et en déduire un ensemble de données non autoris ees par l application d une fonction : Y =f(x)
Fig.: Inférence source : W. Stallings & L. Brown
: exemple Fig.: Exemple inférence source : W. Stallings & L. Brown
: BD statistique BD statitique une Base de Donnée où : les données ne sont accessibles que par des fonctions statistiques : somme, moyenne, variance, écart-type l accès aux données individuelles n est pas autorisé contrôle d inférence empêcher l utilisateur d obtenir des informations individuelles par rapport aux donnés statistiques
: exemple BD statistique Fig.: Exemple BD statistique source : W. Stallings & L. Brown
: exemple BD statistique exemple d inférence Supposons que l on sache que Baker est une étudiante en EE mais que ce n est pas la seule La sequence de requêtes : COUNT(EE AND Female) SUM(EE AND Female, GP)
: exemple BD statistique exemple d inférence Supposons que l on sache que Baker est une étudiante en EE mais que ce n est pas la seule La sequence de requêtes : COUNT(EE AND Female) = 1 SUM(EE AND Female, GP) = 2.5 Accès à des informations sensibles!!!!
: BD statistique protection des BD statistiques contre les attaques par inférence techniques de restriction contraintes sur la taille des échantillons qui peuvent être intérrogés techniques de perturbation introduction de modifications soit dans les enregistrements de la BD, soit dans les réponses aux requêtes pour cacher la valeur des informations individuelles
: exemple BD statistique Fig.: Exemple BD statistique source : W. Stallings & L. Brown
: exemple BD statistique exemple de contrôle d inférence : contrainte de taille C : formule caractéristique (utilisation de OR, AND et NOT) X(C) : échantillon ou ensemble des lignes de la BD qui correspondent à C q(c) : requête permise si k X(C) N k avec k > 1
: exemple BD statistique contrainte de taille insuffisant : décomposition de la requête en parties qui ne violent pas la contrainte de taille C = C1 AND C2 et T = C1 AND NOTC2 Si un individu I est uniquement identifié par C alors COUNT(C) = COUNT(C1) COUNT(T) permet de déterminer si COUNT(C1) = 1 pour déterminer si l individu I possède l attribut D COUNT(C AND D) = COUNT(T OR C1 AND D) COUNT(T)
: exemple BD statistique nouveau contrôle d inférence restreindre la taille des intersections entre échantillon q(c) : requête permise si X(C) X(D) r
Le chiffrement des bases de données Fig.: source : W. Stallings & L. Brown
Le chiffrement des bases de données chiffrement à différents niveaux : BD, lignes, colonnes Principaux inconvénients gestion des clés : processus complexe car de nombreux utilisateurs et nombreuses applications manque de flexibilité : difficultés pour les recherches dans la base