• Aucun résultat trouvé

Retour sur les notions de monitorabilit´e et testabilit´e

Preuve de qn−1∈BadAΠ

p ⇔[[Π]](σ)=⊥p.Similairement, prouver queqn−1∈BadAΠ

p ⇔[[Π]](σ)=⊥p

est direct en examinant le crit`ere d’acceptation des s´equences finies des automates de Streett. La preuve

compl`ete peut ˆetre trouv´ee dans l’AnnexeA.3.

Preuve de qn−1 BadAΠ [[Π]](σ) =⊥. Prouver que qn−1 BadAΠ [[Π]](σ)=⊥ peut ˆetre fait

en suivant le mˆeme principe de preuve que celui que nous avons utilis´e pour prouverqn1∈GoodAΠ

[[Π]](σ)=⊤. La preuve compl`ete peut ˆetre trouv´ee dans l’AnnexeA.3.

Remarque 8 (Correspondance entre P, B3,B⊥

2, etB⊤

2) Une fois l’ensemblePd´efini pour un

auto-mate de Streett, il est facile d’obtenir les ´evaluations dans les domaines de v´erit´e de cardinaux inf´erieurs :

– Pour B3 : qn−1∈GoodAΠ ⇔[[Π]]B3(σ)=⊤, qn−1∈GoodAΠ p ∪BadAΠ p ⇔[[Π]]B3(σ)=?, qn−1∈BadAΠ ⇔[[Π]]B3(σ)=⊥. – Pour B⊤ 2 : qn−1∈GoodAΠ ⇔[[Π]]B⊤ 2(σ)=⊤, qn−1∈GoodAΠ p ∪BadAΠ p ∪BadAΠ ⇔[[Π]]B 2(σ)=?, – Pour B⊥ 2 : qn−1∈BadAΠ ⇔[[Π]]B⊥ 2(σ)=⊥, qn−1∈BadAΠ∪GoodAΠ p ∪BadAΠ p ⇔[[Π]]B⊥ 2(σ)=?,

5.2 Retour sur les notions de monitorabilit´e et testabilit´e

Nous avons vu dans le Chapitre4, Section.4.2 qu’il n’y a pas de caract´erisation exacte (en terme

de classe sp´ecifique de la classificationSafety-Progress) des propri´et´es v´erifiables `a l’ex´ecution dans sa d´efinition classique(D´efinition23, p.66). Les notions de monitorabilit´e et testabilit´e reposent sur la notion de d´etermination positive et d´etermination n´egative. Uner-propri´et´eΠest d´etermin´ee n´egativement (resp. positivement) par une s´equence d’ex´ecutionσsi lors de la lecture de la s´equence parAΠreconnaissantΠ,

l’automateAΠest dans un ´etat mauvais (resp. bon).

Retour sur la monitorabilit´e. Etant donn´es une´ r-propri´et´e Π et un automate de Streett

reconnaissant Π, il est possible de d´eterminer si cette r-propri´et´e est monitorable par une analyse

d’atteignabilit´e des ´etats de l’automate.

Propri´et´e 8 (Propri´et´es monitorables (vue automate)) : La r-propri´et´e Π reconnue par le m -automate de StreettAΠ=(QAΠ,qinit

AΠ,→AΠ,{(R1,P1), . . . ,(Rm,Pm)})est B⊥ 2-monitorablessi ∀q∈QAΠ,qinit→AΠ q⇒ ∃q∈BadAΠ ,q→AΠ q B⊤ 2-monitorablessi ∀q∈QAΠ,qinit→∗ q⇒ ∃q′∈GoodAΠ,q→∗ q′ B3-monitorablessi ∀q∈QAΠ,qinit→∗ q⇒ ∃q∈BadAΠ∪GoodAΠ ,q→∗ q

Uner-propri´et´e est doncB⊥

2-monitorable (resp.B⊤

2-monitorable,B3-monitorable) si, dans son automate

reconnaisseur, il est possible d’atteindre un ´etat mauvais (resp. bon, mauvais ou bon) `a partir de tout

´etat de l’automate.

Preuve : Cette propri´et´e est une cons´equence de la Propri´et´e7. La preuve est ´evidente en remarquant que les automates de Streett que nous consid´erons sont d´eterministes et complets. Ainsi, les deux faits suivants sont ´equivalents :

– pouvoir atteindre, depuis tout ´etat accessible depuis l’´etat initial, un ´etat mauvais (resp. bon, mauvais ou bon) ;

– toute s´equence finie poss`ede une continuation qui d´etermine n´egativement (resp. positivement, n´egativement ou positivement) la propri´et´e sous-jacente.

