Vous êtes sur la page 1sur 62

Protection des données

Chapitre 15

http://w3.uqo.ca/luigi/ http://www.fotosearch.com/IGS236/is102-015/

Chap. 18
Concepts importants du chapitre

Niveaux de protection, anneaux en Multics
 Domaines d’exécution

Besoin de connaître

Protection sur les descripteurs des segments
 Matrices d’accès
 Copier, modifier, octroyer les droits d’accès
 Implémentation des droits d’accès:
 Listes d’accès aux objets
 Liste de capacité des processus
 Compromis, solutions mixtes

Chap. 18
Le problème de la protection

S’assurer qu’un objet ne puisse être
accédé que
 par les processus qui sont autorisés
 dans la façon autorisée

Importante
 pour la protection des données des usagers,
 pour le bon fonctionnement du système entier:
 vulnérabilité des SE qui ont des mauvais
mécanismes de protection

Chap. 18
Exigences, besoins. Exemple 1
 Niveaux de protection: un programme de
correction, écrit par un prof, exécute des progs.
d ’étudiants.
 Nous avons 3 niveaux de protection:
 Système d ’exploitation
 Doit être protégé par rapport aux programmes usagers
 Peut les affecter (R,W,X?)
 Programme du prof
 Doit être protégé par rapport aux progrs. étudiants
 Peut les affecter
 Programme étudiant
 Doit être protégé par rapport aux programmes d’autres
étudiants

Chap. 18
Exigences, besoins. Exemple 2

Nous avons vu que les systèmes
d’exploitation modernes sont organisés
par couches de fonctionnalités
 Il est souhaitable de pouvoir protéger les
couches les plus internes (les plus critiques)
contre les plus externes
 P.ex le noyau contre les programmes
d’application

Chap. 18
Exigences, besoins. Exemple 3

Protection par rapport aux domaines d’exécution
dans lesquelles l’usager se trouve
 Quand j’exécute un programme de traitement de
texte, j’aurai accès à certaines données
 Fichiers .doc, .txt …
 Quand j’exécute mon application de courriel, j’aurai
accès à d’autres données
 Fichiers .pst …
 Pour éviter la corruption de données .pst, il devrait
être empêché de les ouvrir par les logiciels conçus
pour .txt

Chap. 18
Principe besoin de connaître (need to know)

On ne devrait permettre à une entité que d’accéder
aux données dont elle a vraiment besoin
 Si un processus invoque une procédure, cette
procédure doit avoir accès à ses paramètres, mais ne
devrait pas être capable d ’accéder aux variables du
processus
 Dans un hôpital,
 Un statisticien aura accès aux données disant les types
de maladies, mais pas aux noms des patients
 Un médecin aura accès aux infos concernant ses
patients, mais pas accès aux infos concernant d’autres
patients

Chap. 18
Mécanismes

Comment trouver des mécanismes
parfaitement adaptés aux besoins dont
nous avons parlé?
 Ce qui suit présente quelques uns des
mécanismes connus

Chap. 18
Importance du SE

Tout mécanisme de protection des
données doit être fondé sur des
mécanismes de protection de base du SE
 La sécurité des données commence dans le
SE

Chap. 18
Mécanismes de protection de base

Modes superviseur – usager (bit dans UCT)
 L’UCT passe en mode superviseur par effet d’une
interruption, qui peut être provoquée par une application
 P.ex. appel au système
 Elle passe en mode usager par requête du SE
 Instructions privilégiées – peuvent être exécutées
seulement en mode superviseur  interruption si
un usager cherche à les exécuter
 Les instructions importantes pour la protection
sont privilégiées
 Le fait que les instructions d’E/S sont protégées
permet la protection des fichiers

Chap. 18
Protection de zones de mémoire principale
 Contrôle d’adresses générées pas la MMU
 bornes inférieures, supérieures
 ne peuvent pas être modifiées en mode usager
 les tentatives d’accéder à une adresse au delà des bornes
causent une interruption

Chap. 18
Point de réflexion

