Professional Documents
Culture Documents
Olivier Perrin
IUT Nancy-Charlemagne
Département Informatique
Université Nancy 2
Olivier.Perrin@loria.fr
Version 2010
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
2
Introduction » Bases statistiques » Contrôle d’accès » 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 » Bases statistiques » Contrôle d’accès » 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
• Audit: un audit et une journalisation sont essentiels pour résoudre les problèmes
de sécurité a posteriori
4
Introduction » Bases statistiques » Contrôle d’accès » 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 » Bases statistiques » Contrôle d’accès » 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
• on ne peut pas sérieusement faire de l'Oracle deux fois par an
• quand c'est le cas, c’est encore pire pour la sécurité !
6
Introduction » Bases statistiques » Contrôle d’accès » 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 » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
8
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Les risques
• Mauvaises configurations
• modes d'authentification dégradés (par exemple, fichiers .rhosts)
• mots de passe par défaut
• fichiers de la BD non sécurisés (lecture par tous)
10
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Produit complexe
• tourne avec les droits LocalSystem
11
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Procédures dangereuses
• xp_readerrorlog : lecture de fichiers
• xp_regread : lecture du registry
12
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
The flaw lies in the fact that the server uses a string returned by the client when the
COM_CHANGE_USER command is issued to iterate through a comparison when attempting to
authenticate the password. An attacker may authenticate as another database user if they can
successfully guess the first character of the correct password for that user. The range of the valid
character set for passwords is 32 characters, which means that a malicious user can authenticate
after a maximum of 32 attempts if they cycle through all of the valid characters.
13
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
14
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
15
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Sauf que…
• le monde n’est pas parfait
• les programmes peuvent recevoir n’importe quoi
16
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Injection
• consiste à concaténer une chaîne de caractères pour créer une instruction
SQL
• Objectifs
• usurper une identité: récupérer un mot de passe, se connecter sans mot de
passe
• contourner des règles de gestion: obtenir des informations auxquelles on ne
devrait pas avoir accès
• altérer des données de la base de données: modifier ou supprimer des
données
17
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Solution: mysql_real_escape_string()
• ' -- sera transformé en \' --
18
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
19
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
20
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque ([Bonnetain])
• réfléchissons
• la valeur de l’identifiant sert à interroger une base de données
• c’est un numérique (36 dans l’exemple)
• utilisons un identifiant non valide
21
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (2)
• URL: http://site.org/pgm.php?id=
• résultat
• bilan
• la base de données est PostgreSQL
• on connaît les chemins d’installation
• on sait qu’il ne semble pas y avoir de validation !
• quelque fois, on a carrément accès à la requête
22
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (3)
• Composition de la requête
• le script PHP interroge la base en transmettant directement la valeur du champ
ID
• sans doute une requête du type SELECT … FROM … WHERE id = valeur AND
…
• on ne veut pas être gêné par la partie AND
• on ajoute -- (le reste de la ligne devient un commentaire)
• SELECT … FROM … WHERE id = 10 -- AND …
• on ne peut pas éliminer les clauses qui précèdent
• ça marche !
23
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (4)
• Réfléchissons !
• il y a un SELECT qui renvoie des informations
• pour extraire ces informations, on doit utiliser la sélection
• la commande UNION va nous aider
• SELECT … UNION SELECT …
• la sémantique de la clause UNION est stricte
• même nombre d’attributs
• mêmes types
• on doit déterminer le nombre d’attributs et le type des attributs du SELECT
24
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (5)
• Tant que l’on n’a pas le bon nombre d’attributs, PostgreSQL renvoie une erreur
• URL: http://site.org/pgm.php?id=10%20union%20select%201--
25
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (6)
26
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (7)
27
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (8)
• Dans PostgreSQL
• pg_database pour obtenir les bases de données (datname donne le nom de
la base)
• pg_shadow pour obtenir la table des utilisateurs (usename et passwd donne
l’identification des utilisateurs)
• Ainsi
• liste des bases de données:
28
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Attaque (9)
• Ou
• utilisateurs et mot de passe:
29
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Démo
30
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
31
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Une BD statistique permet de faire des requêtes statistiques sur des groupes de
n-uplets
32
Introduction » Bases statistiques » Contrôle d’accès » 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
33
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
34
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Moyenne de Bob: 4 x R1 + 3 x R2 - 6 x R3 = 80
• Pourquoi ? IFT-6271
36
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Moyenne de Bob: 4 x R1 + 3 x R2 - 6 x R3 = 80
• Pourquoi ? IFT-6271
36
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
37
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
38
Introduction » Bases statistiques » Contrôle d’accès » 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
39
Introduction » Bases statistiques » Contrôle d’accès » 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
40
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
41
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
42
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité discrétionnaire
• Principe
• restreindre l’accès aux informations en se basant sur l’identité des utilisateurs
et leur groupe d’appartenance
• discrétionnaire: à la discrétion du propriétaire !
• Exemple: Unix
• -rw-r----- 1 olivier ens 67991 20 mar 13:25 partielS4
43
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Deux mécanismes
• les vues: permet de cacher des informations sensibles à des utilisateurs non
autorisés (notion de groupe)
• 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)
44
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
45
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues
46
Introduction » Bases statistiques » Contrôle d’accès » 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
47
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Vues (3)
• Les informations sensibles peuvent être cachées aux utilisateurs non autorisés
• Ne permet pas de spécifier les opérations que certains utilisateurs sont autorisés à
exécuter sur ces parties de la base
48
Introduction » Bases statistiques » Contrôle d’accès » 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
49
Introduction » Bases statistiques » Contrôle d’accès » 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
50
Introduction » Bases statistiques » Contrôle d’accès » 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)
51
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Si Bob donne un privilège à Alice, Bob peut ensuite révoquer ce privilège accordé
à Alice
• GRANT OPTION FOR signifie que seul le droit de transfert doit être révoqué
52
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
53
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité discrétionnaire
• Avantages
• simple à comprendre
• très flexible
• Inconvénients
• suppose que les utilisateurs savent ce qu’ils font (chevaux de Troie)
• délicat/difficile de représenter certaines politiques
• exemple: partage de document
•
54
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
55
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Sécurité obligatoire
56
Introduction » Bases statistiques » Contrôle d’accès » 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
57
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
58
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
59
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Granularité de la classification
60
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Dupont a 30 ans
61
Introduction » Bases statistiques » Contrôle d’accès » 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
62
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
64
Introduction » Bases statistiques » Contrôle d’accès » 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
65
Introduction » Bases statistiques » Contrôle d’accès » 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
66
Introduction » Bases statistiques » Contrôle d’accès » 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.
67
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation
68
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (2)
69
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (3)
• On insère le n-uplet
70
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation (4)
Polyinstantiation (3)
• Exemple de polyinstanciation
• Exemple de polyinstantiation
• sur le–n-uplet
Sur le'Vol = AF211'
tuple 'Vol = AF211'
• après–mise à jour
Après 'Dest
mise = Nice'
à jour [P]=etNice'
'Dest 'Sièges
[P] =et0''Sièges
[P] = 0' [P]
71
IFT-6271 460
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Polyinstanciation: discussion
72
Introduction » Bases statistiques » Contrôle d’accès » 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
73
Introduction » Bases statistiques » Contrôle d’accès » 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é
74
Introduction » Bases statistiques » Contrôle d’accès » 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
75
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Réservations confidentielles
Vols Dest Sièges
AC909 [C] Montréal [C] 4 [C] [C]
76
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Un leurre est une information fausse introduite dans une base de données multi-
niveaux pour protéger l’existence d’une information sensible
• Supposons que l’information «Dupont gagne 30000 euros» est classée au niveau
Secret
• on note cette information [Secret]Salaire(Dupont, 30000) où [Secret]p signifie
que l’information représenté par p est classée au niveau Secret
• Pourquoi ?
77
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
78
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Premier exemple
• on suppose la relation suivante:
79
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
80
Introduction » Bases statistiques » Contrôle d’accès » 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)
81
Introduction » Bases statistiques » Contrôle d’accès » 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)
81
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
82
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
83
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Approche filtre
• Principes
• on ajoute un filtre au SGBD, entre le client et le SGBD
84
Introduction » Bases statistiques » Contrôle d’accès » 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
85
Introduction » Bases statistiques » Contrôle d’accès » 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
86
Introduction » Bases statistiques » Contrôle d’accès » 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
87
Introduction » Bases statistiques » Contrôle d’accès » 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
88
Introduction » Bases statistiques » Contrôle d’accès » 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)
89
Introduction » Bases statistiques » Contrôle d’accès » 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
90
Plan
• Bases statistiques
• Contrôle d’accès
• Sécurité discrétionnaire
• Sécurité obligatoire
• Contre-mesures
91
Introduction » Bases statistiques » Contrôle d’accès » 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é…
93
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (3)
WWW
Internet
SGBD
Tomcat
94
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (4)
95
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures (5)
96
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
Contre-mesures: injection
97
Introduction » Bases statistiques » Contrôle d’accès » Discrétionnaire » Obligatoire » Architectures » Contre-mesures
• Utiliser des comptes avec des droits d’accès limités au minimum nécessaire
98
Conclusion
99