Retour sur la testabilit´e. De fa¸con similaire, par un examen des ´etats d’un automate de Streett, il est possible de savoir si lar-propri´et´e reconnue par cette automate est testable vis-`a-vis d’une relation.

D´efinition 32 (Propri´et´es testables (vue automate)). Lar-propri´et´eΠreconnue par lem-automate de StreettAΠ=(QAΠ,qinit

AΠ,→AΠ,{(R1,P1), . . . ,(Rm,Pm)})est testable par rapport `a la relationExec(PΣ)⊆Πsi

∃q∈BadAΠ,qinitAΠ →∗ q

testable par rapport `a la relationExec(PΣ)∩Π,∅si

∃q∈GoodAΠ

,qinit →∗

q

Uner-propri´et´eΠest donc testable par rapport `a la relationExec(PΣ)⊆Π(resp. par rapport `a la relationExec(PΣ)∩Π,∅) si, dans son automate reconnaisseur, il est possible d’atteindre un ´etat mauvais (resp. bon) `a partir de l’´etat initial de l’automate.

5.3 Notion de moniteur

Un moniteur est une proc´edure (cf. Chapitre2, Section2.1) consommant des ´ev´enements produits

par un programme sous-jacent et donnant une ´evaluation sur la s´equence lue jusqu’`a pr´esent `a propos

d’une propri´et´e. Les moniteurs que nous consid´erons sont des machines `a ´etats finis produisant une sortie

dans un domaine appropri´e. Ce domaine sera caract´eris´e pr´ecis´ement pour les moniteurs d´edi´es `a la

v´erification ou l’enforcement. Pour les moniteurs de v´erification, cette fonction de sortie donne une valeur de v´erit´e (un verdict) dansB4 concernant l’´evaluation de la s´equence d’ex´ecution courante relativement `a

la propri´et´e examin´ee (cf. Chapitre6). Pour les moniteurs d’enforcement (EMs), cette fonction de sortie

produit une op´eration d’enforcement induisant une modification de la s´equence d’entr´ee de mani`ere `a

enforcer la propri´et´e d´esir´ee (cf. Chapitre6). La d´efinition des moniteurs que nous consid´erons est la

suivante :

D´efinition 33 (Moniteur). UnmoniteurAest un 5-tuple(QA,qinit

A,−→A,XAA)d´efini relativement `

a un ensemble d’´ev´enementsΣ. L’ensemble fini d’´etats QA d´enote les ´etats de contrˆole etqinit

A∈QA est l’´etat initial. La fonction compl`ete−→A:QA×Σ→QA est la fonction de transition. Dans la suite, nous notonsq−→a Aq′pour−→A(q,a)=q′. L’ensemble des valeursXAd´epend du but du moniteur (v´erification

ou enforcement). La fonctionΓA:QA→XA est une fonction de sortie, produisant des valeurs dans XA `a

partir des ´etats. `

A partir de cette d´efinition g´en´erale de moniteur, il est possible de synth´etiser des moniteurs d´edi´es pour la v´erification et l’enforcement. Cette synth`ese est bas´ee sur la d´efinition dePA.

CHAPITRE

6

Approches V´erification et Enforcement de propri´et´es `a l’ex´ecution

Sommaire

6.1 Introduction . . . . 99 6.2 V´erification par moniteur . . . . 99 6.3 Enforcement par moniteur . . . 100

6.3.1 Notion de moniteur d’enforcement g´en´erique . . . 100

6.3.2 Enforcement de propri´et´es par un moniteur. . . . 102

6.3.3 Instantiation des moniteurs d’enforcement g´en´eriques . . . 103

6.3.4 Propri´et´es des moniteurs d’enforcement instanci´es. . . 104

6.4 Operations de composition sur les moniteurs d’enforcement . . . 105

6.4.1 N´egation . . . 106

6.4.2 Union et intersection . . . 108

6.5 Synth`ese de moniteurs d’enforcement. . . 110

6.5.1 Transformations sp´ecifiques aux classes de propri´et´es . . . 111

6.5.2 Correction des transformations. . . 115

6.5.3 Transformation g´en´erale . . . 118

6.6 Comparaison avec d’autres approches d’enforcement . . . 119

6.6.1 Comparaison avec les m´ecanismes d’enforcement. . . 119

6.6.2 Comparaison avec les moniteurs d’enforcement. . . 119

Chapter abstract

In this chapter, we present the verification and enforcement approaches via monitors operating at runtime on the system under scrutiny. These monitors take as input an execution sequence made of events produced by an underlying program or protocol. They produce as output a new execution sequence

such that the soundness and transparency constraints, expressed in Chapter4, hold. These enforcement

monitors are based on a memory device and finite sets of control states and enforcement operations.

Moreover, we specify their enforcement abilities wrt. thegeneral safety-progress classification of properties.

Furthermore, we propose asystematic technique to produce an enforcing monitor from the automaton

recognizing a given safety, guarantee, obligation or response property. Finally, we show that this notion of enforcement monitors is more amenable to implementation and encompasses previous runtime enforcement mechanisms.

R´esum´e du chapitre

Dans ce chapitre nous pr´esentons les approches de v´erification et d’enforcement par moniteurs op´erant `a l’ex´ecution des syst`emes. Ces moniteurs prennent en entr´ee une s´equence d’ex´ecution consitu´ee d’´ev´enements produits par exemple par un programme ou un protocole. Ils produisent en sortie une nouvelle s´equence d’ex´ecution telle que les contraintes de correction et transparence formul´ees au Chapitre4soient respect´ees. Ces moniteurs sont des m´ecanismes de type automate avec m´emoire poss´edant un nombre fini d’´etats de contrˆole et d’op´erations d’enforcement. De plus, nous sp´ecifions leur capacit´e d’enforcement par

rapport `a la classificationSafety-Progress pr´esent´ee dans le Chapitre3. Nous verrons que ces moniteurs

sont capables d’enforcer l’ensemble des propri´et´es enfor¸cables d´elimit´ees dans le Chapitre4. De plus, nous proposons une technique syst´ematique pour produire de tels moniteurs d’enforcement depuis un automate

de Streett reconnaissant uner-propri´et´e donn´ee de safety, guarantee, obligation, response. Finalement,

6.2 : Introduction

6.1 Introduction

Motivations. Les mod`eles actuels de moniteurs d’enforcement souffrent de plusieurs limitations. Tout d’abord ceux-ci n’´etablissent pas de lien clair avec la propri´et´e qu’ils enforcent. Plus pr´ecis´ement, il est difficile d’´etablir un lien entre l’´etat courant du moniteur d’enforcement et la satisfaction de la propri´et´e par la s´equence fournie en entr´ee. Ceci est du au fait qu’un edit automate n’est pas reli´e ou g´en´er´e `a partir d’un m´ecanisme reconnaisseur. En effet, les ´etats d’un edit-automata sont uniquement d´efinis par la modification op´er´ee sur la s´equence d’ex´ecution (voir Chapitre2 Section2.2).

Nous souhaitons ´etablir un cadre pour la v´erification et l’enforcement de propri´et´es `a l’ex´ecution. Les

approches que nous proposons utilisent le cadre de sp´ecification d´efini pr´ec´edemment dans le Chapitre3.

Nous d´efinissons une notion de moniteurs g´en´eriques “assez puissants” pour v´erifier et enforcer l’ensemble des propri´et´es v´erifiables et enfor¸cables trouv´ees au Chapitre4. De plus, pour l’enforcement de propri´et´es, en tirant parti du cadre d´efini dans le Chapitre3, nous verrons qu’il est possible desynth´etiser facilement

un moniteur d’enforcement pour uner-propri´et´e (enfor¸cable) donn´ee. ´Egalement, les moniteurs que nous

proposons b´en´eficient d’un lien clair entre leur mod`ele (propos´e dans ce chapitre) et leur impl´ementation

(voir Chapitre8). Aussi, nous nous int´eresserons au probl`eme de la composition de tels moniteurs, puis `a

leur synth`ese.

Organisation du chapitre. La suite de ce chapitre est organis´ee comme suit. Dans la Section 6.2, nous pr´esentons une notion g´en´erique de moniteur de v´erification. La notion de moniteur d’enforcement g´en´erique est introduite dans la Section6.3. Nous pr´esentons ´egalement une instantiation de ces moniteurs d’enforcement. Pour les deux types de moniteurs, nous pr´esentons la notion d’enforcement de propri´et´es. Nous montrons comment il est possible de composer ces moniteurs d’enforcement par des op´erations

bool´eennes en Section6.4. Puis, dans la Section6.5, nous montrons comment depuis un automate de Streett

reconnaissant une r-propri´et´e enfor¸cable donn´ee, il est possible d’obtenir un moniteur d’enforcement

respectant les contraintes de correction et transparence.