Voir comment les mécanismes
d’adressages de pagination et
segmentation discutés dans le chapitres
Gestion de la mémoire obtiennent les
résultats de la comparaison d’adresses
sans réellement faire aucune comparaison

Chap. 18
Partage et protection de segments (ou de pages)
Deux processus qui partagent un programme
Mais les données de l’un sont protégées par rapport à l’autre

Chap. 18
Protection de segments partagés

Protection sur le chemin d`accès entre processus et segment

Le contrôle d ’accès est effectué chaque fois qu’une adresse est
calculée (donc besoin de matériel qui fasse ceci)
Tabl. segms. Proc. 1 Lim. Base
R,W

Segment
partagé

Tabl. segms. Proc. 2

Les deux proc partagent un segment, cependant Proc. 2 ne peut


que le lire
Chap. 18
Déroulement dans un exemple

1) Un processus demande de faire accès à un
fichier
 2) Le système de contrôle d’accès (à voir)
détermine quels droits le processus a sur le fichier

3) Supposons que le processus a le droit de lire le
fichier

4) Le fichier devient un segment dans la mémoire
virtuelle de l’usager et son descripteur contiendra R
 5) Après le SE va autoriser seulement les ops de
lecture

Chap. 18
Question

Expliquer pourquoi les mécanismes de
protection de la mémoire dépendent de
l’existence des deux modes:
 usager et superviseur

Chap. 18
Partage de fichiers

 Désirable sur les réseaux

 Nécessite de protection

Chap. 18
Protection (détails dans un chap suivant)

Types d ’accès permis
 lecture
 écriture
 exécution
 append (annexation)
 effacement
 listage: lister les noms et les attributs d ’un
fichier

 Par qui

Chap. 18
Listes et groupes d’accès - UNIX

Modes d ’accès: R W E

Trois classes d ’usager:
 propriétaire
 groupe
 public

demander à l ’administrateur de créer un
nouveau groupe avec un certain usager et
un certain propriétaire

droit du propriétaire de régler les droits
d ’accès et d ’ajouter des nouveaux
usagers
Chap. 18
Listes et groupes d’accès
 Mode d’accès: read, write, execute
 Trois catégories d’usagers:
RWX
a) owner access 7  1 1 1
RWX
b) group access 6  110
RWX
c) others access 1  001
 Demander au gestionnaire de créer un groupe, disons G, et
ajouter des usagers au groupe
 Pour un fichier particulier, disons jeux, définir un accès
approprié

owner group public

chmod 761 jeux

Changer le groupe d’un fichier


chgrp G jeux

Chap. 18
Machines virtuelles

Le concept de protection de base dans l’infonuagique (cloud
computing)

Chaque machine virtuelle se comporte comme un ordi
séparé donc en principe ses données ne peuvent pas être
saisies de la part d’une autre machine virtuelle

Chaque usager aura donc sa propre machine virtuelle

Chap. 18
Couches dans les systèmes de protection de données


Couche 1: Chiffrement

Couche 2: Contrôle d’identité
 Couche 3: Contrôle d’accès
 Couche 4: Contrôle de flux
 Couche 5: Protection de l’intimité
(privacy)

Chap. 18
Couche 1: Chiffrement

Tout le système de sécurité dépend de la
capacité de chiffrer certaines informations
critiques pour les garder sécrètes
 Mots de passe
 Certains fichiers

Chap. 18
Couche 2: Contrôle de l’identité


Aussi, tout système de sécurité dépend de
la capacité d’identifier les personnes,
processus, etc. qui interviennent dans un
système,

Ainsi que de déterminer leurs droits et
prérogatives sur les différentes ressources
du système

Cette couche utilise les fonctionnalités de
la couche chiffrement

Chap. 18
Couche 3: Contrôle d’accès

Cette couche gère les requêtes des
personnes, processus etc. qui demandent
accès aux différentes ressources, données
etc.

Pour lire, écrire, exécuter, etc.
 Intercepte les requêtes des usagers, et
autorise ou nie l’accès

Cette couche utilise les fonctionnalités de
la couche du contrôle de l’identité, pour
déterminer qui est qui et qui peut faire quoi

Chap. 18
Couche 4: Contrôle de flux

Cette couche détermine qui peut avoir
accès à quelles données dans un système
 Ex: un employé ne peut pas avoir accès au
salaire d’un autre employé, ni directement ni
indirectement

Elle utilise les fonctionnalités du contrôle
d’accès

Chap. 18
Couche 5: Protection de la vie privée (Privacy)

Cette couche se préoccupe d’implémenter
les exigences de protection de la vie privée
des individus
 P.ex. dans un réseau social certains
individus pourraient demander que
certaines données (disons date de
naissance) ne soient pas accessibles à
autres individus
 Utilise les fonctionnalités du contrôle de
flux

Chap. 18
Modèles de protection

Chap. 18
Modèles MAC et DAC

Modèles MAC: Mandatory Access Control
 Le SE, programmé par un administrateur,
détermine qui peut faire accès à quelles données
et pour faire quoi
 Accès aux données selon les qualifications
(credentials) de l’usager qui cherche à faire accès
 Application: systèmes d’haute sécurité
 Modèles DAC: Discretionary Access Control
 L’usager a le contrôle d’accès à ses données
 Peut déterminer qui peut accéder à quoi

Chap. 18
Systèmes MAC et leurs implémentations

Chap. 18
Exemple d’application militaire

• Le soldat simple ne peut


pas savoir (lire) ce que le
général sait,

• Mais il peut l’informer


(écrire)

• No read up, no write


down
• Read down, write up

Chap. 18
Modèle Bell-La Padula (BLP): un système MAC
 Les Objets (données, fichiers) sont classifiés en niveaux de
sensibilité
 P.ex. Public, Classifié, Secret, Très Secret
 Les Sujets sont classifiés en catégories d’habilitation (clearance)
par rapport aux données auxquelles ils peuvent avoir accès:
 P.ex. Soldat dans Public, Capitan dans Classifié, Colonel dans
Secret, Général dans Très Secret
 Règles:
 Un sujet ne peut pas lire dans une catégorie plus élevée
 No read up – read down permis
 Un sujet peut ne peut pas écrire dans une catégorie moins
élevée
 No write down – write up permis

Chap. 18
Cheval de Troie!


Vicky crée un fichier appelé MesAffaires, seulement pour elle

Jean crée un fichier XXX et donne à Vicky l’autorisation d’écrire
sur ce fichier (à l’insu de Vicky)

Jean crée un 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 MesAffaires et écrit sur XXX

Dans BLP:
 Si le ficher MesAffaires est classifié dans un niveau de sensibilité
supérieur à celui de XXX, l’information ne peut pas être copiée de
MesAffaires à XXX
 Si Programme est défini comme sujet à un niveau inférieur à celui
de MesAffaires, Programme ne peut pas lire MesAffaires

http://www.springerreference.com/docs/html/chapterdbid/317733.html
INF6153 Lire aussi l’histoire mythique du Cheval de Troie …
Chap. 18 33
Exercice

Prouver que ce mécanisme empêche
vraiment la circulation de l’information
dans la direction non souhaitée
 Non seulement de manière directe, mais aussi
de manière indirecte

Chap. 18
Implémentations


Le SE Multics a implémenté ce concept
déjà à partir des années 196X

Les systèmes Intel ont fourni du matériel
pour ceci à partir des modèles x86
 Mais les implémentations logiciel ont tardé
 Linux implémente maintenant un modèle
de protection à « anneaux » ou « niveaux »

Chap. 18
Multics: Anneaux de protection (`peau d’oignon`)

Extension du concept de mode superviseur-
usager (chaque mode est un anneau)
 Chaque anneau est un domaine de protection

Les anneaux les plus internes sont les plus
essentiels, les plus privilégiés, et les plus
protégés

Chap. 18
Affectation de processus aux anneaux
 Exemple:
 anneau 0: noyau du SE
 anneau 1: fonction d’administration système
 anneau 2: programme de correction du prof
 anneau 3: programme de l`étudiant
 Chaque segment d’un processus est affecté à un anneau
 À un moment donné, un processus se trouve dans un anneau
 Quand un proc. se trouve dans un anneau n, il peut
 accéder librement aux segments dans l ’anneau n, ou anneaux
