Introduction à la sécurité Cours 3 Contrôle d accès. Catalin Dima



Documents pareils
Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Frédéric Cuppens et Nora Cuppens-Boulahia

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Texte Agrégation limitée par diffusion interne

Chapitre 5 : Flot maximal dans un graphe

Gestion des Clés Publiques (PKI)

Conception des systèmes répartis

Partie II Cours 3 (suite) : Sécurité de bases de données

UML et les Bases de Données

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Cours 02 : Problème général de la programmation linéaire

Correction du baccalauréat ES/L Métropole 20 juin 2014

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Une introduction aux codes correcteurs quantiques

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Cours 1 : La compilation

Chapitre VI- La validation de la composition.

Génie Logiciel avec Ada. 4 février 2013

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Machines virtuelles Cours 1 : Introduction

Traduction des Langages : Le Compilateur Micro Java

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Algorithmique et Programmation Fonctionnelle


MIS 102 Initiation à l Informatique

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Eléments de Théorie des Graphes et Programmation Linéaire

Table des matières. Introduction

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Quatrième partie IV. Test. Test 15 février / 71

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

données en connaissance et en actions?

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Intégration de la dimension sémantique dans les réseaux sociaux

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

IFT1215 Introduction aux systèmes informatiques

3 Approximation de solutions d équations

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

CEG4566/CSI4541 Conception de systèmes temps réel

Programmation Par Contraintes

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

OCL - Object Constraint Language

Résolution de systèmes linéaires par des méthodes directes

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Exemple de politique de sécurité. Politique de sécurité. Exemple de politique de sécurité (suite) Exemple de politique de sécurité (suite)

Algorithmique et programmation : les bases (VBA) Corrigé

Chapitre 2 Le problème de l unicité des solutions

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Modèles de Calcul Start p.

Model checking temporisé

3. Conditionnement P (B)

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Service Level Agreement (SLA)

Le modèle de données

Algorithmique et Programmation, IMA

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Qualité du logiciel: Méthodes de test

Bases de données cours 1

DOCM Solutions officielles = n 2 10.

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Limites finies en un point

INF4420: Éléments de Sécurité Informatique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Fonctions de plusieurs variables

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Algorithme. Table des matières

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Université de Bangui. Modélisons en UML

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de données relationnelles

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Licence Sciences et Technologies Examen janvier 2010

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

LE MODELE CONCEPTUEL DE DONNEES

Simulation de variables aléatoires

Programmation linéaire

Les systèmes de gestion de version

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours de Génie Logiciel

Patrons de Conception (Design Patterns)

Bases de données Cours 5 : Base de données déductives

Utilisation des tableaux sémantiques dans les logiques de description

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

BACCALAUREAT GENERAL MATHÉMATIQUES

Chapitre 1 : Introduction aux bases de données

Transcription:

Introduction à la sécurité Cours 3 Contrôle d accès Catalin Dima 1

Contrôle d accès Une des bases de la sécurité : On permet à une action d être exécutée que si elle respecte une certaine politique. Permet de renforcer la confidentialité ou l integrité. Contrôle d accès discrétionnaire basé sur l identité et la possesion. UNIX/Linux. Contrôle d accès obligatoire basé sur l existence d un Serveur de Sécurité. Modèles basés sur les rôles, sur les organisations, sur les lattices de sécurité... Renforcement de types. Modèles intéressants théoriquement : Take-grant, protection schématique. 2

Contrôle d accès discrétionnaire Basé sur l identité : Utilisateurs les sujets des actions. Objets. Chaque utilisateur possède un certain ensemble d objets, avec lesquels il peut faire ce qu il veut. Avantages : décisions decentralisées, surcoût faible de déploiement, tolérance aux attaques de type déni de service. Désavantages : difficile d analyser, peut engendrer des failles de sécurité, peut ne pas être utilisable pour l implémentation de certains principes de sécurité. 3

Contrôle d accès obligatoire Serveur de sécurité (SS), censé renforcer une certaine politique. Exemple : politique militaire, avec des niveaux de sécurité. Règles d accès, basées sur des permissions/droits. Toute action doit être validée par le SS,... qui prend sa décision en consultant l ensemble des règles. Avantages : conception et analyse unitaire, modèles complets permettant l implémentation d une majorité des principes de sécurité. Désavantage : surcharge importante lors de la gestion de grands systèmes, possible concentrateur d attaques, tolérance aux fautes réduite. 4

Modèle HRU (Harrison-Ruzzo-Ullman) Composants de l état de protection : SujetsS : utilisateurs, groupes, processus, services... Objets O : fichiers, processus, services... À noter : S O. Actions Act : lecture, exécution, communication entre processus, création. Droits R : chaque action implique l existence des droits entre les participants à l action! Correspondance actions - droits. Matrice de droits d accèsm : S O 2 R. État de protection du système = ( S,O,M ). Image instantanée des caractéristiques du système. 5

