• Aucun résultat trouvé

3.5 Automates d’édition

3.5.2 Niveaux d’application

Une contribution importante émanant de ce travail consiste en l’extension précise des définitions formelles relatives aux moniteurs d’exécution. Ces définitions ont été motivées par les deux critères suivants :

– Correction : Un mécanisme de sécurité applique correctement une politique de sé- curité lorsqu’il garantit que toutes les traces d’exécutions observables émises par le programme obéissent à la politique en question. Les traces d’exécutions tentant de vio- ler la politique ne devraient pas être émises. Ceci est garanti par la troncation ou la modification (via l’insertion) du flux d’exécution.

σ = aσδ(q, a) = qω(q, a) = + (σ, q)→ (σa, q′) E-Acc σ = aσδ(q, a) = qω(q, a) = − (σ, q)→ (σǫ, q) E-Sup σ = aσδ(q, a) = qγ(q, a) = (q, τ) (σ, q)→ (σ, qτ) E-Ins

σ = aσδ(q, a) non définie

(σ, q)→ (ǫ, q)ǫ E-Stop

TABLE3.1 – Règles sémantiques d’un automate d’édition.

– Transparence : Pour tout programme satisfaisant la politique de sécurité, le déploie- ment d’un mécanisme de sécurité afin d’appliquer cette politique devrait être trans- parent pour le programme. Autrement dit, ce mécanisme de sécurité ne devrait avoir aucun impact sur le comportement prévu du programme vis-à-vis de l’environnement avec lequel il interagit. En d’autres termes, les actions entreprises par le mécanisme de sécurité ne devraient pas empêcher une séquence d’actions satisfaisant la politique de sécurité d’être exécutée.

En considérant ces deux critères, les mécanismes de sécurité peuvent être classés en trois catégories selon trois niveaux d’application : application conservatrice, application précise et application effective.

Application conservatrice

Ce niveau d’application des politiques de sécurité regroupe les mécanismes de sécurité qui vérifient le critère de correction, mais pas nécessairement celui de transparence. Ceci implique qu’un mécanisme de sécurité utilisant ce type d’application possède une grande souplesse et liberté sur la manière avec laquelle il applique la politique de sécurité. L’es-

sentiel dans ce mode d’application est de générer une exécution qui satisfait la politique, même si cette dernière est complètement indépendante de la séquence d’actions que le pro- gramme avait l’intention d’exécuter (c.-à-d. avant l’intervention du mécanisme de sécurité). Par exemple, un moniteur d’exécution appartenant à cette classe peut être spécifié par un automate d’édition qui génère toujours en sortie le même flux d’actions valides. Un tel au- tomate d’édition pourra aussi se contenter de ne rien générer en sortie en se basant sur le fait qu’un programme qui ne fait “rien” respecte toujours la politique de sécurité, du moment qu’il ne la viole pas. Ce genre de mécanismes de sécurité est très laxiste, d’un point de vue pratique, comme méthode d’application des politiques de sécurité. Par conséquent, il a très peu d’intérêt dans une caractérisation formelle des mécanismes de sécurité.

FIGURE 3.3 – Propriétés applicables précisément.

Application précise

Ce niveau d’application des politiques de sécurité regroupe les mécanismes de sécurité qui appliquent une politique de sécurité selon un mode conservateur tout en émettant en sortie les actions d’entrée de façon synchrone avec le programme contrôlé. En d’autres termes, si la séquence d’entrée est valide, l’automate d’édition doit l’émettre intégralement action par action sans interruption et sans modification. Par conséquent, si une séquence vérifie la politique alors l’automate va la laisser s’exécuter complètement sans intervenir pour la modifier. On dira alors que la séquence est acceptée. Sinon, il devrait intervenir pour modifier le flux en “éditant” la séquence d’actions, de sorte que le résultat satisfasse la propriété. En

se basant sur cette définition, on note que l’ensemble des propriétés de sécurité précisément applicables est inclus dans la classe des propriétés de sûreté. La taxonomie des propriétés de sécurité précisément applicables par les trois classes d’automates d’éditions (troncation, insertion et édition) est présentée dans la figure3.3.

Application effective

Ce niveau d’application des politiques de sécurité regroupe les mécanismes de sécurité qui appliquent les politiques de sécurité selon un mode conservateur tout en vérifiant le prin- cipe de transparence. Ce mode d’application est plus puissant que l’application précise vu qu’il reconnaît les séquences valides qui diffèrent syntaxiquement, mais qui sont sémanti- quement équivalentes (ce qui satisfait la condition de la transparence). La définition du mode d’application effective dépend fortement d’une certaine relation d’équivalence(∼=) entre les traces d’exécution. Cette relation est définie comme suit :

