Académique Documents
Professionnel Documents
Culture Documents
Olivier Perrin
IUT Nancy-Charlemagne
Département Informatique
Université Nancy 2
Olivier.Perrin@loria.fr
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
2
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Introduction
• Un SGBD organise les données et donne aux utilisateurs des moyens pour
extraire de l’information
• Cette information est basée sur des données: fonctions statistiques par
exemple
3
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Confidentialité: les données restent privées et elles ne peuvent pas être vues
par des utilisateurs non autorisés
4
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Une menace est un événement potentiel, malveillant ou pas, qui pourrait nuire
à une ressource
• toute opération préjudiciable à vos ressources est une menace
• Une vulnérabilité est une faiblesse qui rend possible une menace
• peut être due à une mauvaise conception,
• à des erreurs de configuration ou
• à des techniques de codage inappropriées et non fiables
• Une attaque est une action qui exploite une vulnérabilité ou exécute une
menace
• par ex., envoyer des données d'entrée malveillantes à une application ou
• saturer un réseau en vue d'entraîner un refus de service
5
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité et SGBDs
• Complexité
• un SGBD est une affaire de spécialistes:
• au niveau de la gestion (DBA), au niveau de la programmation
6
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Rôle du DBA
• maintenir le SGBD, gérer les comptes, les applications, ...
• pas de formation sécurité : ne peut pas « imaginer » les attaques possibles
7
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Les risques
• Mauvaises configurations
• modes d'authentification dégradés (.rhosts…)
• mots de passe par défaut
• fichiers de la BD non sécurisés (lecture par tous)
9
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Produit complexe
• tourne avec les droits LocalSystem
10
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Procédures dangereuses
• xp_readerrorlog : lecture de fichiers
• xp_regread : lecture de la registry
11
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
12
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
13
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
14
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
15
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
16
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• À la création d’un objet, son propriétaire a tous les droits, y compris celui
d’accorder ou de révoquer des privilèges à d’autres utilisateurs
17
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemple
• si Alice est propriétaire de la relation R, elle peut accorder le privilège de la
consulter (SELECT) à Bob
• si elle indique que ce privilège est transmissible, Bob pourra à son tour
accorder ce privilège à un autre utilisateur
• si Alice révoque le privilège à Bob, alors Bob et tous ceux qui ont reçu ce
privilège de Bob perdent l’accès à la relation R
18
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
19
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Une BD statistique permet de faire des requêtes statistiques sur des groupes
de n-uplets
20
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Propriété d'agrégation
• le niveau de sensibilité d'une opération calculée sur un groupe de valeurs
est bien souvent inférieur au niveau de sensibilité des valeurs individuelles
• Problème d'inférence
• dans un tel cadre, il devient possible d'inférer de l'information sensible à
partir de résultats statistiques moins sensibles
21
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
22
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Comment procéder ?
• R1: Moyenne de ((étudiants de DESS) ou Bob):
• résultat du calcul de la moyenne d'Alice, Bob, Diane et Frank = 76,25
• R2: Moyenne de (étudiants pas de DESS) ou Bob):
• résultat du calcul de la moyenne de Bob, Carole et Éric = 78,33
• R3: Moyenne de tous les étudiants = 76,67
• Pourquoi ?
• cela correspond aux sommes de moyenne: (Alice+Bob+Diane+Frank)+(Bob
+Carole+Éric)-(Alice+Bob+Carole+Diane+Éric+Frank) = Bob
24
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
25
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité discrétionnaire
• Deux mécanismes
• les vues: permet de cacher des informations sensibles à des utilisateurs non
autorisés
• sous-système d’autorisation: permet aux utilisateurs ayant des privilèges
d’attribuer sélectivement et dynamiquement ces privilèges à d’autres
utilisateurs (et de les révoquer)
26
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
27
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues
28
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues (2)
• Supposons une relation Employé qui indique s’il s’agit d’un homme ou d’une
femme, son âge, son salaire et sa profession
29
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues (3)
• Les informations sensibles peuvent être cachées aux utilisateurs non autorisés
30
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues (4)
• Si l'application inclut une relation décrivant une table de contrôle d'accès, les
vues peuvent y faire référence
• Pour qu'une vue permette la mise à jour, il faut que tous les attributs formant la
clé primaire soient inclus dans la vue:
• de plus, il se peut que la mise à jour fasse en sorte que le n-uplet modifié ne
satisfasse plus aux critères de la vue
• ex: dans la vue DESS, une requête pour modifier le programme à POLY
ferait disparaître l’attribut de la vue
• une option dans la définition de la vue permet de bloquer ces écritures à
l'aveugle
31
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues (5)
• Une vue n'est pas qu'un objet. On peut aussi le considérer comme un sujet qui
a ses propres privilèges d'accès: invocation contrôlée
32
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Les privilèges
• Le créateur d'un objet obtient automatiquement tous les privilèges pour cet
objet
• En outre, ces privilèges sont obtenus avec l'option « grant authority » (le
privilège peut être donné à un autre utilisateur)
33
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• GRANT OPTION FOR signifie que seul le droit de transfert doit être révoqué
34
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
35
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
36
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité obligatoire
37
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Comment obtenir un niveau élevé de protection sur les éléments d'un SGBD?
• contrôle d'accès obligatoire (étiquettes de sécurité)
• les principaux vendeurs de SGBD (Oracle, Informix, Sybase) ont tous une
version MAC de leur système, évaluée au niveau B1 du Livre Orange
38
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Règle étoile:
• un sujet s peut modifier un objet o seulement si sa classe d'accès est
dominée par celle de l'objet, c'est-à-dire fs(s) fo(o)
39
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
40
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Granularité de la classification
41
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Dupont a 30 ans
42
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Interprétation
• si on affecte un niveau de classification ni à l’attribut Ai d’un n-uplet t, alors
ni représente la classification de l’information correspondant à l’association
entre les attributs Ak et Ai où Ak est la clé de la relation
• exemple: Employé(Dupont, P, H, P, Age, C, Salaire, S, Profession, C)
• l’information «Dupont est un employé» est classée au niveau P
• l’information «Dupont gagne 30000 euros» est classée au niveau S
43
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemple
• la relation Réservations [P]
• les lettres entre crochets indique la classe d'accès
• C = Confidentiel, P = Public
• pour chaque attribut, la classe d'accès suit la valeur de l’attribut
• pour chaque n-uplet, la classe d'accès est à droite du n-uplet
45
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Pour qu'un utilisateur puisse observer les attributs d'un n-uplet, il faudra que:
• la classe d'accès de chaque attribut domine celle du n-uplet,
• la classe d'accès du n-uplet domine celle de sa relation,
• la classe d'accès de la relation domine celle de la BD
46
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Données visibles
• une relation R est visible à un utilisateur s si la classe d'accès de l’utilisateur
domine celle de la relation (fo(R) fs(s))
• un attribut ri est visible à un utilisateur s si la classe d'accès de l’utilisateur
domine celle de l’attribut (fo(ri) fs(s)). Dans le cas contraire,
• si l’attribut ri fait partie de la clé primaire, tout le n-uplet est invisible
• sinon, seul l’attribut est invisible à l’utilisateur
47
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Relations dérivées
• la classe d'accès d'une vue domine celles de toutes les relations utilisées
dans la définition de la vue
• l'instance d'une vue à une classe d'accès donnée correspond au résultat de
l'évaluation de la définition de la vue à cette classe.
Observer (*)
Vue (c) Usager
48
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation
49
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (2)
50
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (3)
• On insère le n-uplet
51
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (4)
• Exemple de polyinstantiation
• sur le n-uplet 'Vol = AF211'
• après mise à jour 'Dest = Nice' [P] et 'Sièges = 0' [P]
52
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation: discussion
53
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Il reste un problème:
• comment ajouter des données à une relation sans violer la règle étoile ?
• en déléguant la création d'objet à un utilisateur spécial CRÉATEUR, dont la
classe d'accès correspond au bas du système
• des données bidon sont écrites dans l'objet
• la classe d'objet est ensuite montée à celle désirée par l’utilisateur
original
54
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Problème:
• un utilisateur 'bas' essaie de mettre à jour un attribut 'bas', contrôlé par une
CI 'haute' (donc invisible à l’utilisateur)
• si on refuse l'accès, on indique à l’utilisateur qu'il existe une CI qu'il ne voit
pas (canal caché)
• si on accorde l'accès, on pourrait violer la contrainte d'intégrité
55
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Les contraintes d'intégrité peuvent elles aussi être créées à bas niveau et
montées au niveau désiré
• les utilisateurs 'bas' connaissent l'existence de la contrainte, mais pas son
contenu
• un utilisateur qui tente de mettre à jour un attribut 'bas' contrôlé par une
contrainte 'haute' pourra sans problèmes se faire dire que la mise à jour lui
sera refusée
• Si une relation contient des n-uplets dont la clé primaire est confidentielle, on
pourra séparer la relation en 2 sous-relations:
• une relation où toutes les clés primaires sont publiques
• une relation où toutes les clés primaires sont confidentielles
56
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Réservations confidentielles
Vols Dest Sièges
AC909 [C] Montréal [C] 4 [C] [C]
• Un leurre est une information fausse introduite dans une base de données
multi-niveaux pour protéger l’existence d’une information sensible
• Pourquoi ?
58
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
59
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Premier exemple
• on suppose la relation suivante:
60
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
61
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• On suppose que l’on n’a pas le droit de demander dans quel département
travaille un employé
• Exemples d’inférence
• Q1 = (Âge; Nom = ‘Alice’)
• Q2 = (Département; Âge < 40)
62
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• On suppose que l’on n’a pas le droit de demander dans quel département
travaille un employé
• Exemples d’inférence
Alice travaille dans le
• Q1 = (Âge; Nom = ‘Alice’)
département Marketing
• Q2 = (Département; Âge < 40)
62
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• On suppose que l’on ne peut pas demander quel est le salaire d’un employé
• Exemples d’inférence
• Q1 = (Âge; Nom = ‘Charles’)
• Q2 = (Âge, Salaire; Âge 40)
63
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• On suppose que l’on ne peut pas demander quel est le salaire d’un employé
• Exemples d’inférence
• Q1 = (Âge; Nom = ‘Charles’)
Charles gagne 30000
• Q2 = (Âge, Salaire; Âge 40)
63
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemples d’inférence
• Q1 = (Nom; Emploi = ‘Manager’ ^ Âge = 35)
• Q2 = (Salaire; Emploi = ‘Manager’)
• Q3 = (Salaire; Âge = 35)
64
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemples d’inférence
• Q1 = (Nom; Emploi = ‘Manager’ ^ Âge = 35)
• Q2 = (Salaire; Emploi = ‘Manager’)
Alice gagne 60000
• Q3 = (Salaire; Âge = 35)
64
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemples d’inférence
• Q1 = (Salaire; Département = ‘Marketing’ ^ Bureau = ‘2ème’)
• Q2 = (Salaire; Emploi = ‘Manager’ ^ Bureau = ‘2ème’)
• Q3 = (Nom; Bureau = ‘2ème’)
65
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Exemples d’inférence
• Q1 = (Salaire; Département = ‘Marketing’ ^ Bureau = ‘2ème’)
• Q2 = (Salaire; Emploi = ‘Manager’ ^ Bureau = ‘2ème’)
• Q3 = (Nom; Bureau = ‘2ème’)
Le manager qui travaille
au 2ème gagne 60000
65
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
66
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
67
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Approche filtre
• Principes
• on ajoute un filtre au SGBD, entre le client et le SGBD
68
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Fonctionnalités du filtre:
• modifie la requête émise par le client pour que l’évaluation de la requête ne
fournisse pas de données ayant un niveau de classification supérieur au
niveau du client
• filtre le résultat pour éliminer toutes les données qui n’auraient pas un
niveau de sécurité inférieur ou égal à celui du client
• Avantages
• simplicité de mise en œuvre (pas de modification des fonctionnalités)
• le filtre est de confiance
• Inconvénients
• vulnérabilité aux attaques (le SGBD n’est pas de confiance)
• contournement du filtre
69
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Principes
• développer un SGBD en s’appuyant sur un OS multi-niveaux
• l’authentification et les contrôles d’accès sont réalisés par l’OS
• un OS multi-niveaux ne gère que des fichiers mono-niveau (un fichier ne
contient que des données ayant le même niveau de classification)
• partitionnement des données du SGBD sur plusieurs fichiers
• Avantages
• le SGBD n’a pas besoin d’être de confiance (on se repose sur l’OS)
• en fait, on fait l’hypothèse que certaines fonctions du SGBD sont de
confiance
70
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Inconvénients
• performances à cause du partitionnement lié à la gestion mono-niveau des
fichiers
• avoir un OS multi-niveaux
• Exemple
• Oracle OS-MAC et DB-MAC
71
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Principe
• variante de l’approche noyau de sécurité
• les contrôles (accès et authentification) ne sont pas effectués par l’OS mais
par le SGBD
• le SGBD gère son propre ensemble de niveaux de sécurité
• il effectue les contrôles d’accès conformément à la relation d’ordre sur cet
ensemble
• Avantages
• gain de performance
• Inconvénients
• adaptation du SGBD à l’OS
72
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Approche réplication
• Principe
• un serveur séparé pour gérer toutes les données de niveau inférieur à un
niveau donné
• autant de serveurs que de niveaux
• les données sont répliquées
• une donnée de niveau n est répliquée dans tous les serveurs de niveau
supérieur à n
• les serveurs SGBD peuvent ne pas être de confiance
• c’est le serveur frontal qui est de confiance (authentification et contrôle
d’accès)
73
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Avantages
• un seul serveur intervient pour évaluer la requête du client
• le serveur ne contient que les données que le client le droit d’observer
• pas de possibilité de détourner les données/requêtes
• Inconvénients
• réplication des données: cohérence, dégradation des performances
74
Plan
• Contrôle d’accès
• Bases statistiques
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
75
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures
Contre-mesures (2)
• Durcissement de l'OS
• va limiter l'exploitation de failles
• appliquer les procédures classiques
• non installation des composants annexes, limitation des services
réseaux, application régulière des correctifs de sécurité…
77
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (3)
WWW
Internet
SGBD
Tomcat
78
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (4)
79
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (5)
80
Introduction » Contrôle d’accès » Bases statistiques » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures: injection
81