Modèle HRU Chaque action est initiée par un sujet,...et implique un certain nombre de participants (sujets ou objets). On aura donc les participants de l action Part : Act N. Exemple d action : videoconf, P art(videoconf) = 4. Quatre participants, dont un qui est l initiateur. On écrira alorsvideoconf(alice,bob,charlie,danny), avec Alice comme initiateur. Action fork, Part(fork) = 2. Exemple d action : fork(33175,35881) ; Le sujet de PID35881 est créé! Action kill(33175,35881). 6

Actions et permissions Chaque action peut être autorisée si certaines permissions sont satisfaites par les participants. Action act associée à une contrainte C sur la matrice des droits d accès. Contrainte spécifiée comme combinaison booléenne des permissions élémentaires r [x,y] : le sujet x a le droit r sur l objet y. La sémantique des permissions est donnée par cette affectation. Exemples : Pourvideoconf(x,y,z,t) : Perm(videoconf) = ifv [x,y] andv [y,x] and... Perm(kill(33175,35881)) devrait spécifier le fait que les 2 processus appartiennent au même utilisateur (comment écrire ça?) Certaines actions peuvent demander plus de permissions pour la même paire sujet/objet (ou sujet/sujet) e.g. lancement en exécution. 7

Actions et matrice d accès Chaque action pourrait avoir aussi une influence sur la matrice de contrôle d accès! chown,chmod,... Dans ces cas, il faut aussi modéliser cet effet. On définit alors les opérations primitives qui peuvent apparaître en tant qu effet des actions surm : enter r into [X,Y]. delete r from[x,y]. create subject X. create object X. destroy subjectx. destroy object X. Attention, ces sont des prototypes!x, Y sont des variables, seulement r est instancié! 8

Sémantique des opérations Configuration (instantanée) : (S,O,M), oum : S O R et S O. Transition par une opération primitive (S,O,M) op (S,O,M ) 1. Si op = enter r into [X, Y], alors S = S,O = O,M (a,b) = M(X,Y) {r} sia = X,b = Y M(a, b) sinon 2. Si op = delete r into [X, Y], alors S = S,O = O,M (a,b) = M(X,Y)\{r} sia = X,b = Y M(a, b) sinon 3. Siop = create subject X alors S = S {X},O = O {X},M (a,b) = M(a,b) sia S,b O sinon. 4. Siop = destroy subjectx alors S = S \{X},O = O \{X},M (a,b) = M(a,b), pour tout a S,b O 9

Actions & matrice d accès Commande = action qui peut avoir une influence sur la matrice de contrôle d accès. Transition par une commandeα, (S,O,M) α (S,O,M ) command α(x 1,...,X n ) ifr 1 in[x i1,x j1 ] and... and r k in [X ik,x jk ] then op 1... op p Sémantique : 1. Vérification des pré-conditions de la commande : r t M(X it,x jt ) pour tout 1 t k 2. Exécution des opérations primitives dans l ordre donné : (S,O,M) op1 (S 1,O 1,M 1 )... opp (S p,o p,m p ) = (S,O,M ) On dénote alors (S,O,M) (S,O,M ). Les opérations sont ordonnées à l intérieur d une commande, mais les commandes ne sont pas ordonnées! 10

Exemple : système hiérarchique Supposons un système avec des niveaux de documents (public, classifié, top secret). On veut pas que le grand public lise des documents secrets. Mais on ne veut pas non plus d avoir des taupes! Politique Bell-LaPadula (sécurité multiniveaux on va revenir là-dessus) : No read-up, no write-down. Implémentable dans le modèle HRU : Niveaux de sécurité : P, C, TS. Éventuellement des permissions r,w mais pas nécessaire! Tous les objets sont sujets aussi et possèdent un niveau de sécurité! Actions : read,write. Perm(read(X,Y)) = if ((P [X,X]) and(p [Y,Y])) or((c [X,X]) and(p [Y,Y])) or... Problème : est-ce qu on peut modifier les niveaux de sécurité des sujets/objets sans toucher aux principes no read-up/no write-down? 11

Exemple 2 : UNIX (simplifié et modifié) Attribut propriétaire : own. Fichiers = sujets de type spécial. Privilèges de propriétaire : oread, owrite, oexec. Sif a X comme propriétaire et peut être lu par tous,... alors on a aread M(f,f) et own M(X,f). Donc action read(x,y)avec Perm(read(X,Y)) = if(aread M(Y,Y))or((oread M(X,Y))and(own M(X,Y))) Les autres permissions awrite, aexec définies de manière similaire. chmod : commande, car modifie l état de sécurité : command chmod_read_all(x, Y) ifown [X,Y] then enter oread into[y,y] 12

