Vous êtes sur la page 1sur 9

10/10/2017

55 56

Chapitre III : Sécurité des bases de données Processeur de sécurité

• Section 1 : Authentification
• Section 2 : Contrôle d’accès
• Section 3 : Cryptage des données

55 56

57

Contrôle d’accès SGBD : en général


• sujets
• utilisateurs, groupe d’utilisateurs, tous les utilisateurs • Discrétionnaire (DAC : Discretionary access control) : est
• objets un genre de contrôle d'accès, défini par le Trusted
• BD, tables, vues, index, procédures, · · · Computer System Evaluation Criteria (TCSEC) comme
• privilèges « des moyens de limiter l'accès aux objets basés sur
• sur les tables l'identité des sujets ou des groupes auxquels ils
• sur le schéma appartiennent. Les commandes sont discrétionnaires car
• sur la base de données · · · un sujet avec une certaine autorisation d'accès est
• rôles
capable de transmettre cette permission (peut-être
indirectement) à n'importe quel autre sujet (sauf restriction
• groupe de privilèges
du contrôle d'accès obligatoire). »

57 58

1
10/10/2017

09/10/2015 Rim Akrout 59

• Basé sur les rôles (RBAC) : contrôle d'accès à base de • contrôle d’accès SGBD : différentes politiques
rôles est un modèle de contrôle d'accès à un système • administration centralisée : un petit nombre d’utilisateurs
d'information dans lequel chaque décision d'accès est peut accorder ou révoquer des privilèges
basée sur le rôle auquel l'utilisateur est attaché.
• Un rôle découle généralement de la structure d'une
• administration basée sur le propriétaire : le créateur d’un
entreprise. objet peut accorder ou révoquer des privilèges
• Les utilisateurs exerçant des fonctions similaires peuvent
être regroupés sous le même rôle.
• administration décentralisée : le créateur d’un objet peut
• Un rôle, déterminé par une autorité centrale, associe à
également accorder ou révoquer des droits à d’autres
un sujet des autorisations d'accès sur un ensemble utilisateurs qui peuvent à leur tour accorder ou refuser
objets. des privilèges sur l’objet

59 60

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
61 62

2
10/10/2017

privilèges
Privilèges objets
• privilèges objets • SELECT(C1, · · · C2)
• concernent des opérations précises sur des tables, des vues, des • pour lire le contenu de certaines ou toutes les colonnes d’une table
procédures stockées dont le nom est spécifié
• INSERT(C1, · · · C2)
• pour insérer une valeur dans certaines ou toutes les colonnes
• privilèges systèmes d’une table
• concernent des opérations sur tous les objets d’une certaine
catégorie
• UPDATE(C1, · · · C2)
• pour modifier le contenu de certaines ou toutes les colonnes d’une
table

• DELETE
• pour supprimer des lignes d’une table

63 64

65 66

Privilèges objets
• attribution de privilèges sur des objets oracle
• REFERENCES(C1, · · · C2)
• pour faire référence à une table ou à certaines colonnes d’une GRANT liste-droits | ALL
table dans une contrainte d’intégrité ON nom-composant
• TRIGGER TO liste-utilisateurs | PUBLIC
• pour placer un TRIGGER sur une table [WITH GRANT OPTION ] ;

• USAGE
• pour manipuler des domaines • ALL : tous les privilèges que le donneur peut accorder

• EXECUTE • PUBLIC : tous les utilisateurs connus du système


• pour exécuter des procédures stockées • WITH GRANT OPTION : possibilité de transmettre les
• privilèges qui lui sont accordés

65 66

3
10/10/2017

67

• 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 ]

67 68

69 70

• suppression de privilèges • graphe d’octroi de privilèges : outil de gestion de la


REVOKE [GRANT OPTION FOR] liste-systeme-privileges | propagation de privilèges et leur révocation
ALL
ON liste-objets
FROM liste-utilisateurs • chaque nœud représente un utilisateur
[RESTRICT | CASCADE] liste • chaque arc représente un octroi de privilège, il est
étiqueté par ce privilège
• 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 69 70

4
10/10/2017

72

71 72

73 74

• 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
73 74

5
10/10/2017

75 76

75 76

77 78

Les rôles

• un rôle est un ensemble de privilèges • création de rôle


• CREATE ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ] ;
• ajout, modification, suppression de mot de passe
• les rôles sont assignés aux utilisateurs qui peuvent avoir
• ALTER ROLE nom-de-rôle [IDENTIFIED BY mot-de passe ] ;
plusieurs rôles
• suppression de rôle
• DROP ROLE nom-de-rôle ;
• Les rôles sont organisés hiérarchiquement • attribution de rôles
• GRANT liste-roles
TO liste-roles-utilisateurs
• Différence entre rôle et utilisateur :
[WITH ADMIN OPTION ] ;
• un utilisateur peut être propriétaire d’un objet,
• suppression de rôles
• un rôle ne le peut pas.
• REVOKE liste-roles
FROM liste-roles-utilisateurs
77 78

6
10/10/2017

79 80

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 d’un département.
• agent comptable :
• privilège employé
• privilège de mettre à jour le salaire des employés

79 80

81 82

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ées par l’application d’une fonction : Y =f(X)

81 82

7
10/10/2017

83 84

Canaux d’inférence en BD : BD statistique


• BD statistique 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ées statistiques

83 84

85 86

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 séquence de requêtes :

• COUNT(EE AND Female) = 1


• SUM(EE AND Female, GP) = 2.5

Accès à des informations sensibles ! ! ! !

85 86

8
10/10/2017

87

Protection des BD statistiques contre les


attaques par inférence

• techniques de restriction
• contraintes sur la taille des échantillons qui peuvent être interrogé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

87 88

89 90

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

89 90