• Aucun résultat trouvé

Frédéric Cuppens et Nora Cuppens-Boulahia

N/A
N/A
Protected

Academic year: 2022

Partager "Frédéric Cuppens et Nora Cuppens-Boulahia"

Copied!
23
0
0

Texte intégral

(1)

Les mod`eles de s´ecurit´e

Fr´ed´eric Cuppens et Nora Cuppens-Boulahia

Abstract

L’objectif des mod`eles de s´ecurit´e est de donner une expression des besoins de s´ecurit´e des syst`emes d’informations (SI). Depuis le d´ebut des ann´ees 70, de tr`es nombreux mod`eles ont ´et´e propos´es. Nous nous int´eressons, dans ce chapitre, `a trois cat´egories de mod`eles : les mod`eles de contrˆole d’acc`es, de flux et d’usage. Comme les utilisateurs d’un SI n’ont pas tous les mˆemes droits d’acc`es aux informations g´er´ees par le SI, l’objectif d’un mod`ele de contrˆole d’acc`es est d’exprimer une politique d’autorisation. Les limites des mod`eles de contrˆole d’acc`es sont connues ; ils ne prennent pas en compte les attaques que peuvent r´ealiser les applications pi´eg´ees par Chevaux de Troie. Des mod`eles de contrˆole de flux ont donc ´et´e d´efinis pour traiter ce probl`eme. Plus r´ecemment, pour prendre en compte les nouveaux besoins de s´ecurit´e pr´esent dans certaines applications telles que la gestion des droits ´electroniques (DRM), des mod`eles de contrˆole d’usage ont ´et´e propos´es. Dans tous les cas, un mod`ele de s´ecurit´e doit inclure la possibilit´e d’exprimer une politique d’administration qui sp´ecifie qui peut g´erer et mettre `a jour la politique de s´ecurit´e.

1 Introduction

Le d´ebut des ann´ees 70 a vu la d´efinition des premiers mod`eles de s´ecurit´e : mod`ele de contrˆole d’acc`es [30] et de contrˆole de flux [5]. Depuis, de nombreux mod`eles de s´ecurit´e ont ´et´e d´efinis.

L’objectif de ce chapitre est de faire le point sur les principaux travaux men´es sur ce sujet au cours des trente derni`eres ann´ees.

Dans ce chapitre, nous ne consid`erons pas les mod`eles con¸cus pour analyser les protocoles de s´ecurit´e, en particulier les protocoles cryptographiques. Ces mod`eles (voir par exemple [?]) ont

´et´e propos´es pour analyser des propri´et´es telles que l’authentification, la non r´epudation ou la fraicheur d’une information.

Dans ce chapitre, nous nous int´eressons d’abord aux mod`eles de contrˆole d’acc`es propos´es pour mod´eliser des politiques d’autorisation. Dans ce contexte, l’un des premiers mod`eles propos´es fut celui de Harrison, Ruzzo et Ullman (HRU, voir [26]). HRU a deux composantes : un mod`ele de contrˆole d’acc`es et un mod`ele d’administration. Le mod`ele de contrˆole d’acc`es repose sur l’identit´e des entit´es, d’o`u le nom de I-BAC (Identity Based Access Control) pour d´esigner cette partie du mod`ele HRU. L’administration est ditediscr´etionnaire, d’o`u le nom de mod`ele discr´etionnaire (ou DAC, Discretionary Access Control) que l’on a tendance `a utiliser pour d´esigner l’ensemble du mod`ele HRU.

Plusieurs limites sont apparues `a l’usage du mod`ele I-BAC. En particulier, le manque de struc- turation de ce mod`ele rend complexe l’expression et la gestion d’une politique d’autorisation. De nombreux autres mod`eles ont ensuite ´et´e propos´es. Ces mod`eles ont introduit de nombreux con- cepts pour davantage structurer l’expression de la politique d’autorisation : rˆoles, tˆaches, vues,

