Access Control Matrices

Download Report

Transcript Access Control Matrices

Rappel de la méthode de contrôle
d’accès en UNIX-Linux
[email protected]
INF6153
Version 2013-09-23
1
Pourquoi on en parle
 La méthode de contrôle d’accès d’UNIX-Linux est un
‘classique’


Est énormément utilisée
Et a inspiré beaucoup d’extensions
 Malheureusement ces extensions sont restées en
grande partie


Ou bien dans des implantations de compagnies, et chacune
différente
Ou bien dans la théorie …
INF6153
2
Catégories d’usagers pour un fichier
 Owner d’un fichier
 Membres du Group de l’owner

Les groupes sont déterminés par les administrateurs du
système
 Tous les autres
 Les droits d’un usager sont déterminés par la catégorie
à laquelle il appartient
 L’owner détermine ces droits en assignant des valeurs
à un ensemble de trois triplets
INF6153
3
Exemple
 Usager Jean crée un fichier, il est dans le groupe
INF6153, il est automatiquement owner
 Jean peut se donner des droits sur le fichier

P.ex. Read and write, rw
 Jean peut octroyer des droits à son groupe ou aux
autres, p.ex:



Les membres de son groupe ont droit read
Aucun droit n’est assigné aux Autres
Les trois triplets seront donc:
rw- r-- --INF6153
4
Problèmes …
 Supposez que Jean veuille imprimer un fichier …
 Il doit transférer des droits au print spooler
 Dans le système UNIX de base il n’y a pas de manière
de transférer ownership
 Il faudrait ajouter un mécanisme pour ceci
INF6153
5
Problèmes …
 Jean veut que



Bob puisse lire son fichier
Carole puisse y écrire
Dave de l’exécuter
 Anne veut donner un droit à ‘tous moins Alice’
 Aucun moyen de faire rien de ceci dans UNIX …
 Plusieurs systèmes cherchent à augmenter le modèle
de base de UNIX, mais chacun le fait de sa manière
INF6153
6
Conclusion …
 Bien que le système de protection de UNIX-Linux
fournisse quelques concepts de base, il doit être
sensiblement étendu pour les besoins réels
INF6153
7
ACM: Access Control
Matrices
INF6153
[email protected]
8
Modèle fondamental
http://www.springerreference.com/docs/html/chapterdbid/317197.html
PDF: Policy Decision Function
PEF: Policy Enforcement Function
INF6153
9
Matrice de contrôle d’accès
Fichier1
Alice
Fichier2
Fichier3
R
Fichier4
X
Bob
R, X
Jean
Khaled
R
R, W
W
Clairement, cette méthode est très précise
Mais une matrice de contrôle d’accès sera normalement
Un tableau très grand et très éparpillé
Énormément de cases ‘blanches’ = aucun droit
Car dans une grande organisation il y aura probablement des milliers
d’employés et des milliers d’objets dont la grande majorité n’auront rien à
faire les uns avec les autres
La gestion de ce tableau présente des problèmes pratiques
INF6153
10
Implémentations:
Listes par colonnes ou par lignes
 ACM est souvent implémenté dans une des deux manières
suivantes:

Listes de contrôle d’accès:


Listes de facultés: (capability lists)


Liste d’objets avec, pour chaque objet, la liste des usagers qui ont des
permissions sur les objets
Liste d’usagers avec, pour chaque usager, la liste des objets sur lequel il a
une permission
Ou, plus normalement, solutions de compromis
Fichier1
Alice
Fichier2
Fichier3
R
X
Bob
Jean
INF6153
Khaled
Fichier4
R, X
R
R, W
W
11
ACM:
Implémentation par listes de contrôle d’accès: ACL
 Pour chaque objet, on garde une liste d’usagers ayant des droits sur
l’objet


Fichier1: Alice:R; Jean:R
Fichier2: Jean: R,W etc.

Au moment où un usager demande d’accéder à un objet, il est contrôlé si l’usager a
le droit
 Ces listes sont faciles à consulter et mettre à jour à partir de l’objet,
difficiles à partir de l’usager


P.ex. comment peut Alice déterminer rapidement sur quels objets elle a des
droits?
Faut demander séquentiellement: a-t-elle droit au fichier 1, puis fichier 2, etc.
Fichier1
Alice
Fichier2
Fichier3
R
X
Bob
INF6153
Jean
Khaled
Fichier4
R, X
R
R, W
W
12
ACM:
Implémentation par listes de facultés
 Pour chaque usager, on garde une liste d’objets sur