Politiques de sécurité et contrôle d accès On fixe un système(s,o,m) et un ensemble d actions (et commandes) C. Configuration atteignable =(S,O,M ) telle qu il existe (S,O,M) (S 1,O 1,M 1 )... (S p,o p,m p ) = (S,O,M ) Un système de contrôle d accès peut provoquer la fuite d un droitr s il existe une configuration atteignable (S,O,M ) telle que r M (x,y) pour certains x S,y O. Un système d accès est sûr par rapport à un triplet (x,y,r) S O R si dans aucune configuration atteignable (S,O,M )xn a le droit r sury (r M(x,y)). Notion locale. Un système d accès est sûr par rapport à un droitr R si dans toute configuration atteignable (S,O,M ) on ne peut jamais trouverx,y tels quer M (x,y). Notion globale. Politique de sécurité = ensemble de propriétés de sûreté. 13

Décidabilité Est-ce que le système de transitions est (en soi-même) un mécanisme renforçant une politique de sûreté? Question équivalente : est-ce qu on peut construire un algorithme tester la non-fuite d un droit pour tout système de type matrice d accès? Si le système ne permettrait pas de créer de nouveaux sujets/objets, alors simulation jusqu à la couverture de toutes les configurations possibles. Problème : création de sujets et/ou objets! L espace de configurations possibles peut être infini! La procédure consistant a construir toutes les configurations atteignables ne s arrêterait pas en général! Exemple : UNIX et création de nouveaux processus. 14

Décidabilité Théorème (Harrison, Ruzzo, Ullman, 76) : Le problème de sûreté pour les systèmes de type matrice d accès est indécidable. Idée : on peut coder le comportement d une machine de Turing en tant que système de contrôle d accès Sujets = cases sur la bande. Droits = états de la machine + symboles de bande + droit spécial symbolisant la relation d adjacence. Position de la tête de lecture = un certain sujet (case) possède le droit q (état courant) sur lui-même, et tous les autres sujets n ont pas de droit sur eux-mêmes. Transitions dans le système simulent les transitions dans la machine de Turing. On peut faire même sans suppression de droits! Mais cela n empêche pas d avoir de sous-classes ou le problème soit décidable. 15

Droits : t ( take ) et g ( grant ). Commandes de type spécial : Take-grant take(x,y,z) : ift [x,y] andα [y,z] then enter α [x, z] grant(x,y,z) : ifg [x,y] and α [x,z] then enter α [y, z] create(x, y) : create x; enter t,g [x,y] take permet àxde récupérer tous les droits quey possède surz ; grant permet àxde propager ày ses droits surz. Tout objet crée par x est possédé par celui-ci, qui peut donc récupérer ou lui transmettre tous les droits. 16

Décidabilité Théorème : Il existe un algorithme permettant de décider, pour tout système de type take-grant, si le système provoque la fuite d un droit. Chemin tg : chemin dans le graphe représentant la matrice de droits d accès contenant que des arêtes t ou g. Orientation d arêtes non-importante. Théorème : En supposants = O, pourx,y S,xpeut récupérer le droit α sury si et seulement si il existe unz S tel que α [z,y] etxet z sont reliés par un chemin tg. 17

Systèmes typés TAM = Typed Access Matrix : Primitives : S = sujets, O = objets, R = droits, T = types ett : O T : pour tout objet o O, t(o) donne son type. Commandes typées : command nom(x 1 : t 1,...,X n : t n ) if r 1 in [X i1,x j1 ] and... andr k in[x ik,x jk ] then op 1 ;...;op p Sémantique : les substitutions des variables doivent respecter les types. 18

Systèmes typés Monotonicité : on ne dispose que de commandes de création de sujets ou de rajout de droits (pas de destruction/elimination de droits). Canonicité : les commandes de création sont inconditionnelles. Théorème : tout système TAM monotonique (MTAM) est équivalent à un système MTAM à commandes canoniques. Équivalence : on peut simuler le système canonique dans le système initial et vice-versa. Relation de dépendance des types : si dans une commande on a une variable d entrée x : t et une variable de sortie y : t (c est à dire, y est créé par cette commande!), alors t t. Peut être étendue à une relation de préordre par reflexivité et transitivité. En général l extension n est pas un ordre partiel : cycles de dépendance. 19

Implémentation : ACL et capabilités Acces Control Lists :L : O [ S 2 R] Colonnes de la matrice des droits d accès. Langage de spécification dépendant du système. Capabilites : C : S [ O 2 R] Lignes de la matrice des droits d accès. Pourquoi opter pour l une ou l autre : Si nbobjets >> nbsujets alors ACL. Capabilités utiles quand on veut enregistrer le comportement des sujets. 20