´equipes. Le mod`eles Or-BAC (Organization Based Access Control, voir [29]) permet de structurer l’expression de la politique d’autorisation en utilisant l’ensemble de ces concepts.

Des mod`eles `a base de r`egles (Rule-BAC voir par exemple [27, 8] ont ´et´e propos´es pour exprimer des politiques d’autorisation incluant des r`egles de contrˆoles d’acc`es dynamiques. L’expression de ce besoin dans le mod`ele Or-BAC est ´egalement possible grˆace `a l’introduction du concept de contexte.

Les premiers mod`eles de contrˆole d’acc`es ne permettaient que d’exprimer des autorisations pos- itives ou permissions. Les mod`eles plus r´ecents offrent ´egalement la possibilit´e d’exprimer des

(2)

autorisations n´egatives ou interdictions. Ces mod`eles facilitent l’expression de r`egles de contrˆoles d’acc`es pr´esentant desexceptionsmais posent le probl`eme de la gestion des conflits entre permis- sions et interdictions. Nous examinerons, dans la section 2.8, les principales strat´egies de r´esolution de conflits qui ont ´et´e propos´ees dans la litt´erature.

On sait depuis la d´efinition du mod`ele de Bell et LaPadula [5] que les mod`eles de contrˆole d’acc`es ne permettent pas de prende en compte le probl`eme des applications pi´eg´ees, encore appel´ees Cheval de Troie. Bell et LaPadula ont ainsi d´efini le premier mod`ele de contrˆole deflux(ou de type MAC, Mandatory Access Control). Cependant, ce premier mod`ele ne r´esoud pas tous les probl`emes, en particulier la possibilit´e pour un Cheval de Troie de transmettre ill´egalement des informations via uncanal cach´e. Le mod`ele de non-interf´erence [24] permet de traiter ce probl`eme mais conduit `a un cloisonnement strict du `a l’hypoth`ese extrˆeme que toutes les applications peuvent ˆetre pi´eg´ees par un Cheval de Troie. Dans la pratique, le mod`ele de Non Interf´erence s’av`ere difficilement applicable. Des mod`eles plus r´ecents permettant d’assouplir les hypoth`eses trop pessimistes du mod`ele de non interf´erence ont ainsi ´et´e propos´es. Nous pr´esenterons en particulier dans ce chapitre les mod`eles de Bell et LaPadula ´etendu [4], DTE [?] et causalit´e [10].

Tous ces mod`eles de s´ecurit´e doivent inclure un mod`eled’administration pour exprimer qui peut d´efinir et mettre `a jour une politique d’autorisation repr´esent´ee dans ces mod`eles. Le premier mod`ele d’administration est le mod`ele de type discr´etionnaire propos´e par HRU [26]. Ce pre- mier mod`ele permet d’administrer une politique d’autorisation exprim´ee dans le mod`ele I-BAC.

De tr`es nombreux autres mod`eles d’administration discr´etionnaire ont ensuite ´et´e propos´es et le mod`ele TAM (Typed Access Matrix, voir [?]) est peut-ˆetre le plus abouti dans ce domaine. Mais, l’expression d’une politique d’administration dans ces mod`eles restent limit´ee. Plus r´ecemment, de nouveaux mod`eles adapt´es aux mod`eles RBAC (Role Based Access Control) ou Or-BAC ont

´et´e d´efinis. Ces mod`eles sont auto-administr´es, c’est-`a-dire la politique d’administration s’exprime en utilisant les mˆemes concepts que ceux utilis´es pour exprimer la politique d’autorisation. Nous verrons ´egalement comment exprimer les besoins d’administration dans les mod`eles de contrˆole de flux de type MAC en contrˆolant la d´eclassification.

Enfin, dans les nouvelles applications plus ouvertes ne reposant plus n´ecessairement sur une architecture client-serveur, les mod`eles de contrˆole d’acc`es ou de contrˆole de flux ne sont plus compl`etement adapt´es. De nouveaux mod`eles voient le jour pour r´epondre aux besoins de contrˆole d’usage(voir par exemple, le mod`ele ABC [?]). Ces mod`eles ne limitent plus la politique de s´ecurit´e

`a l’expression de permissions et d’interdictions mais introduisent ´egalement le conceptd’obligation.

Ces nouveaux mod`eles devraient, par exemple, ˆetre mis en œuvre dans les applications de gestion des droits ´electroniques (DRM) ou les services web.

Le plan de ce chapitre est le suivant. Les sections 2 et 3 sont respectivement consacr´ees aux mod`eles de contrˆole d’acc`es et de contrˆole de flux. La section 4 s’int´eresse aux mod`eles d’administration.

Enfin, la section 5 propose une synth`ese et ouvre des perspectives sur les nouveaux mod`eles de contrˆole d’usage.

2 Contrˆ ole d’acc` es

2.1 Mod` ele I-BAC

Nous d´esignons par I-BAC (Identity Based Access Control) le premier mod`ele de contrˆole d’acc`es propos´e dans la litt´erature (voir [30]). Ce mod`ele introduit les concepts fondamentaux de sujet, d’action et d’objet :

Le sujet est l’entit´e active du SI. Il d´esigne le plus souvent un utilisateur ou une application s’ex´ecutant pour le compte d’un utilisateur.

L’objet est l’entit´e passive du SI. Il d´esigne une information ou une ressource `a laquelle un sujet peut acc´eder pour r´ealiser une action.

(3)

L’action d´esigne l’effet recherch´e lorsqu’un sujet acc`ede `a un objet. On peut par exemple d´esirer lire ou mettre `a jour l’information contenue dans un objet ou bien recopier le contenu d’un objet dans un autre objet.

L’objectif du mod`ele I-BAC est de contrˆoler tout acc`es direct des sujets aux objets via l’utilisation des actions. Ce contrˆole est bas´e sur l’identit´e du sujet et l’identificateur de l’objet, ce principe de contrˆole d’acc`es donnant son nom au mod`ele I-BAC.

Le mod`ele I-BAC introduit ensuite le concept de politique d’autorisation. Dans I-BAC, une poli- tique d’autorisation correspond `a l’expression d’un ensemble d’autorisations positives (ou permis- sions) ayant le format suivant : un sujet a la permission de r´ealiser une action sur un objet.

La possibilit´e de sp´ecifier dans un mod`ele de contrˆole d’acc`es des autorisations n´egatives (ou interdictions) ne sera offerte que beaucoup plus r´ecemment. Nous examinons les mod`eles offrant cette possibilit´e dans la section 2.8.

En fait, dans I-BAC, on suppose implicitement que la politique de contrˆole d’acc`es est ferm´ee, c’est-`a-dire par d´efaut tous les acc`es sont interdits. La politique d’autorisation sp´ecifie donc des permissions et on refusera l’acc`es si la politique d’autorisation ne permet pas de d´eriver que l’acc`es est explicitement permis.

Pour repr´esenter une politique d’autorisation, le mod`ele propos´e dans [30] introduit ´egalement un autre concept fondamental, celui de matrice de contrˆole d’acc`es qui sera ensuite repris dans plusieurs autres mod`eles (voir par exemple [26]). Dans une matrice de contrˆole d’acc`es, les lignes et colonnes de la matrice correspondent respectivement `a l’ensemble des sujets et des objets du SI.

Les “cases” de la matrice repr´esentent l’ensemble des permissions qu’un sujet donn´e poss`edent sur un objet donn´e.

Le mod`ele de type I-BAC est aujourd’hui implant´e dans la plupart des syst`emes d’exploitation actuels, tels que Windows, Unix ou Linux. Pour mettre en œuvre un tel mod`ele dans un SI, on n’implante pas directement la matrice de contrˆole d’acc`es. Il existe en fait deux grandes approches possibles suivant que l’implantation repose sur une d´ecomposition en lignes ou en colonnes de la matrice.

La d´ecomposition en colonnes consiste `a associer, `a chaque objet, un descripteur appel´eliste de contrˆole d’acc`es, qui repr´esente l’ensemble des sujets ayant des acc`es sur l’objet consid´er´e avec, pour chaque sujet, l’ensemble des actions que ce sujet peut r´ealiser sur cet objet.

La d´ecomposition en ligne consiste `a associer `a chaque sujet, un ensemble decapacit´es, repr´esentant l’ensemble des objets auxquels le sujet peut acc´eder avec, pour chaque objet, l’ensemble des actions que le sujet peut r´ealiser sur cet objet.

A l’usage, une limite importante du mod`ele I-BAC est apparue : la politique d’autorisation devient rapidement complexe `a exprimer et administrer. Il est en effet n´ecessaire d’´enum´erer les autorisa- tions pour chaque sujet, action et objet. En particulier, lorsqu’un nouveau sujet ou objet est cr´e´e, il est n´ecessaire de mettre `a jour la politique d’autorisation pour d´efinir les nouvelles permissions associ´ees `a ce sujet ou objet.

Pour pallier ce probl`eme, des mod`eles ont plus r´ecemment ´et´e d´efinis. Tous ces mod`eles ont en commun de proposer une expression plus structur´ee de la politique d’autorisation. Nous pr´esentons dans les sections suivantes, les mod`eles proposant respectivement une structuration des sujets, des actions et des objets.

2.2 Mod` ele R-BAC

Le mod`ele RBAC (Role Based Access Control, voir [34]) propose de structurer l’expression de la politique d’autorisation autour du concept de rˆole. Un rˆole est un concept organisationnel : des rˆoles sont affect´es aux utilisateurs conform´ement `a la fonction de ces utilisateurs joue dans l’organisation.

Le principe de base du mod`ele R-BAC est de consid´erer que les autorisations sont directement associ´ees aux rˆoles. Dans R-BAC, les rˆoles re¸coivent donc des autorisations de r´ealiser des actions

(4)

sur des objets. Comme I-BAC, le mod`ele R-BAC ne consid`ere que des autorisations positives (permissions) et fait donc l’hypoth`ese que la politique est ferm´ee.

Un autre concept introduit par le mod`ele R-BAC est celui desession. Pour pouvoir r´ealiser une action sur un objet, un utilisateur doit d’abord cr´eer une session et, dans cette session, activer un rˆole qui a re¸cu l’autorisation de r´ealiser cette action sur cet objet. Si un tel rˆole existe et si cet utilisateur a ´et´e affect´e `a ce rˆole, alors cet utilisateur aura la permission de r´ealiser cette action sur cet objet une fois ce rˆole activ´e.

Lorsqu’un nouveau sujet est cr´e´e dans le SI, il suffit d’affecter des rˆoles `a ce sujet pour que ce sujet puisse acc´eder au SI conform´ement aux permissions accord´ees `a cet ensemble de rˆoles. Compar´e au mod`ele I-BAC, la gestion de la politique d’autorisation s’en trouve simplifi´ee puisqu’il n’est plus n´ecessaire de mettre `a jour cette politique chaque fois qu’un nouveau sujet est cr´e´e.

Dans le cas g´en´eral, n’importe quel ensemble de rˆoles peut ˆetre affect´e `a un utilisateur et un utilisa- teur peut activer dans une session n’importe quel sous-ensemble des rˆoles qui lui ont ´et´e affect´es.

Le mod`ele R-BAC introduit la notion de contrainte pour sp´ecifier des politiques d’autorisation incluant des situations plus restrictives. Ainsi, une contrainte de s´eparationstatique sp´ecifie que certains rˆoles, par exemple m´edecin et infirmier, ne peuvent pas ˆetre simultan´ement affect´es `a un utilisateur. Une contrainte de s´eparationdynamiquesp´ecifie que, mˆeme si certains rˆoles peuvent ˆetre affect´es `a un utilisateur, par exemple m´edecin lib´eral et chirurgien, ces rˆoles ne peuvent pas ˆetre activ´es simultan´ement dans une mˆeme session.

Dans R-BAC, il est ´egalement possible d’organiser les rˆoles de fa¸conhi´erarchique. Les rˆoles h´eritent les autorisations des autres rˆoles qui lui sont hi´erarchiquement inf´erieurs. Lorsqu’un rˆole r1 est hi´erarchiquement sup´erieur `a un rˆoler2, on dit quer1 est un rˆoleseniorder2.

Le mod`ele R-BAC constitue aujourd’hui un standard [21]. De nombreux SI mettent en œuvre ce standard, par exemple Unix Solaris `a partir de la version 8 ou l’API Authorization Manager RBAC de Windows Server 2003.

2.3 Mod` ele T-BAC

Dans les mod`eles I-BAC et R-BAC, les actions correspondent g´en´eralement `a des commandes

´el´ementaires, comme la lecture du contenu d’un objet ou l’´ecriture dans un objet.

Dans les applications r´ecentes, le besoin apparaˆıt de contrˆoler la r´ealisation d’actions composites, appel´ees tˆaches ou activit´es. Par exemple, dans une agence de voyage, la tˆache d’achat d’un billet d’avion se d´ecompose en plusieurs actions plus ´el´ementaires telles que la r´eservation du billet, le paiement du billet et l’´edition d’une facture. Le besoin de contrˆole sur des activit´es composites est en particulier pr´esent dans les applications de typeworkflow[3].

Le mod`ele T-BAC (Task Based Access Control, voir [36]) fut le premier mod`ele `a introduire le concept de tˆache. D’autres mod`eles ont ensuite ´et´e d´evelopp´es pour contrˆoler l’ex´ecution des activit´es dans un workflow (voir [9, 39]). En particulier, l’utilisateur ne doit obtenir une permission que lorsque c’est n´ecessaire pour poursuivre l’ex´ecution de l’activit´e consid´er´ee (“just in time”

permission). Ainsi, dans l’exemple d’achat d’un billet d’avion, la permission d’´editer une facture ne doit ˆetre activ´ee qu’apr`es la r´eservation et l’achat du billet.

2.4 Mod` ele V-BAC

Les mod`eles R-BAC et T-BAC ont respectivement introduit les concepts de rˆole et de tˆache pour structurer les sujets et les actions. Pour faciliter l’expression et la gestion d’une politique d’autorisation, nous avons ´egalement besoin d’un concept pour structurer les objets.

Parmi les mod`eles de contrˆole d’acc`es proposant une telle structuration des objets, on peut citer le mod`ele de s´ecurit´e propos´e par SQL pour les bases de donn´ees relationnelles. L’expression d’une politique de s´ecurit´e en SQL repose sur le concept de vue. Nous d´esignerons donc par V-BAC (View Based Access Control) ce type de mod`ele de contrˆole d’acc`es.

Intuitivement, dans une base de donn´ees relationnelle, une vue correspond au r´esultat d’une requˆete SQL auquel on a donn´e un nom. Ce concept de vue est ensuite utilis´e pour structurer l’expression

(5)

d’une politique d’autorisation `a l’aide des instructions GRANT (qui permet d’accorder une nouvelle permission `a un utilisateur) et REVOKE (qui permet de supprimer une permission que poss´edait un utilisateur). Une vue constitue donc un moyen efficace pour accorder un acc`es `a l’ensemble des objets contenus dans la vue. A noter que ces objets sont parfois virtuels dans la mesure o`u une vue SQL n’est pas mat´erialis´ee.

SQL/3 [31], qui correspond `a la derni`ere ´evolution de la norme SQL, propose d’´etendre le mod`ele V-BAC en combinant les concepts de vue et de rˆole pour structurer les objets et les sujets. On peut ainsi d´efinir le mod`ele VR-BAC.

Le concept de vue ne se limite pas au mod`ele relationnel. On pourrait aussi l’utiliser dans un syst`eme d’exploitation. Actuellement, la plupart des syst`emes d’exploitation ne proposent que le concept de r´epertoire pour structurer l’expression de la politique d’autorisation. En utilisant le concept de vue, on pourrait par exemple d´efinir une vue contenant l’ensemble des objets ayant pour suffixe .doc et appartenant au r´epertoire /pierre/projet1 et utiliser cette vue dans l’expression de la politique d’autorisation du syst`eme d’exploitation. Dans ce cas, une syntaxe reposant sur XPath pourrait ˆetre propos´ee pour exprimer la politique d’autorisation. C’est d´ej`a l’approche utilis´ee pour sp´ecifier une politique d’autorisation pour documents XML (voir par exemple [7, 23]).

2.5 Mod` ele T-MAC

Dans les applications r´ecentes, il est souvent n´ecessaire de consid´erer plusieurs organisations simul- tan´ement. Par exemple, dans les applications de services web, un utilisateur d’une certaine organi- sation peut souhaiter acc´eder aux donn´ees appartenant `a une autre organisation. Une organisation est une entit´e structur´ee. Par exemple, un hˆopital correspond `a une organisation qui se d´ecompose en plusieurs sous-organisations : les diff´erents d´epartements de l’hˆopital, les diff´erents services de ces d´epartements, etc. Chaque organisation g`ere en g´en´eral sa propre politique d’autorisation.

Certaines organisations peuvent ´egalement ˆetre cr´e´ees dynamiquement en fonction des activit´es que doit prendre en charge l’hˆopital. Par exemple, une ´equipe de soin peut ˆetre cr´e´ee pour pren- dre en charge un patient particulier. Cette organisation pourra ensuite ˆetre dissoute une fois les activit´es r´ealis´ees.

Remarquons que les autorisations d’un sujet d´ependent non seulement du rˆole du sujet mais

´egalement de l’organisation dans laquelle ce sujet exerce son rˆole. Ce probl`eme a ´et´e identifi´e dans le mod`ele T-MAC.

Le mod`ele T-MAC (Team Based Access Control, voir [37]) introduit la notion d’´equipe. Dans T-MAC, des autorisations sont associ´ees aux rˆoles ainsi qu’aux ´equipes. Les autorisations que poss`ede un sujet r´esultent de la combinaison des autorisations associ´ees aux rˆoles exerc´es par le sujet et des autorisations associ´ees `a l’´equipe `a laquelle est affect´e le sujet. Plusieurs combinaisons (par exemple, l’union des autorisations) sont envisag´ees.

En fait, le mod`ele T-MAC est incorrect car il introduit deux relations binaires : rˆole-autorisation et ´equipe-autorisation. Si l’on introduit la notion d’´equipe, il est en fait n´ecessaire de consid´erer une relation ternaire ´equipe-rˆole-autorisation pour sp´ecifier que les autorisations d´ependent non seulement du rˆole mais aussi de l’´equipe dans laquelle est exerc´ee ce rˆole. A l’aide d’une telle relation ternaire, on pourra ainsi facilement sp´ecifier que les autorisations du rˆole m´edecin change suivant qu’il s’agit d’un m´edecin dans une ´equipe de garde ou d’un m´edecin dans une ´equipe d’urgence.

Cette imperfection du mod`ele T-MAC a ´et´e corrig´ee dans le mod`ele Or-BAC, que nous allons pr´esent´e maintenant.

2.6 Mod` ele Or-BAC

Le mod`ele Or-BAC (Organization Based Access Control, voir [29]) reprend les concepts de rˆole, d’activit´e, de vue et d’organisation introduites respectivement dans les mod`eles R-BAC, T-BAC, V-BAC et T-MAC. Dans Or-BAC, l’expression d’une politique d’autorisation est centr´ee sur le

(6)

concept d’organisation (contrairement `a R-BAC o`u la politique d’autorisation est centr´ee sur le concept de rˆole).

Les concepts de rˆoles, de vues et d’activit´es sont des concepts organisationnels. Chaque organisa- tion d´efinit ainsi les rˆoles, les activit´es et les vues dont elle souhaite r´eglementer l’acc`es en appli- quant une politique d’autorisation. Le mod`ele Or-BAC introduit donc trois relations relevant-role, relevant-activity et relevant-view pour sp´ecifier respectivement les rˆoles, les activit´es et les vues g´er´es par l’organisation.

Ensuite, chaque organisation sp´ecifie les affectations des sujets aux rˆoles en utilisant la relation ternaireempower. On peut remarquer que cette mod´elisation permet, par exemple, de consid´erer qu’un mˆeme sujet est affect´e `a des rˆoles diff´erents suivant l’organisation consid´er´ee. De fa¸con similaire, deux autres relations ternaires consideret use permettent de respectivement sp´ecifier, pour chaque organisation, les relations entre action et activit´e d’une part, et entre objet et vue d’autre part.

Le mod`ele Or-BAC offre ´egalement la possibilit´e de sp´ecifier desrole-definition,view-definitionet activity-definition. Une role-definition est une condition logique qui, si elle est satisfaite, permet de conclure qu’un sujet se trouve automatiquement affect´e au rˆole correspondant `a la role-definition.

De fa¸con similaire, une view-definition et une activity-definition correspondent `a des conditions logiques pour g´erer respectivement les vues et les activit´es.

Une politique d’autorisation s’exprime en sp´ecifiant, pour chaque organisation consid´er´ee, les ac- tivit´es que les rˆoles ont la permission de r´ealiser sur les vues. La politique d’autorisation s’exprime donc de fa¸con compl`etement ind´ependante des ensembles de sujets, actions et objets g´er´es par le SI. On parle ainsi de politique d’autorisationorganisationnelle.

Le mod`ele propose une r`egle de passage pour d´eriver automatiquement, d’une politique d’autorisation organisationnelle, les permissions concr`etes s’appliquant aux sujets, actions et objets. Cette r`egle sp´ecifie que, dans une organisation donn´ee, si un sujet est affect´e `a un certain rˆole, un objet est utilis´e dans une certaine vue, une action implante une certaine activit´e et si la politique d’autorisation de cette organisation sp´ecifie que ce rˆole a la permission de r´ealiser cette activit´e sur cette vue, alors on peut d´eriver que ce sujet a la permission de r´ealiser cette action sur cet objet.

Dans Or-BAC, on peut ´egalement d´efinir des hi´erarchies de rˆoles (comme dans R-BAC), mais aussi d’activit´es, de vues et d’organisations. Chacune de ces hi´erarchies est associ´ee `a un m´ecanisme d’h´eritage des permissions (voir [16] pour plus de d´etail). La d´efinition de ces hi´erarchies permet une expression plus modulaire de la politique d’autorisation organisationnelle.

2.7 Mod` eles d’autorisations dynamiques et contextuelles

Dans la pratique, de nombreuses autorisations ne sont pas statiques mais d´ependent de conditions qui, si elles sont satisfaites, permettent d’activer dynamiquement les autorisations. Dans ce cas, on parle souvent d’autorisations contextuelles.

Ainsi, les autorisations peuvent d´ependre de contextes temporels (par exemple permission pen- dant les heures de travail), contextes g´eographiques (par exemple, permission `a l’int´erieur de l’enceinte s´ecuris´ee de l’entreprise), de contextes provisionnels (permission si d’autres actions ont au pr´ealablement ´et´e r´ealis´ees comme dans le cas d’un workflow). D’autres types de contextes peuvent ˆetre ´egalement ˆetre d´efinis (voir [20] pour une proposition de taxonomie).

Pour repr´esenter ces autorisations contextuelles, plusieurs mod`eles de contrˆole d’acc`es `a base de r`egles ont ´et´e propos´es (mod`eles de type Rule-BAC, voir [27, 8]). Dans ces mod`eles, une politique d’autorisation correspond `a un enesemble de r`egles de la forme condition permission qui sp´ecifient qu’une permission peut ˆetre d´eriv´ee lorsqu’une certaine condition est satisfaite.

Les mod`eles de type Rule-BAC repose sur la logique du premier ordre qui est, dans le cas g´en´eral, ind´ecidable. Face `a ce probl`eme, la plupart de ces mod`eles propose d’utiliser Datalog pour avoir une proc´edure de d´ecision en temps polynomial `a condition que les r`egles respectent certaines restrictions syntaxiques (voir [38] pour plus de d´etail).

Compar´es aux mod`eles pr´esent´es dans les sections pr´ec´edentes, les mod`eles Rule-BAC pr´esentent une expressivit´e plus grande, utile pour sp´ecifier des autorisations contextuelles. En contrepar-

(7)

Permission

Consider Activity

Role

Empower Organization

View

Use Abstract level

Object Subject

Action

Is_permitted Concrete level

Context

Figure 1: Structure du mod`ele Or-BAC

tie, on perd malheureusement la structuration de la politique d’autorisation que permettaient l’introduction des concepts de rˆole, d’activit´e, de vue et d’organisation.

Le mod`ele Or-BAC offre ´egalement la possibilit´e d’exprimer des autorisations contextuelles. Pour cela, le concept decontexteest explicitement introduit dans le mod`ele. La d´efinition d’un contexte correspond `a une condition logique qui permet de conclure que l’on se trouve dans le contexte lorsque cette condition est satisfaite. Remarquons que chaque organisation d´efinit ses contextes ce qui permet de mod´eliser que la d´efinition d’un contexte tel queheure de travail peut varier d’une organisation `a une autre.

En fait, dans la section 2.6, nous avons volontairement simplifi´e l’expression d’une politique d’autorisation organisationnelle en Or-BAC. Dans le cas g´en´eral, une autorisation sp´ecifie qu’un rˆole a la permission de r´ealiser une activit´e sur une vue dans uncontexteparticulier. La r`egle de passage pour d´eriver les permissions concr`etes s’appliquant aux sujets, actions et objets est aussi l´eg`erement plus coomplexe que celle pr´esent´ee dans la section 2.6 puisqu’une permission ne doit ˆetre activ´ee que lorsque la condition contextuelle correspondante est satisfaite (voir [20]).

Pour conclure cette section, remarquons qu’Or-BAC impose les mˆemes contraintes syntaxiques que celle impos´ee par Datalog de mani`ere `a conserver une proc´edure de d´ecision calculable en temps polynomial mˆeme lorsque l’on consid`ere des autorisations contextuelles. Le mod`ele Or-BAC offre donc une expressivit´e comparable `a celle des autres mod`eles de type Rule-BAC tout en proposant une expression tr`es structur´ee de la politique d’autorisation.

2.8 Mod` eles d’autorisations positives et n´ egatives

Initialement, les mod`eles de contrˆole d’acc`es ne permettaient que d’exprimer des autorisations positives (permissions). R´ecemment, des mod`eles offrant ´egalement la possibilit´e d’exprimer des autorisations n´egatives (interdictions) ont ´et´e propos´es [6, 27, 9].

Combiner des autorisations positives et n´egatives dans une politique d’autorisation est int´eressant pour plusieurs raisons :

Certaines politiques d’autorisation sont plus faciles `a d´ecrire en terme d’interdictions que de permissions. Par exemple, consid´erer une r`egle sp´ecifiant que l’acc`es `a une certaine vid´eo est interdite aux personnes de moins de 12 ans.

(8)

Lorsque la politique d’autorisation doit ˆetre mise `a jour, il est parfois plus simple d’ins´erer une interdiction que de supprimer une permission existante.

La combinaison des permissions et interdictions constitue un moyen simple pour exprimer des r`egles pr´esentant des exceptions. Par exemple, on peut consid´erer les r`egles suivantes : (1) Les infirmiers ont l’interdiction d’acc´eder au dossier m´edical des patients, mais (2) En situation d’urgence, les infirmiers ont la permission d’acc´eder au dossier m´edical du patient concern´e par l’urgence. Dans ce cas, la r`egle (2) doit ˆetre interpr´et´ee comme une exception de la r`egle (1).

Dans la suite, on dira que la politique d’autorisation estmixtelorsqu’elle inclut des autorisations positives et n´egatives. Remarquons que dans une politique d’autorisation mixte, on peut faire l’hypoth`ese que la politique est ouverteou ferm´ee. Une politique ouverte consid`ere qu’un acc`es est accept´e si la politique d’autorisation ne permet pas de d´eriver que l’acc`es est explicitement interdit. Il s’agit donc de l’hypoth`ese inverse de la politique ferm´ee d´ej`a introduite dans la section 2.1.

Un nouveau probl`eme apparait lorsque l’on consid`ere des politiques d’autorisation mixtes : celui de la gestion des conflits entre les autorisations positives et n´egatives. En effet, pour un sujet, une action et un objet donn´es, il est possible que la politique d’autorisation permette de d´eriver que l’acc`es est `a la fois permis et interdit.

Pour r´esoudre ces situations de conflits, plusieurs strat´egies ont ´et´e propos´ees dans la litt´erature.

Certaines approches (voir par exemple [27]) ne consid`erent que des strat´egies simples, telles que les interdictions l’emportent toujours sur les permissions, ou les permissions l’emportent toujours sur les interdictions. Ces strat´egies ne conviennent pas pour traiter le probl`eme des exceptions.

En effet, si une interdiction agit comme exception `a une permission, alors cette interdiction doit l’emporter sur cette permission. Mais, dans le cas contraire, c’est-`a-dire si une permission agit comme exception `a une interdiction, alors c’est la permission qui doit l’emporter sur l’interdiction.

Pour rendre compte de strat´egies plus ´elabor´ees permettant de g´erer les exceptions, plusieurs mod`eles [6, 19] ont propos´e d’introduire des priorit´es entre les r`egles de la politique d’autorisation.

La plupart des pare-feux donnent des exemples repr´esentifs de mise en œuvre de ce type de strat´egies. En effet, on peut interpr´eter les r`egles de filtrage d’un pare-feu comme un ensemble d’autorisations positives (dans le cas o`u la d´ecision de la r`egle de filtrage est d’accepter le paquet) ou n´egatives (dans le cas o`u la d´ecision est de rejeter le paquet). La priorit´e entre r`egles de fil- trage correspond en g´en´eral `a l’ordre dans lequel les r`egles ont ´et´e ´ecrites. Ainsi, lorsque plusieurs r`egles s’appliquent sur un mˆeme paquet, la d´ecision finale correspond `a celle de la premi`ere r`egle applicable (strat´egie dite du “first matching”).

L’ordonnancement des r`egles constitue donc un moyen simple, mais efficace pour r´esoudre les con- flits dans une politique d’autorisation mixte. Cependant, cette ordonnancement rend la politique d’autorisation plus complexe `a exprimer et `a mettre `a jour. En effet, d’autres probl`emes peu- vent apparaˆıtre : le masquage (shadowing) et la redondance. L’anomalie de masquage apparaˆıt lorsqu’une r`egle devient inapplicable car des r`egles plus prioritaires seront syst´ematiquement ap- pliqu´ees avant elle. L’anomalie de redondance existe lorsqu’une r`egle peut ˆetre supprim´e sans que cela change la politique d’autorisation. Par exemple, si l’on consid`ere les deux r`egles suivantes : (1) L’acc`es `a la vid´eoV est interdite aux personnes de moins de 12 ans, (1) L’acc`es `a la vid´eo V est interdite aux personnes de moins de 16 ans. Alors la r`egle (1) est redondante.

D´etecter ces anomalies dans une politique d’autorisation est important car (1) elles sont souvent r´ev´elatrices d’erreur dans l’expression de la politique d’autorisation, (2) mˆeme si elles ne corre- spondent pas `a des erreurs, l’´elimination de ces anomalies permet de r´eduire le nombre de r`egles de la politique d’autorisation.

Dans le cas des pare-feux, [2] propose un algorithme pour d´etecter certaines anomalies dans un ensemble de r`egles de filtrage. Cet algorithme n’´etant malheureusement pas complet, un autre algorithme permettant de d´etecter et ´eliminer toutes les anomalies a ensuite ´et´e propos´e dans [15].

(9)

3 Contrˆ ole de flux

Pour bien comprendre l’int´erˆet des mod`eles de contrˆole de flux, il faut d’abord revenir sur le concept de sujet introduit dans la section 2.1. Nous avons indiqu´e qu’un sujet correspondait `a un utilisateur ou une application s’ex´ecutant pour le compte d’un utilisateur.

Dans le cas d’un utilisateur, on suppose que celui-ci peut essayer de violer la politique d’autorisation en acc`edant ill´egalement `a des objets. Mais s’il obtient l´egalement une information, on suppose

´egalement qu’il ne va pas volontairement transmettre cette information `a un autre utilisateur qui n’aurait pas le droit de connaˆıtre cette information. Par exemple, on suppose qu’un m´edecin ne va pas volontairement transmettre le contenu du dossier m´edical d’un de ses patients `a une personne non autoris´ee. Il faut naturellement que l’organisation mette en place des proc´edures pour que cette hypoth`ese soit justifi´ee (par exemple habilitation, serment d’Hippocrate mais aussi sensibilisation des utilisateurs aux risques informatiques).

En revanche, on ne peut pas toujours faire les mˆemes hypoth`eses si le sujet est une application s’ex´ecutant pour le compte d’un utilisateur. En effet, certaines applications peuvent ˆetre pi´eg´ees.

On parle alors de Cheval de Troie. Un Cheval de Troie peut avoir divers objectifs malveillants visant `a porter atteinte `a la confidentialit´e, l’int´egrit´e ou bien la disponibilit´e des informations du SI. Dans le cas de la confidentialit´e, l’objectif de l’application est d’acc´eder `a des informations et de volontairement transmettre ces informations vers un utilisateur qui n’a pas la permission d’y acc´eder. Cet utilisateur est le b´en´eficiaire du pi`ege ; il peut s’agir par exemple du concepteur de l’application, d’un agent charg´e de sa maintenance ou d’un utilisateur qui a r´eussi `a remplacer l’application l´egitime par une application pi`eg´ee.

Pour illustrer ce probl`eme, consid´erons un m´edecin qui utilise son SI pour consulter les dossiers m´edicaux de ses patients. Supposons ´egalement que ce m´edecin puisse utiliser son SI pour consulter un dictionnaire m´edical via Internet et que ce m´edecin utilise une seule application pour `a la fois consulter les dossiers m´edicaux et acc´eder au dictionnaire m´edical. Si cette application est pi´eg´ee, alors il est possible que cette application utilise la connexion Internet pour transmettre, `a l’insu du m´edecin, des informations contenues dans les dossiers m´edicaux.

Les mod`eles de contrˆole d’acc`es pr´esent´es dans la section 2 ne permettent pas d’empˆecher les actions malveillantes d’une telle application pi´eg´ee. En effet, cette derni`ere peut r´ealiser son attaque sans violer la politique d’autorisation : elle consulte l´egitimement les dossiers m´edicaux et ensuite utilise l’acc`es Internet qui permet d’acc´eder au dictionnaire m´edical pour transmettre les dossiers m´edicaux vers le b´en´eficiaire du pi`ege. Cela ne veut pas dire que ces mod`eles de contrˆole d’acc`es sont inutiles. Mais, si l’on veut empˆecher les attaques par Chevaux de Troie, il faut seulement utiliser ces mod`eles pour d´efinir la politique d’autorisation des utilisateurs et des applications de confiance, c’est-`a-dire des applications que l’on peut garantir sans pi`ege.

Pour contrˆoler l’ex´ecution des applications qui ne sont pas de confiance, d’autres mod`eles, appel´es mod`eles de contrˆole de flux (ou MAC, Mandatory Access Control), ont ´et´e d´efinis. L’objectif de ces mod`eles est pr´ecis´ement d’assurer le confinement des applications pour empˆecher les attaques par Chevaux de Troie. Comme plusieurs mod`eles de type MAC pour la confidentialit´e ont ´et´e d´efinis, nous pr´esentons ici les principaux : mod`ele de Bell et LaPadula, Non Interf´erence, Bell et LaPadula ´etendu et Causalit´e. Nous pr´esentons ensuite les mod`eles de type MAC pour l’int´egrit´e.

Les mod`eles de contrˆole de flux pour la confidentialit´e et l’int´egrit´e sont compl´ementaires : ils doivent ˆetre combin´es pour garantir ces deux propri´et´es de s´ecurit´e dans le SI.

3.1 Mod` ele de Bell et LaPadula

Le mod`ele de Bell et LaPadula [5] fut le premier mod`ele de type MAC propos´e. L’objectif de ce mod`ele est de d´efinir des contraintes pour contrˆoler l’ex´ecution des applications de mani`ere `a empˆecher les attaques par Chevaux de Troie contre la confidentialit´e.

Le mod`ele de Bell et LaPadula consid`ere des politiques de s´ecurit´e de type MAC particuli`ere, dite politique de s´ecurit´emulti-niveaux. Dans ce type de politique d’autorisation, on introduit un en- semble partiellement ordonn´e de niveaux de s´ecurit´e, par exemple Non-classifi´e (NC), Confidentiel

(10)

Z3 Z2 Z1

L4 L3

L1 L2

Figure 2: Passage d’une politique de type I-BAC vers une politique de type MAC

(C) et Secret (S). Tous les utilisateurs doivent avoir re¸cu un tel niveau de s´ecurit´e pour pouvoir acc´eder au SI ; il s’agit du niveau d’habilitation de l’utilisateur. On affecte ´egalement un niveau de s´ecurit´e `a tous les objets g´er´es par le SI ; il s’agit du niveau de classificationde l’utilisateur.

La politique d’autorisation associ´ee aux utilisateurs est simple : un utilisateur n’a la permission de lire un objet que si son niveau d’habilitation est sup´erieur ou ´egal au niveau de classification de l’objet lu. Sinon, l’utilisateur a l’interdiction de lire cet objet. On appelle habituellement cette condition “No Read Up”.

En revanche, on suppose que les applications peuvent ˆetre pi´eg´ees. Une application travaille pour le compte d’un utilisateur. Le niveau d’ex´ecution, encore appel´e niveaucourant, d’une application est choisi par l’utilisateur mais doit ˆetre inf´erieur ou ´egal au niveau d’habilitation de cet utilisateur.

Pour empˆecher une application de lire des objets interdits, on impose qu’une application ne peut lire un objet que si son niveau courant est sup´erieur au niveau de classification de l’objet. On appelle ´egalement cette condition “No Read Up”. Comme le niveau courant d’une application est toujours inf´erieur ou ´egal au niveau d’habilitation de l’utilisateur ex´ecutant l’application, la condition de “No Read Up” sur les applications implique la condition de “No Read Up” sur les utilisateurs.

Mais, dans le mod`ele de Bell et LaPadula, on souhaite ´egalement empˆecher qu’un Cheval de Troie puisse transmettre le contenu d’un objet lu vers un utilisateur uqui aurait l’interdiction de lire cet objet. Dans ce mod`ele, on suppose que le Cheval de Troie effectuera cette transmission ill´egale en recopiant le contenu de l’objet lu dans un autre objet que u pourra lire. Pour ˆınterdire ce flux ill´egal, on impose qu’une application ne peut ´ecrire dans un objet que si le niveau courant de l’application estinf´erieurou ´egal au niveau de classification de l’objet. On appelle cette condition

“No Write Down” ou propri´et´e “´etoile”.

Le but unique de la condition de “No Write Down” est d’empˆecher un Cheval de Troie de r´ealiser une attaque contre la confidentialit´e. Elle n’empˆeche pas une attaque contre l’int´egrit´e au cours de laquelle une application tenterait de modifier ill´egalement des objets. Ce n’est pas l’objectif du mod`ele de Bell et LaPadula d’empˆecher ce type d’attaque. Des mod`eles ont ´et´e d´efinis pour cela (voir section ??).

Le passage d’une politique d’autorisation de type I-BAC vers une politique multi-niveaux de type MAC est toujours possible. A titre d’exemple, consid´erons le sch´ema de la figure 2. Z1, Z2 et Z3 sont trois ensembles d’objets et l’on suppose queZ1∩Z26=∅, Z1∩Z3 =∅et Z3⊂Z2. On suppose que le syst`eme est utilis´e par quatre utilisateurs s1,s2,s3 ets4. Supposons par exemple, que dans une politique d’autorisation de type I-BAC, Z1 est l’ensemble des objets accessibles en lecture par s1, Z2 est celui accessible en lecture par s2 et Z3 celui accessible par s3 et s4 (on suppose ques3 ets4 ont les mˆemes droits d’acc`es en lecture).

Dans ce cas, on introduit quatre niveaux de s´ecurit´e L1,L2,L3 etL4, avecL3 < L2, L4 < L1 et L4 < L2. s1 est habilit´e au niveauL1,s2 au niveau L2 et, s3 ets4 au niveauL3. Les objets re¸coivent les classifications suivantes :

Objets deZ1−Z2 class´esL1

(11)

Objets deZ2−(Z1∪Z3) class´esL2

Objets deZ3 class´esL3

Objets deZ1∩Z2 class´esL4

Soit par exemple une application ex´ecut´ee par s1 au niveau L1. Ce programme pourra lire l’ensemble des objets de Z1. En revanche, il ne pourra pas ´ecrire dans Z1 ∩Z2 pour ´eviter un ´eventuel flux verss2 (dans l’hypoth`ese o`u le programme serait pi´eg´e).

On peut remarquer que le passage I-BAC `a MAC est faisable mais peut g´en´erer dans la pratique un grand nombre de niveaux.

3.2 Mod` ele de Non Interf´ erence

D`es la d´efinition de leur mod`ele, Bell et LaPadula avaient observ´e que celui-ci ne permettait de contrˆoler que les Chevaux de Troie qui essayent de transmettre ill´egalement des informations par recopie dans un fichier. D’autres moyens de transmettre ill´egalement des informations existent que peut exploiter un Cheval de Troie. Ces moyens sont connus sous le nom decanaux cach´es.

La principe g´en´eral d’un canal cach´e consiste `a transmettre des informations de fa¸con cod´ee sous forme de 0 et de 1 en “frappant aux murs”.

Traditionnellement, on distingue deux types de canaux cach´es : canaux cach´es de stockage et canaux temporels. Un canal de stockage utilise une ressource non prot´eg´ee du syst`eme (par exem- ple, en bloquant/d´ebloquant l’acc`es `a un registre) pour transmettre des informations. Un canal temporel exploite une ressource temporelle (par exemple, en faisant varier l’ex´ecution d’une appli- cation).

Plusieurs mod`eles de contrˆole de flux ont ´et´e propos´es pour prendre en compte les canaux cach´es [32, 35, 28]. Le plus connu est le mod`ele de non interf´erence [24, 25, 22]. Ce mod`ele permet de renforcer le mod`ele de Bell et LaPadula en empˆechant les attaques des Chevaux de Troie contre la confidentialit´e, mˆeme via des canaux cach´es de stockage. En revanche, le mod`ele de non-interf´erence ne contrˆole pas les canaux cach´es temporels.

Le principe du mod`ele est le suivant. SoientA1etA2deux applications s’ex´ecutant respectivement aux niveauxL1etL2. SiL1=L2, alorsA1etA2peuvent s’´echanger des informations. SiL1> L2, alors le flux d’informations deA2 vers A1 est autoris´e. En revanche, tout flux de A1 versA2 est interdit. Enfin siL1 etL2ne sont pas comparables, aucun flux entreA1 etA2 n’est autoris´e.

Plusieurs formalisations du principe de non interf´erence ont ´et´e propos´ees. On pr´esente ici celle de Goguen et Meseguer [24]. SoitSI un syst`eme d’information. Ce SI permet aux utilisateurs d’ex´ecuter des applications. SoitSeq(SI) l’ex´ecution d’une certaine s´equence d’applications dans SI. Chaque application est ex´ecut´ee avec un certain niveau de s´ecurit´e. SiLest un certain niveau de s´ecurit´e, on d´efinitP urge(Seq(SI), L), l’ex´ecution obtenue en supprimant de Seq(SI) toutes les applications qui n’ont pas ´et´e ex´ecut´ees avec un niveau inf´erieur ou ´egal `aL.

Enfin, au cours de l’ex´ecution d’une s´equence d’applications, un utilisateur s obtient certains r´esultats (outputs) fournis par le SI. Les r´esultats obtenus par s au cours de l’ex´ecution d’une s´equenceSeq(SI) est not´eeOutput(s, Seq(SI)).

On dit alors que le syst`eme satisfait la propri´et´e de non interf´erence si pour toute s´equenceSeqet pour tout utilisateurs, on a :

Output(s, Seq(SI)) =Output(s, P urge(Seq(SI), L))

o`u L repr´esente le niveau d’habilitation du sujet s. Intuitivement, cette condition exprime que, pour un utilisateur ayant un niveau d’habilitationL, tout se passe comme si seules des applications de niveau inf´erieur `aLavaient ´et´e ex´ecut´ees dans le syst`eme.

La propri´et´e de non-interf´erence est difficile `a v´erifier dans la pratique car elle concerne l’ex´ecution d’une s´equence d’applications. Des conditions suffisantes, dite de “unwinding” plus simples ont

´et´e propos´ees [24, 25] pour v´erifier qu’une application particuli`ere v´erifie la condition de non- interf´erence. Plus r´ecemment, les travaux de Smith et Volpano [40] bas´es sur la th´eorie des types

(12)

permettent de v´erifier que le code source d’un programme est non interf´erent. Ces travaux peu- vent ˆetre appliqu´es `a l’analyse statique de codes mais les conditions `a v´erifier sont pessimistes : l’ex´ecution de certains programmes peut ne pas ˆetre interf´erente alors que ces programmes seront rejet´es par l’analyse statique.

3.3 Mod` ele de Bell et LaPadula ´ etendu

La principale limite de la non-interf´erence est que cette condition est tr`es restrictive `a mettre en œuvre1. Dans la pratique, elle a ´et´e uniquement appliqu´ee avec succ`es sur de petits syst`emes, par exemple des logiciels embarqu´es `a bord de carte `a puce. Toutes les autres tentatives d’appliquer la non interf´erence `a des syst`emes plus importants tels que des syst`emes d’exploitation ou des syst`emes de gestion de bases de donn´ees n’ont pas abouti `a des solutions commercialisables car les solutions d´evelopp´ees se sont av´er´ees trop contraignantes `a utiliser.

Pour de tels syst`emes, le besoin de mod`eles de s´ecurit´e plus flexibles est ´evident. Pourquoi ? Parce que la non-interf´erence adopte le point de vue extrˆeme que tous les programmes sont potentielle- ment malveillants et peuvent contenir un Cheval de Troie cherchant `a transmettre ill´egalement des informations. Une telle hyptoh`ese n’est pas r´ealiste dans la pratique. Plus pr´ecis´ement, elle rend impossible la sp´ecification de certaines fonctionnalit´es n´ecessaires dans la plupart des syst`emes, par exemple des fonctions de chiffrement ou de d´eclassification. En effet, ces fonctions ont pour objectif de produire en sortie des r´esultats qui auront un niveau de classification strictement inf´erieur au niveau de classification des donn´ees fournies en entr´ees de ces fonctions.

Un mod`ele plus r´ealiste est le mod`ele de Bell et LaPadula ´etendu propos´e dans [4]. Au lieu d’associer un niveau courant `a chaque application, ce mod`ele associe un intervalle de niveaux [L1, L2] avecL1≤L2. Une application peut ainsi lire tout objet dont la classification est inf´erieure

`aL2 et ´ecrire dans tout objet de classification sup´erieure `aL1. Ceci permet la d´eclassification.

Si l’on soup¸conne une application de pouvoir contenir un Cheval de Troie, alors il faut imposer queL1=L2. L’ex´ecution de l’application est alors contrˆol´ee par les mˆemes conditions de s´ecurit´e que le mod`ele de Bell et LaPadula strict.

En revanche, siL16=L2, alors l’application ne doit pas contenir de Cheval de Troie. On dit alors que l’application est de “confiance”. Une fonction de d´eclassification peut ainsi ˆetre implant´ee par une application de confiance.

Il faut empˆecher qu’une application qui contient un Cheval de Troie puisse appeler une applica- tion de confiance, par exemple une fonction de d´eclassification, pour transmettre ill´egalement des informations interdites. Pour cela, il faut imposer une condition pour contrˆoler l’invocation d’une application par une autre application : siA etA0 sont deux application associ´ees respectivement aux intervalles [L1, L2] et [L01, L02], alorsApeut invoquerA0 si et seulement siL1≤L01etL02≤L2. Ainsi, une application qui n’est pas de confiance (c’est-`a-dire telle queL1 =L2) ne peut jamais invoquer un application de confiance (c’est-`a-dire telle queL016=L02).

Le mod`ele de Bell et LaPadula ´etendu est proche du mod`ele actuellement mis en œuvre dans OLS (Oracle Label Security) ??, le module implantant une politique de s´ecurit´e multi-niveaux sous Oracle `a partir de la version 8i. Ce mod`ele est beaucoup plus flexible `a mettre en œuvre que les mod`eles de Bell et LaPadula strict et de Non Interf´erence.

On peut cependant remarquer que le mod`ele de Bell et LaPadula ´etendu pr´esente la limite suivante : il est impossible de mod´eliser une application r´ealisant certains transferts d’informations entre deux niveauxL1 etL2qui ne sont pas comparables. En effet, on ne peut pas consid´erer une application Atravaillant sur [L1, L2] car [L1, L2] n’est pas un intervalle siL1 etL2 ne sont pas comparables.

3.4 Mod` ele de Causalit´ e

L’int´erˆet du mod`ele de Bell et LaPadula ´etendu est qu’il est plus souple que Non Interf´erence. Mais il pr´esente aussi un inconv´enient car, comme le mod`ele de Bell et LaPadula strict, il ne permet pas

1La mˆeme remarque est valable pour le mod`ele de Bell et LaPadula.

(13)

de contrˆoler les canaux cach´es.

Le mod`ele de causalit´e [10, 11] est un mod`ele de contrˆole de flux bas´e sur l’analyse des d´ependances causales qui contrˆole les canaux cach´es (y compris temporels) et qui est plus souple `a mettre en œuvre que Non Interf´erence. A chaque sujets, on associe un ensemble d’objets que s a le droit d’observer not´eDroit(s). On associe ´egalement `asun ensembleObs(s) qui repr´esente l’ensemble des observations ques`a r´ealiser sur le syst`eme.

La propri´et´e de causalit´e est satisfaite siObs(s) d´epend causalement deDroit(s) (voir [10] pour plus de d´etails). En fonction des objets qui sont inclus dans l’ensembleDroit(s), il est possible de d´efinir plusieurs politiques de contrˆole de flux diff´erentes :

1. Causalit´e sur les inputs [10]. Dans ce cas, on suppose que seules les donn´ees introduites par les utilisateurs sont de confiance. Toutes les donn´ees produites en ex´ecutant des applica- tions dans le syst`eme ne sont pas de confiance car elles peuvent avoir ´et´e calcul´ees par un programme contenant un Cheval de Troie.

On suppose donc queDroit(s) ={In(s0)|niv(s0)≤niv(s)}

c’est-`a-diresa le droit d’observer toutes les donn´ees introduites par les autres sujetss0ayant un niveau d’habilitation inf´erieur ou ´egal `as.

Causalit´e sur les inputs est une propri´et´e que l’on peut comparer `a Non Interf´erence. Causalit´e sur les inputs pr´esente plusieurs avantages (voir [11]). En particulier, le mod`ele permet de consid´erer qu’une mˆeme donn´ee est introduite par un sujet `a plusieurs niveaux de s´ecurit´e diff´erents. Cette possibilit´e permet de prendre en compte une op´eration de d´eclassification g´er´ee `a l’ext´erieure du SI, chose impossible avec Non Interf´erence.

2. Causalit´e ´etendue. Il est possible d’ajouter `aDroit(s) des donn´ees produites par une appli- cation de confiance (par exemple, le r´esultat d’une op´eration de d´eclassification).

3. Possibilit´e d’exprimer des politiques d’autorisation de type Muraille de Chine [14]. Dans ce type de politique d’autorisation [13], il est possible d’acc´eder s´epar´ement `a certaines donn´ees mais ces donn´ees ne peuvent pas ˆetre agr´eg´ees `a cause de conflits d’int´erˆet entre les sources ayant ´emis ces donn´ees. Pour mod´eliser ce type de politique d’autorisation avec Causalit´e, il faut consid´erer que l’ensemble des droits d’un sujet ´evolue au cours du temps.

4. Possibilit´e de contrˆoler l’´evolution dynamique des niveaux de classification d’un objet ou le niveau courant associ´e `a une application [12].

3.5 Mod` ele de Biba

La d´efinition usuelle du contrˆole d’acc`es obligatoire sp´ecifie que les restrictions sur le flux des informations se font ind´ependamment des actions de l’utilisateur. Bien que cette d´efinition fait souvent r´ef´erence au mod`ele de Bell et LaPadula, plusieurs syst`emes mettent en place ce type de contrˆole pour garantir des propri´et´es d’int´egrit´e (banques, hopitaux, etc.).

Le premier mod`ele traitant de la protection de l’int´egrit´e est celui de Biba ?? appel´e ´egalement Bell et LaPadula `a l’envers (Bell and LaPadula upside down). En effet, Biba a constat´e que la confidentialit´e et l’int´egrit´e sont des concepts duals. La confidentialit´e est une contrainte sur qui est permis de lire la donn´ee alors que l’int´egrit´e est une contrainte sur qui a le droit de l’´ecrire ou de la modifier. Ainsi, dans le mod`ele de Bell et LaPadula, l’information ne peut pas circuler vers les niveaux inf´erieur pour ´eviter la fuite de donn´ees sensibles. Inversement, dans le mod`ele de Biba, les informations ne peuvent migrer vers des hauts niveaux d’int´egrite sinon les donn´eespi´eg´ees(virus, cheval de troie, etc.) en provenance de niveaux d’int´egrit´e faibles contamineraient les donn´ees sainesde niveaux d’int´egrit´e sup´erieures. Formul´ees autrement, ces contraintes correspondraient `a des propri´et´es duales `a celles de Bell et LaPadula, ”No Write Up” et ”No Read Down”. Cependant, le mod`ele de Biba n’empˆeche pas l’action d’un Cheval de Troie mais permet de confiner son effet

`a certains niveaux d’int´egrit´e. C’est une cons´equence du No Write Up : le Cheval de Troie ne

(14)

pourra pas attaquer les donn´ees ayant un niveau d’int´egrit´e sup´erieur au niveau o`u le Cheval de Troie a ´et´e install´e. En ce sens, mod`ele proche de la Sand Box de Java. De plus, pas de possibilit´e pour l’attaquant de piloter le Cheval de Troie `a distance grˆace auNo Read Down.

Bien entendu, La dualit´e avec le mod`ele de Bell et LaPadula fait que le mod`ele de Biba souffre

´egalement du probl`eme soulev´e par Maclean [?] et discut´e dans la section BLPE concernant le principe de tranquilit´e. Pour ´eviter ce probl`eme de statisme des labels, une solution adopt´ee dans les syst`emes assurant des propri´et´es d’int´egrit´e sur la base du mod`ele de Biba est l’utilisation d’une politique de type Low Water Mark dans laquelle le label d’int´egrit´e d’un objet est affect´e au niveau le plus bas en lecture par le processus qui l’a cr´e´e. C’est la cas dans LOMAC [?], une version ´etendue de Linux, qui utilise cette approche pour g´erer les probl`emes des programmes pi`eges provenant du r´eseau public. Bien entendu, cette implantation ne peut stopper un virus infectant le niveau d’int´egrit´e faible de se multiplier et d’envoyer ses clˆones vers le r´eseau public.

3.6 Mod` ele Boebert&Kaine et DTE

Boebert et Kain ont introduit une implantation du mod`ele de non-interf´erence, type enforcement (TE), mise en oeuvre dans le syst`eme Lock??, et qui a ´evolu´ee plus tard vers le mod`ele DTE. Ce mod`ele est bas´e sur un moniteur de r´ef´erence compos´e d’une unit´e de gestion de la m´emoire (MMU) qui contrˆole les privil`eges conventionnels de lecture, ´ecriture, etc. et un composant de gestion des objets lab´elis´es (TOP) qui est en charge de la protection de l’´etat du syst`eme. Le TOP initialise les tables de d´efinition des privil`eges que contrˆole le MMU. Des attributs de s´ecurit´e sont associ´es aux sujets et aux objets et le TOP doit effectuer les comparaisons ad´equates entre ces attributs de s´ecurit´e pour ´etablir des droits d’acc`es conform´ement `a la politique de s´ecurit´e envisag´ee dans le MMU. Dans ce mod`ele, les attributs de s´ecurit´e associ´ees aux sujets et aux objets sont de trois types :

lelabel de confidentialit´eest associ´e aux sujets et aux objets,

l’identit´e de l’utilisateurinitiant la fonction, est associ´ee aux sujet l’ex´ecutant. Le deuxi`eme attribut de s´ecurit´e qui lui est ´equivalent pour les objets est une liste de contrˆole d’acc`es (ACL) associ´es aux objets. elle est constitu´ee des identit´es des utilisateurs poss´edant des permissions d’acc`es aux contenus des objets ainsi que le nombre maximum d’acc`es autoris´es pour chaque couple (utilisateur, pivil`ege),

le domaine d’ex´ecution du sujet est associ´e au sujet et correspond `a l’encodage du sous- syst`eme dont il fait partie. Pour les objets, le troisi`eme attribut de s´ecurit´e est le type de l’objet et il correspond au format de l’information contenue dans l’objet en question.

La d´etermination des droits d’acc`es `a attribuer `a un sujet donn´e pour avoir acc`es `a un objet donn´e se base sur les trois attributs de s´ecurit´e cit´es ci-avant. Ainsi, pour la mise en oeuvre de la politique d’acc`es obligatoire, le TOP effectue une comparaison entre les niveaux de s´ecurit´e des sujets et des objets. Ensuite, il calcule un ensemble initial de droits d’acc`es conform´ement `a l’algorithme d´efini dans la section 3.

Pour la mise en oeuvre de la politique d’acc`es discr´etionnaire, le TOP v´erifie par la suite la liste de contrˆole d’acc`es (ACL) des objets. Lorsqu’une entr´ee dans l’ACL correspond `a la partie utilisateur du contexte de s´ecurit´e du sujet, elle est compar´ee avec les droits d’acc`es d´efinis dans l’ensemble initial qui traduit la politique d’acc`es obligatoire. Tout droit d’acc`es dans cet ensemble initial qui n’apparaˆıt pas dans l’ACL est supprim´e. On obtient donc un nouvel ensemble de droits d’acc`es.

Enfin, la troisi`eme ´etape de d´etermination des droits d’acc`es se base sur une comparaison du domaine du sujet et du type de l’objet auquel il veut avoir acc`es. Chaque sujet est consid´er´e comme ´egalement un objet et donc, son second attribut de s´ecurit´e est une liste de types d’objets accessibles par le domaine du sujet et le nombre d’acc`es maximal permis `a chacun de ces types. En fait, l’agr´egation de ces listes de d´efinition de domaines constitue la table DDT (Domain Definition Table). Ainsi, le TOP, pour effectuer le contrˆole domaine-type, il consulte les lignes de la DDT

(15)

pour retrouver le domaine du sujet concern´e par cette v´erification, puis rep`ere le type de l’objet dont il est question et ensuite compare le r´esultat de cette entr´ee identifi´ee avec l’ensemble de droits d’acc`es interm´ediaire calcul´e auparavant. Tout droit apparaissant dans cet ensemble et qui n’est pas d´efini dans la DDT est supprim´e. Le r´esultat est l’ensemble final des droits d’acc`es qui est transmis au MMU.

Cependant, il y a lieu de tenir compte ´egalement des changements au niveau des domaines qui peuvent se produire suite `a un effet de bord d’un appel de proc´edures. Si la proc´edure en question ne peut ˆetre ex´ecut´ee dans le domaine de l’appelant, soit l’appel est ill´egal ou alors un chagement de domaine est n´ecessaire pour le satisfaire. Ce type d’information sur les possibilit´es de changer de domaine sont enregistr´es dans une autre table DTT (Domaine Transition Table). Lorsqu’un appel n´ecessite un changement de domaine, le moniteur de r´ef´erence suspend le sujet appelant et active le sujet appel´e avec son contexte de s´ecurit´e le temps de

Ainsi, le mod`ele TE, traite le probl`eme de l’int´egrit´e en s’orientant plutˆot vers l’isolation de l’action plutˆot que de l’utilisateur. En d’autres termes, les domaines sont utilis´es pour astreindre les actions

`a s’ex´ecuter uniquement dans une seule enclave et d’une seule fa¸con ; si l’acc`es n’est pas autoris´e

`a ce domaine, l’action ne peut ˆetre ex´ecut´ee. Cette approche permet de pr´evenir des acc`es non autoris´es `a travers des chemins non conventionnels. On peut reconnaˆıtre derri`ere cette approche, une structure tr`es utilis´ee dans la conception de syst`emes s´ecuris´es r´eels : les pipelines. Un aspect non trait´e bien qu’important dans des mod`eles de politique de s´ecurit´e `a niveaux hi´erarchis´es, comme Bell et LaPadula (aspect maquill´e sous la d´enomination de ”applications de confiance”) et dans ceux plus orient´es int´egrit´e comme le mod`ele de Biba.

Le mod`ele TE traduit les ´etats possibles de non-interf´erence par la d´efinition de la DDT et les transitions d’´etats par la DTT. L’int´egrit´e est alors assur´ee par un contrˆole strict de ces tables, ce qui semble ˆetre un objectif raisonnablement accessible bien que le stockage et la gestion d’un grand nombre de tables peut ˆetre complexe. Ce mod`ele offre ´egalement une grande flexibilit´e.

Pour pouvoir effectuer certaines actions pr´ealablement d´efinies selon un crit`ere de tˆache, d’´equipe, de groupe ou encore de rˆole, l’utilisateur doit avoir acc`es au bon domaine. D’autres restrictions d’acc`es `a des programmes ou les fichiers accessibles dans ce domaine `a cet utilisateur peuvent ˆetre adjointes sinon le syst`eme deviendrait assez rapidement difficile `a g´erer.

Avant de refermer cette section, il est important de signaler que DTE n’est qu’une extension du mod`ele TE. Les principales diff´erences sont : les matrices d’expression de la politique de s´ecurit´e ont disparu au profit d’un langage de politique de s´ecurit´e intuitif, l’utilisation d’une hi´erarchie de labels de s´ecurit´e `a la Bell et LaPadula ou Biba n’est pas exig´ee et des possibilit´es de transitions entre domaines de fa¸con automatique est rendue possible. Ce mod`ele a ´et´e mise en oeuvre dans le syst`eme d’exploitation SELinux??, mais avec l’apport d’autres m´ecanismes bas´es sur les mod`eles RBAC et IBAC. Dans SELinux, des exigences d’implantation ont n´ecessit´e l’abandon du concept de domaine au profit de type pour faciliter l’expression de la politique d’acc`es et permettre des int´eractions entre objets.

4 Administration

L’administration consiste en la cr´eation et la maintenance des ´el´ements constituant la politique de s´ecurit´e tels que les utilisateurs, les actions, les objets, les rˆoles, les labels de s´ecurit´e, les droits, etc.

La sp´ecification de la politique de s´ecurit´e et sa mise `a jour sont les deux tˆaches les plus importantes d’administration. Elle est diff´erente selon le mod`ele de s´ecurit´e adopt´e (contrˆole d’acc`es, contrˆole de flux, etc.) pour d´efinir la politique `a mettre en oeuvre. Elle peut ˆetre centralis´ee ou distribu´ee selon la flexibilit´e du mod`ele. Les mod`eles d’administration ne sont pas nombreux (voir figure

??) et s’explique par l’int´erˆet faible qui leur a ´et´e port´e. La complexit´e des tˆaches attribuer aux administrateur de s´ecurit´e et la multiplication des br`eches de s´ecurit´e r´esultant d’une mauvaise gestion plutˆot que d’un mauvais mod`ele de s´ecurit´e font que les travaux r´ecents [?] en mati`ere de contrˆole d’acc`es, de flux et d’usage prˆetent une attention particuli`ere `a la d´efinition des mod`eles d’administration de la s´ecurit´e.

(16)

4.1 Mod` ele DAC

L’administration du mod`ele Id-BAC est souvent de type discr´etionnaire. Elle repose sur la notion de propri´etaire : chaque objet a un propri´etaire qui d´ecide quels sont les sujets qui ont acc`es `a cet objet. Il est souvent le cr´eateur de l’objet et dispose de tous les droits sur cet objet. Ce plein contrˆole dont le propri´etaire dispose sur ses ressources, lui donne aussi la possibilit´e de d´el´eguer `a un autre sujet le droit d’accorder des droits sur certaines d’entre-elles.

Le plus c´el`ebre mod`ele discr´etionnaire est le mod`ele HRU qui a ´et´e d´efini en 1976 par Harrison, Ruzzo et Ullman []. C’est un mod`ele matriciel d´efini `a partir d’un ensemble de sujets, d’un ensemble d’objets et d’un ensemble fini de r`egles. Ces r`egles d´ecrivent dans quelles conditions on peut modifier le contenu de la matrice d’acc`es. Les primitives de ces r`egles sont les suivantes:

donner un droit r `a un sujet s sur un objet o

cr´eer un sujet s

cr´eer un objet o

enlever un droit r `a un sujet s sur un objet o

d´etruire un sujet s

d´etruire un objet o (possible si ce n’est pas un sujet)

La matrice d’acc`es est con¸cue telle que les colonnes correspondent aux droits exerc´es sur un objet tandis que les lignes correspondent aux droits que poss`edent un sujet. La mise en œuvre de ce mod`ele est coˆuteuse en m´emoire lorsque le nombre des utilisateurs est important. La constitution de groupes d’utilisateur peut ˆetre envisag´ee afin de limiter la taille de la matrice. Cependant la constitution et la maintenance de ces groupes sont d´elicates, car un sujet peut appartenir `a plusieurs groupes. Le mod`ele HRU a n´eanmoins l’avantage d’ˆetre simple `a d´ecrire et permet une mod´elisation simple de plusieurs syst`emes de protection. Il offre la possibilit´e de v´erifier qu’il n’y a pas d’ajout al´eatoire de droits dans la matrice d’acc`es. On peut ainsi analyser les probl`emes de sˆuret´e et de s´ecurit´e.

En g´en´eral, les mod`eles DAC sont assez statiques car une fois que la matrice d’acc`es est en place, sa modification peut ˆetre complexe si elle est grande. Ils ont n´eanmoins l’avantage d’avoir une politique d´ecentralis´ee.

4.2 Mod` ele TAM

Le mod`ele HRU a ´et´e con¸cu pour ´etudier le probl`eme de sˆuret´e. Le probl`eme de sˆuret´e consiste `a savoir si on peut cr´eer ou non un droit qui n’existait pas auparavant suite `a une ex´ecution d’une s´equence de commandes. Un syst`eme de contrˆole d’acc`es est dit sˆur si on ne peut pas cr´eer un nouveau droit dans ces conditions. Il se trouve que dans le mod`ele HRU tel qui a ´et´e d´efini, le probl`eme de sˆuret´e est ind´ecidable.

Il existe cependant des cas particuliers du mod`ele HRU pour lesquels on peut d´ecider de la sˆuret´e du syst`eme. Plusieurs chercheurs ont propos´e des mod`eles pour r´esoudre ce probl`eme de sˆuret´e:

Jones, Lipton, Snyder, Denning en proposant le mod`ele ”Take-Grant” en 79 [?], Ravi S. Sandhu dans les ann´ees 80 avec SPM (schematic protection model)[?] puis dans les ann´ees 90 avec le mod`ele TAM [?].

Les primitives utilis´ees dans le mod`ele TAM sont identiques `a celles de HRU mais les sujets et les objets sont typ´es. Ces types et les droits ne sont pas pr´ed´efinis dans le mod`ele, ce qui permet une politique de s´ecurit´e plus flexible. L’une des premi`eres modifications du mod`ele TAM afin d’obtenir un probl`eme d´ecidable est que le syst`eme est monotone, c’est `a dire qu’il ne poss`ede pas de requˆete de destruction ou de suppression. Pour obtenir un syst`eme monotone on se limite donc `a trois primitives (celles pour donner un droit, cr´eer un objet ou un sujet). On obtient alors le mod`ele

Références

Documents relatifs

Ce r´ esultat important permet d’affirmer que si la matrice de Leslie d’un mod` ele dynamique (3) est primitive alors cette dynamique pr´ esentera, lorsque t augmente, un

Cepen- dant, si on ajoute une variable explicative dans un mod` ele, le R 2 ne peut qu’augmenter, le R 2 n’est donc pas adapt´ e pour comparer entre eux des mod` eles avec un

centr´ ees de variance σ 2 0 (mais ce ne sont pas n´ ecessairement

Etudier la convergence simple et la convergence uniforme des suites de fonctions ci-dessous, ´ en pr´ecisant `a chaque fois les domaines de convergence simple et les domaines

Conjecturer ` a partir de combien de voitures fabriqu´ ees et vendues l’entreprise r´ ealisera un b´ en´ efice.. Pour combien de voitures fabriqu´ ees le b´ en´ eficie

A chaque alignement, est associ´ e un score (simple ici) suivant: pour chaque position on associe 0 si les 2 bases sont identiques, +1 si les deux bases sont diff´ erentes et +3 s’il

Sur ce syst`eme mod`ele, nous montrons que, du point de vue entr´ee/sortie et sous l’hypoth`ese standard des petites oscillations, il n’y a pas de diff´erence entre des

On suppose que l’on observe seulement le nombre de particules dans le r´ecipient A au cours du temps, et que l’on d´esire estimer le nombre total de particules. Et construire