extérieurs
 il ne peut pas accéder aux segments dans les anneaux intérieurs

Chap. 18
Mécanisme d’anneaux
 L’UCT a un registre qui contient le numéro de l’anneau où elle est
en train d ’exécuter
 Un proc qui exécute dans un anneau peut accéder aux données
dans les anneaux plus externes.
 cependant ses capacités peuvent être limitées par rapport à
certains fichiers (R,W,E) comme discuté (need to know)
 L’appel aux procédure plus externes est relativement libre,
cependant il faut `copier` les params dans une zone où il puissent
être lus en exécutant dans un anneau qui a moins de capacités
 Il faut aussi se préoccuper que les paramètres puissent être rendus
disponibles au niveau plus externe
 L’appel aux procédures plus internes est contrôlé par le SE par
des règles rigoureuses

Chap. 18
Intégrité et diffusion de l’information

Le système Bell-LaPadula se préoccupe de
limiter l’accès aux informations

Dans d’autres systèmes, la préoccupation
pourrait être surtout de sauvegarder
l’intégrité de l’information
 P.ex. qu’un subordonné, pouvant écrire en
haut, pourrait modifier les directives provenant
de là

Chap. 18
Système Biba

Le système Biba se préoccupe justement de
protéger l’intégrité des infos des niveaux
supérieurs
 Règles:
 Un sujet ne peut pas écrire dans une catégorie