σ ∼= σ⇒ ˆP(σ) ⇔ ˆP(σ)

σ est la trace d’exécution que le programme tente de réaliser, σest la séquence d’exé-

cution résultant de la réaction de l’automate d’édition par rapport àσ (la trace émise), et ˆP

est le prédicat caractéristique qui décide si une exécution individuelle satisfait ou pas la po- litique à appliquer. En considérant cette relation d’équivalence, nous constatons les résultats suivants :

– Si un programme contrôlé par un moniteur exhibe une trace d’exécution qui satisfait la politique, alors l’automate d’édition va réagir en supprimant ou en insérant des évé- nements. Le résultat de cette édition est une nouvelle trace d’exécution satisfaisant la politique, mais qui est en même temps équivalente à celle que l’automate avait en entrée (la trace d’origine que le programme aurait exhibée s’il n’avait pas subi d’interventions de la part du mécanisme de sécurité).

– Si le programme tente d’exhiber une exécution qui viole la politique alors l’automate d’édition va réagir en supprimant et/ou en insérant des actions, ou en arrêtant l’exé- cution. Ainsi, le résultat de cette édition génère une trace d’exécution qui satisfait la politique de sécurité en question. Cependant, cette trace n’est pas équivalente à celle que l’automate avait en entrée.

Ci-après, nous présentons la définition formelle de l’application effective (modulo une relation d’équivalence ∼=) d’une propriété de sécurité [11].

FIGURE3.4 – Propriétés effectivement applicables.

Définition 3.5.2 (Application effective modulo ∼=). Soit A un automate d’édition, P une propriété de sécurité et ∼= une relation d’équivalence définie sur l’ensemble Σ∗. L’automate

d’éditionA applique effectivement P en respectant ∼= si et seulement si, pour chaque séquence

σ ∈ Σon a :

A(σ) ∈ P (3.4)

σ ∈ P ⇒ A(σ) ∼= σ (3.5)

A(σ) est la séquence d’actions générée par l’automate A en réponse à la tentative d’un

programme d’exécuter la séquenceσ.

La figure 3.4 montre la taxonomie des propriétés de sécurité effectivement applicables par les différents types d’automates d’édition. La forme la plus intuitive de la relation d’équi- valence ∼= est l’égalité syntaxique (=). En effet, le pouvoir de l’application effective modulo l’“=” couvre la classe des propriétés “régénératrices” [74] définies formellement comme suit :

Définition 3.5.3 (Propriété régénératrice). Une propriété P définie surΣ∗∪ Σω est dite régé- nératrice si et seulement si les conditions suivantes sont satisfaites :

∀σ ∈ Σω

FIGURE 3.5 – Propriétés régénératrices - applicables effectivement modulo la relation “=”.

∀σ ∈ Σω.σ ∈ P ⇔ ∀σ∈ Pref (σ).∃σ′′ ∈ Pref (σ).σ∈ Pref (σ′′) ∧ σ′′ ∈ P (3.7)

où Σω est l’ensemble de toutes les séquences infinies définies sur l’ensembles des ac- tionsΣ.

Selon cette définition, toute propriété définie sur Σ∗ (ensemble des séquences finies dé-

finies sur les actions deΣ) est une propriété régénératrice. En effet, une propriété P définie sur Σ∗ peut être effectivement appliquée modulo l’égalité syntaxique“=” par un automate

d’édition” [73]. L’automate supprime toutes les actions qu’il a en entrée, et ce, jusqu’à ce qu’il puisse confirmer que le préfixe résultant respecte la propriété. À ce moment, il insérera toutes les actions supprimées auparavant [11]. Le positionnement des propriétés régénéra- trices par rapport aux propriétés de sûreté et celles de vivacité est présenté dans la figure3.5. Dans le reste de cette thèse toute mention d’application effective fait référence à l’applica- tion effective modulo l’égalité syntaxique (=).

L’application effective basée sur une relation d’équivalence autre que l’égalité syntaxique a été étudiée par Khoury et Tawbi dans [61]. Dans cette étude, l’équivalence entre les sé- quences reçues en entrée par un automate d’édition et celles qu’il génère en réponse est représentée par une fonction d’abstraction. Ce formalisme inspiré de [42] a permis l’étude de plusieurs relations d’équivalence pertinentes ainsi que les politiques de sécurité applicables sous les contraintes imposées par ces relations. Ce travail s’est intéressé aussi à l’apport

que peut rajouter la disponibilité d’informations sur les programmes contrôlés à la puissance d’application de ces politiques. Dans [60], l’approche a été adoptée pour des relations d’équi- valence basées sur l’ordre partiel.