lesquels l’usager a le droit


Alice: Fichier1: R; Fichier 4: E
Bob: Fichier 4: R,X
 Ces listes sont faciles à consulter et mettre à jour à partir
de l’usager, difficiles à partir de l’objet

P.ex.comment déterminer rapidement tous ceux qui ont des droits
sur Fichier4?

Faut demander séquentiellement:

Alice, a-t-elle droit, Bob, etc.
Alice
Fichier1
Fichier2
Fichier3
R
X
Bob
Jean
INF6153
Khaled
Fichier4
R, X
R
R, W
W
13
Si on garde les deux listes …
 À noter que, si on garde les deux listes, et on fait une
mise à jour sur une, il est nécessaire de faire la mise à
jour correspondante sur l’autre
INF6153
14
Implementations typiques des listes
Listes enchaînées
Listes de contrôle d’accès
Fichier1
Alice: R
Bob: R
Fichier1: R
Fichier4: E
Fin
Listes de facultés
Alice
INF6153
Fin
15
Solutions compromis
 Étant donné que les deux implémentations ont des
avantages et désavantages, on peut utiliser des
solutions de compromis qui réunissent les
avantages et désavantages des deux

P.ex. tableaux d’hachage

Réfléchissez sur une solution …
INF6153
16
Concept étendu d’usager ou ‘sujet’
 On peut passer des infos à un processus, p.ex. des
paramètres

On peut dire qu’on ‘écrit’ dans le processus
 On peut recevoir des résultats d’un processus, donc

On peut dire qu’on ‘lit’ du processus
 Ces relations peuvent être représentées en
généralisant le concept d’usager

Nous parlerons plus tard de ‘sujet’
INF6153
17
Extension de la matrice
Fichier1
Alice
Fichier2
Fichier3
R
P1
P2
X
Bob
Jean
Fichier4
R, X
R
Khaled
R, W
W
P1
P2
X, W, R
W
Le processus P1 peut exécuter P2, lui passer des données et en recevoir des
résultats
Le processus P2 peut seulement passer des résultats à P1
INF6153
18
DAC
Contrôle d’accès discretionnaire
[email protected]
INF6153
19
DAC
 DAC fait une extension de l’idée de UNIX par laquelle
le propriétaire d’un objet peut octroyer des droits sur
l’objet à d’autres usagers
INF6153
20
Idée de DAC
Fichier1
Alice
Fichier2
Fichier3
R
X
Bob
Jean
R, X, Owner
R
R, W
Khaled
W
Fichier1
Alice
Fichier2
Fichier3
R
Khaled
Fichier4
X
Bob
Jean
Fichier4
R, X, Owner
R
R, W
W
R
Bob, qui est propriétaire du Fichier 4, a octroyé le droit de lecture à Khaled
INF6153
21
Variations de DAC: beaucoup
 Sur cette idée de base, on a créé un grand nombre
de variations
 Un modèle simple fut décrit dans deux articles de
Lampson en 1971 et 1972
 Le modèle théorique le plus cité est le modèle de
Harrison, Ruzzo et Ullman (HRU), v. leur article de
1976
 Nous décrirons ces modèles dans une manière
simplifiée
INF6153
22
Modèle DAC de base (Lampson)
 Quatre droits possibles d’usagers sur objets:

Own, Read, Write, Execute
 Quatre types d’opérations:


Création ou destruction d’un usager
Un usager peut créer un objet


Un usager qui a propriété d’un objet peut conférer un droit sur un
objet, autre que la propriété, à un usager


En assume de ce fait la propriété (own)
Incluant soi-même
Un usager qui a propriété d’un objet peu retirer des droits d’accès à
un autre usager qui a ces droits

Incluant soi-même
INF6153
23
Principe d’atténuation des privilèges
 Peut un usager octroyer des privilèges qu’il n’a pas?
 Principe: Un sujet peut attribuer à autres seulement
un privilège qu’il a
 Un des principes fondamentaux en sécurité

Cependant on peut le questionner dans des modèles différents
de DAC:

Surtout dans le cas d’administrateurs qui


peuvent n’avoir aucun droit sur les fichiers,
excepté le droit d’attribuer des droits
 Variante: Un sujet peut attribuer à autres seulement