plus élevée
 No write up – write down permis
 Un sujet peut ne peut pas lire dans une catégorie
moins élevée
 No read down – read up permis
 Persuadez-vous que les information plus sécrètes
ne peuvent pas être corrompues

Chap. 18
Systèmes DAC:
Discretionary Access Control

Chap. 18
Domaines d’exécution

Chap. 18
Domaines d’exécution: modèle abstrait

Nous avons dans un systèmes des
‘domaines d’exécution’ qui déterminent ce
qu’un processus peut faire quand il se
trouve dans chaque domaine

L’impression de O4 peut être effectuée dans domaine D2 ou D3, pas D1


Chap. 18
Changement de domaines d’exécution

À chaque moment dans son exécution, un
processus (ou usager...) se trouve dans un
domaine d’exécution

En exécutant, un proc peut passer d’un domaine à un autre


L’impression de O4 peut être effectuée dans domaine D2 ou D3, pas D1
Chap. 18
Réalisation de domaines
 Un usager peut être associé à un domaine
 changement de domaine au moment de changement
d’usager
 Un processus peut être associé à un domaine
 changement de domaine au moment de changement
de processus
 Une procédure ou méthode peut être un
domaine
 changement de domaine au moment de changement
de procédure ou méthode

Chap. 18
Méthode de la matrice d’accès
 Indique les capacités d’un processus exécutant dans un
domaine Di sur différents objets

capacités du dom. D2

Chap. 18
capacités sur le fichier F2
La matrice d’accès sépare le mécanisme des critères


Mécanismes
 Le SE fournit la matrice d’accès et les règles
 Assure que la matrice ne soit manipulée que
par des agents autorisés et que les règles
soient respectées
 Critères (politiques, policies)
 sont dictés par les usagers
 quels domaines peuvent accéder à quel objet
avec quelles capacités

Chap. 18
Extensions de la méthode de la matrice
d’accès

Chap. 18
Changement de domaine comme capacité

Un usager qui se trouve dans le domaine
D2 peut changer au domaine D3 ou D4.

Chap. 18
Capacité de copier les droits d’accès
 Un processus peut avoir le droit de recopier un droit d’accès
d ’un domaine à un autre (signalé par *)
 p.ex. un proc exécutant dans domaine D2 peut copier son