un privilège qu’il a ou qu’il pourrait s’octroyer
INF6153
24
Exemple
 État initial: deux usagers déjà créés
Alice autorise Bob à lire dans F1
F1
Alice
Bob
 Alice crée F1, en devient
propriétaire
Alice
O,W
Bob
R
Bob crée F2, en devient propriétaire
et puis autorise Alice à l’exécuter
F1
Alice
O
Bob
 Alice autorise soi-même à écrire
dans F1
F1
F2
Alice
O, W
X
Bob
R
O
Alice retire l’autorisation de Bob à
lire sur F1
F1
Alice
Bob
INF6153
O, W
Alice
Bob
F1
F2
O,W
X
O
25
Analyse d’accessibilité
 Si le nombre de sujets et objets créés reste fini, il est possible d’explorer
toutes les évolutions possibles du système, v. exemple suivant
 Étant donné un système dans lequel deux usagers, A et B ont déjà été créés,
calculer l’automate d’accessibilité global pour les opérations suivantes:
1 A crée un objet F1
2 B crée un objet F2
3 A autorise A à écrire dans F1
4 A autorise B à lire dans F1
5 B autorise A à lire F2
6 Si A a le droit de lire F2, B lui le retire
7 Si B a le droit de lire F1, A lui le retire
 (Cet automate doit montrer toutes les possibilités d’exécution pour cet
ensemble d’opérations)
INF6153
26
F1
6
F1
A O
3
A O,W
B R
2
B R
4
3
A
1
F1
F1
A O,W
O
B
B
2
A
B
B
2
F2
1
4
B R
3
O
4
A
O
5
A
O
B
5
INF6153
F2
Etc… la feuille se remplit
rapidement mais nous
voyons que le nombre
d’états possibles est fini.
O,W
B
A
B
O
F1
F2
O
F2
A O
2
F1
A
F1
F1
F2
O
R
Toutes les branches
reviendront enfin à un
état ou à un autre.
O
F2
A
R
B
O
27
Concepts impliqués
 État

Chacun des tableaux que nous avons vu décrit un état du
système
 Transition

Exécution d’une opération
 Automate

Consiste d’états et transitions
 Graphe d’accessibilité

Un automate qui décrit tous les états et transitions possibles
 Analyse d’accessibilité

Le processus de créer un graphe d’accessibilité
INF6153
28
Mais en pratique …
 Cette méthode reste de valeur théorique car dans une
organisation de taille il est laborieux de faire cette
analyse chaque fois que des droits changent
 Étant donné aussi que le système pourrait être réparti
donc aucun participant n’aura une vision globale de
l’ensemble des opérations effectuées

Pensez à un système style Facebook
INF6153
29
Décèlement de Canaux indirects
 S’il est possible de calculer un automate à états finis pour un système, il est
aussi possible d’examiner s’il existe la possibilité de transferts indirects
d’informations



A donne le droit à B de lire sur F1
B a le droit d’écrire sur un fichier F2
C a le droit de lire F2


Les informations que A pourrait écrire sur F1 peuvent être lues par B et recopiées
sur F2
C peut les lire a l’insu de A
 Exercice: étudier plus à fond cette possibilité


NB1: Si les sujets ont une mémoire interne, la possibilité montrée existe non
seulement si tous les droits nécessaires sont dispo simultanément, mais aussi si
un sujet peut lire et puis plus tard écrire
NB2: cette méthode est peu pratique car pour prévenir ce type de fuite il est
nécessaire de bloquer complètement les échanges entre certains usagers
INF6153
30
Problème fondamental avec DAC
 Une fois qu’un usager a transféré un droit à un autre
usager, il perd tout contrôle sur l’utilisation de ce droit

Entre autres, possibilité de Chevaux de Troie

(Cheval de Troie: un programme qui exécute des actions à l’insu
de l’utilisateur)
 La possibilité de modifier les fichiers exécutables crée
des autres possibilités qui sont plus difficiles à déceler
INF6153
31
Cheval de Troie!
 Vicky crée un fichier appelé Secret, seulement pour elle
 Jean crée un fichier X et donne à Vicky l’autorisation d’écrire sur ce fichier (à
l’insu de Vicky)
 Jean crée un fichier Programme et donne à Vicky l’autorisation à l’exécuter

Ce programme (le cheval de Troie!) fait des choses utiles pour Vicky mais aussi il
lit de Secret et écrit sur X
 Vicky exécute Programme …
 À noter que cette possibilité peut être décelée par la méthode mentionnée