droit d ’accès sur fichier F2 à un autre domaine

Après modif

Chap. 18
Droits de propriétaire
 Droit d ’un propriétaire de changer les droits d’autres sur les
objets qui lui appartiennent
 si (i,j) contient owner, un proc dans Di peut ajouter ou enlever
des droits dans la colonne j

Chap. 18
Implantation des matrices d’accès
 Difficile à implanter de façon que chaque accès de
mémoire puisse être contrôlé
 Tableau global. Désavantages:
 grand, éparpillé, doit être paginé
 Par colonne: chaque objet est associé à une liste
d’accès (qui peut faire quoi sur l ’objet)
 facile à mettre à jour à partir de l ’objet
 difficile à mettre à jour à partir des domaines
 Par ligne: chaque domaine est associé à une liste
de ses capacités
 facile et difficile: contraire du précédent

Chap. 18
Mécanismes serrure-clé (lock-key): un compromis

Chaque objet a une liste de patrons de bit
unique: ses serrures

Chaque domaine a aussi une liste de
patrons de bits unique: ses clés

Un processus qui exécute dans un
domaine a accès à un objet seulement si
une des clés du domaine correspond à une
des serrures sur l’objet
 Serrures et clés sont gérées par le SE

Chap. 18
Solutions mixtes: exemple

Les objets ont des listes d’accès
 Quand un processus cherche à accéder à un objet
(p.ex. un fichier) le SE cherche sur la liste d’accès
de l`objet si le domaine du proc a droit d’accès à
l’objet

Si oui, la capacité d’accéder à l’objet est ajoutée à
la liste des capacités du processus
 Dans le cas de segmentation, quand un nouveau
segment est ajouté à un proc, on crée une entrée
additionnelle dans le tableau des segments, avec la
protection appropriée

Chap. 18
Fonctionnement possible

lim base R R
R,W R,W R,W
X

Le tableau de Le proc a demandé accès à un


segments d’un proc 3ème segment pour l’exécuter. Le
qui a droit d’accès à SE contrôle qu’il a droit, si oui il
2 segms ajoute le droit d’accès au tableau
des segments du processus

Chap. 18
Problèmes

1) implantation efficace

2) comment s’assurer que la matrice
correspond aux exigences de sécurité

Chap. 18
Solutions basées sur les langages de
programmation
 Les langages de programmation peuvent inclure des
énoncés qui déterminent les droits de protection.
 p.ex. en Java contrôle d ’accès aux méthodes et variables

Considérations:
 Fiabilité ̶ :un système basé sur les mécanismes d ’un
langage de programmation peut être moins fiable qu’un
système basé sur le noyau du SE
 Efficacité ̶ : un système qui utilise le noyau, le matériel, etc.
sera normalement plus efficace
 Flexibilité +: un système basé sur un langage de
programmation sera plus flexible et plus adapté aux besoins
de l ’usager
 Cependant, le langage de programmation peut faire appel au
noyau.

Chap. 18
Conclusion

Les exigences de protection peuvent être
très complexes

La méthode de la matrice d’accès est
puissante et générale, mais son
implantation efficace est problématique
 Les systèmes réels cherchent à
approximer le résultats désirés par des
solutions mixtes

Chap. 18
Concepts importants du chapitre
 Niveaux de protection

Modèle de protection à couches: 5 couches
 Protection de diffusion et d’intégrité:
 Bell-LaPadula, Biba
 Implémentation de Bell-LaPadula dans système Multics

Domaines d’exécution

Besoin de connaître
 Protection sur les descripteurs des segments

Matrices d’accès
 Copier, modifier, octroyer les droits d’accès

Implémentation des droits d’accès:
 Listes d’accès aux objets
 Liste de capacité des processus
 Compromis, solutions mixtes

Chap. 18
Par rapport au livre: Chap 18

Sauf
 Protection en Unix
 Mécanismes spécifiques: Hydra, CAP etc.
 Section 18.6: connaissance générale

Chap. 18
Chap. 18
Chap. 18

Vous aimerez peut-être aussi