de détection de détection de canaux indirects, car Vicky peut écrire sur un
fichier dans lequel Jean peut lire
 Cependant l’algorithme de détection doit être exécuté chaque fois qu’une
autorisation quelconque change, ce qui n’est pas pratique dans une
grande organisation
INF6153
http://www.springerreference.com/docs/html/chapterdbid/317733.html
Lire aussi l’histoire mythique du Cheval de Troie …
32
Source
 L’article:

Lampson: Protection and Access Control in Operating
Systems. In: Operating Systems, Infotech State of the Art
Report 14, 1972, 311-326
INF6153
33
Modèle HRU:
Harrison, Ruzzo, Ulmann, 1976
 HRU est une extension du modèle DAC de base
 Il a des propriétés théoriques intéressantes et il est
beaucoup cité
 Mais il n’a jamais été implémenté tel quel


Il donne encore plus de possibilités que le système
précédent, donc il est encore plus dangereux
Et effectivement le but de ce modèle est de montrer que le
problème de détecter les dangers peut être insoluble

Ce qui aujourd’hui est facilement compris
INF6153
34
Syntaxe détaillée des commandes HRU
INF6153
35
Exemples
command CREATE (process, file)
create object file
enter own into (process, file)
end
command CONFER (owner, friend, file)
if own in (owner, file)
then enter r into (friend, file)
end
command REMOVE (owner, exfriend, file)
if own in (owner, file) and r in (exfriend, file)
then delete r from (exfriend, file)
end
Opérations multiples
dans une commande
command REMCONF (owner, newfriend, exfriend, file)
if own in (owner, file) and r in (exfriend, file)
then
delete r from (exfriend, file)
enter r into (newfriend, file)
end
INF6153
36
Ordre d’exécution des opérations
 Le modèle formel de HRU prévoit des préconditions pour
l’exécution des opérations

Elles sont en général évidentes, p.ex. on ne peut pas donner des
droits sur des fichiers qui n’existent pas
 Aussi, chaque opération peut avoir une condition if
 L’exécution n’est pas séquentielle (pas dans l’ordre dans
lequel les opérations sont écrites)
 Une opération peut être exécutée dès que ses
préconditions et conditions sont vraies
INF6153
37
Conditions
 Chaque opération dans HRU peut être
conditionnelle

Par rapport au contenu actuel du tableau
 Exemple:

Usager X pourrait conférer à usager Y le droit D sur
l’objet O seulement si un autre usager A n’a pas le droit
D’ sur l’objet O’
INF6153
38
Multi-opérationnel
 Le système présenté dans l’article de HRU est donc
plus général que le système introduit
précédemment


Ce dernier est uni-operational = chaque commande n’a
qu’une seule opération
HRU est multi-operational
INF6153
39
Sûreté (safety) d’un système HRU
 Définition: Un système HRU a une fuite d’un droit D s’il y a une
manière de mettre D dans une case où il n’était pas avant
 Définition: un système HRU n’est pas sûr pour un droit D si on
peut arriver, exécutant son programme, à une fuite pour D


Un problème avec cette définition est que plusieurs fuites peuvent être
voulues et pas dangereuses…
Mais certaines fuites peuvent être dangereuses, donc il serait utile si la
sûreté d’un système pouvait être déterminée par inspection du code du
système


Sachant qu’une fuite est dangereuse, pouvons-nous déterminer si elle est possible?
Malheureusement ceci n’est pas possible dans les systèmes multioperational
INF6153
40
Exemple de fuite dangéreuses
command grant_execute (s,p,f)
if o in (s,f) then enter x into (p,f) end
command modify_own_right (s,f)
if x in (s,f) then enter w into (s,f) end
 Alice a développé un programme P1


Elle veut que ce programme soit exécuté par Bob
Mais il ne voudrait pas qu’il soit modifié par lui



Alice: grant_execute (Alice, Bob, P1)
Bob: modify_own_right (Bob, P1)
Maintenant Bob peut modif le programme


P.ex. en faire un Cheval de Troie
Dans ce cas la fuite est immédiatement visible, mais pas toujours …
INF6153
41
Indécidabilité de la sûreté
 L’article de HRU prouve que le problème de la sûreté
est indécidable pour les systèmes multi-operational

Formellement l’article prouve ce fait en montrant que le
problème de la sûreté d’un tel système peut être reduit au
problème de la décision de l’arrêt d’une machine de Turing

On sait que ce dernier problème est indécidable
INF6153
42
Idée de la preuve de l’indécidabilité
 Un théorème fondamental de l’informatique dit qu’on ne peut pas
construire un algorithme pour déterminer si une machine de Turing
arbitraire s’arrête ou non
 L’article de HRU prouve que, étant donné une configuration d’un
système HRU multi-operational et une propriété de sûreté, il est
possible de construire une machine de Turing telle que la machine
s’arrête ssi la propriété de sûreté est décidable
 Donc le problème de la sûreté est indécidable comme le problème de
l’arrêt des machines de Turing

Ce résultat n’est pas surprenant …on sait p.ex. qu’on ne peut pas écrire un
programme pour déterminer si un programme arbitraire s’arrête ou non
 Cependant d’autres travaux ont montré que cette indécidabilité est
conséquence de la définition très générale des systèmes HRU

Qui peut être limitée en pratique
INF6153
43
Cas décidables
 Le fait qu’un problème soit indécidable n’exclut pas qu’il
pourrait être décidable dans quelques cas
 P.ex. banalement si un système ne contient aucune
instruction concernant un droit D, il est sûr par rapport à
D
 Un cas plus intéressant est si un système a un nombre
fini d’état accessibles

Dans ce cas on peut construire le diagramme de transitions
d’état pour tous les états accessibles, donc voir toutes les
situations possibles dans le système

Nous avons vu ça
INF6153
44
Variations des systèmes DAC-HRU
 Un grand nombre de variations des systèmes HRU ont
été proposées
 Beaucoup de propriétés de ces systèmes ont été
étudiées
 Les diapos suivantes montrent quelques unes de ces
extensions

Pour la plupart, encore plus risquées
INF6153
45
Changement de domaine
(ou session)
Fichier1
Dom1
Fichier2 Fichier3 Fichier4 Dom1
R
E
Dom2
Dom3
R
Dom3
Dom4
switch
switch
switch
R, E,
Owner
Dom4

Dom2
R, W
W
switch
Les usagers qui se trouvent dans certains domaines ou
sessions peuvent exécuter un switch pour changer et
assumer des nouveaux droits
 p.ex. on peut changer de Dom2 à Dom3
INF6153
46
Droit de recopier

Un usager exécutant dans un domaine ou session peut avoir
le droit de recopier un droit d’accès (signalé par *)
 p.ex. un usager exécutant dans domaine D2 peut copier son
droit d ’accès sur fichier F2 à un autre domaine
INF6153
47
Contrôle sur autres types de droits
 Nous nous sommes concentrés sur les droits de lecture
et écriture
 Les mêmes principes s’appliquent à autres types de
droits:


Execute, append, copy, delete
Droits d’entrer dans une salle, droit de signer un cheque
>10,000$ etc.
INF6153
48
Implémentation
 Le Modèle DAC, ainsi que les autres modèles reliés,
ont inspiré beaucoup de recherche

mais n’ont jamais été implémentés tels quels
 Ils donnent trop de liberté aux usagers et ils ne les
protègent pas contre leurs propres erreurs
 Aussi souvent en pratique le propriétaire d’un objet
n’est pas un usager comme les autres


Pourrait être l’entreprise, p.ex.
Conduisant aux modèles ‘non-discretionnaires’
INF6153
49
Réseaux sociaux
 Les faiblesses des modèles DAC sont préoccupantes,
car les réseaux sociaux utilisent des modèles DAC!

Attention donc …
INF6153
50
Dans ce chapitre …
 Modèle ACM des matrices de contrôle d’accès, qui
peut être considéré comme le modèle de base du CdA

Il montre explicitement qui peut faire quoi
 Modèle DAC de contrôle d’accès discretionnaire, dans
lequel le propriétaire d’un objet peu conférer des droit
sur ces objets
 Modèle DAC de HRU, pour lequel la propriété de
sûreté est indécidable
 Extensions ultérieures …
INF6153
51
Sources utilisées
 http://www.springerreference.com/docs/index.html#Encyclopedia+of+
Cryptography+and+Security+(Computer+Science)-book195
 Article original de Harrison, Ruzzo, Ullman
 Aussi figures du livre: Silberschatz et al. Principes des Systèmes
d’exploitation
INF6153
52