• Aucun résultat trouvé

5.3 Exemple de déploiement d’une politique de sécurité

5.3.2 Compilation des propriétés

Dans cette section, nous détaillons l’étape de compilation de la phase d’application des trois propriétés système, réseau et hybride. Les scores d’ordonnancement et d’application permettant de déterminer quels mécanismes doivent être utilisés sont également présentés. 5.3.2.1 Propriété système

La propriété système PS est une propriété de confidentialité sur des fichiers. Le lis-ting 5.8 présente l’extrait de la politique de sécurité correspondant à cette propriété. 1 mailConfig := (Type.Passive.Data.File.Configuration="conf"):(Domain="mail");

2 mailAdmin := (Id.User="admin"):(Domain="mail");

3

4 @Confidentiality (mailConfig, mailAdmin);

Listing 5.8 – Propriété de confidentialité système

Le moteur d’application reçoit cette propriété instanciée et doit déterminer quelle est la meilleure application possible. La propriété fait référence à la classe@Confidentiality. En prenant en compte les types des contextes passés en paramètres, on peut remarquer que deux propriétés peuvent être utilisées : P1et P2. D’après les définitions des scores statiques des propriétés (listing 5.7), P1a un score plus élevé que P2. Les types de contextes attendus par les propriétés étant identiques, les scores d’inclusion de P1 et P2dans PSsont les mêmes (score d’inclusion = 3). On obtient donc les scores d’ordonnancement suivants :

Sord(P1) = Sstat(P1) d(P1, PS) + 1 = 2 3 + 1 = 0, 5 Sord(P2) = Sstat(P2) d(P2, PS) + 1 = 1 3 + 1 = 0, 25

P1a un meilleur score d’ordonnancement et sera donc appliquée (s’il y a des mécanismes disponibles pour chacune des capacités de P1).

Le moteur de projection cherche donc à appliquer la propriété P1 sur les contextes mailConfig et mailAdmin. Les capacités instanciées de P1 peuvent être appliquées par les capacités : C1 et C2. Le moteur de projection cherche à appliquer C1. Les deux mécanismes disponibles sur le système et capables d’appliquer C1sont SELinux et les droits DAC Unix. SElinux ayant un meilleur score d’ordonnancement pour C1, il est sélectionné. La capacité C2peut être appliquée par les mêmes mécanismes. SELinux étant un mécanisme dominant, il est nécessairement utilisé pour C2puisqu’il a été sélectionné pour C1. Le score d’application de PS obtenu est donc :

Sapp(PS) = Sord(P1)⇤ [Sapp(C1) + Sapp(C2)] , Sapp(PS) = Sord(P1)⇤[S(C1, SELinux)⇤ 1

d(C1, C) + 1+S(C2, SELinux)1 d(C2, C) + 1] , Sapp(PS) = 0, 5⇤ [6 ⇤ 1 0 + 1+ 61 0 + 1] , Sapp(PS) = 6

Dans le cas 2, c’est-à-dire si le mode Maximum est choisi pour cette propriété, le mo-teur de projection choisira le plus de mécanismes possibles. Dans ce cas, SELinux et les

5.3. EXEMPLE DE DÉPLOIEMENT D’UNE POLITIQUE DE SÉCURITÉ

droits DAC seront tous deux utilisés puisqu’ils sont compatibles. On obtient alors le score d’application suivant :

Sapp(PS) = Sord(P1)⇤ [Sapp(C1) + Sapp(C2)]

, Sapp(PS) = Sord(P1)⇤[S(C1, SELinux)+S(C1, DAC)+S(C2, SELinux)+S(C1, DAC)] , Sapp(PS) = 0, 5⇤ [(6 + 4) ⇤ 1

0 + 1 + (6 + 3)1 0 + 1] , Sapp(PS) = 9, 5

On obtient donc un score d’application plus élevé lorsque les droits DAC Unix sont utilisés en complément de SELinux, ce qui indique une meilleure application au sens de l’application idéale définie par l’expert en sécurité.

5.3.2.2 Propriété réseau

La seconde propriété PR est une propriété de confidentialité réseau (voir listing 5.9). 1 mailServer := (Net.IP="192.168.1.2");

2 mailClient := (Net.IP="192.168.1.1");

3

4 @Confidentiality (mailServer, mailClient);

Listing 5.9 – Propriété de confidentialité réseau

La propriété est une nouvelle fois appelée grâce à la classe@Confidentiality. Une seule propriété de cette classe correspond aux arguments de la propriété instanciée : elle est donc sélectionnée.

Sur le nœud serveur, deux capacités instanciées doivent être appliquées :generate_key

(C3 ou C4) et encrypt_flow(C5 ou C6).

Les deux mécanismes disponibles pour C3et C4sont JCE et GPG. Le score d’ordonnan-cement attribué à JCE étant plus élevé pour les deux capacités, c’est le mécanisme choisi. De plus, C4 a un meilleur score que C3 et sera donc utilisé (si ce choix est compatible avec les autres capacités de PR).

Sur le serveur, deux capacités peuvent appliquer la capacité encrypt_flow : C5 ou C6. Pour chacune de ces capacités, un mécanisme est disponible : OpenVPN ou SSH. OpenVPN ayant un meilleur score d’ordonnancement, il sera préféré à SSH. Cependant,

encrypt_flowest une propriété réseau qui est également appliquée sur le nœud client. Ce dernier ne dispose pas d’OpenVPN : il ne peut donc utiliser que C6 avec SSH. Comme OpenVPN et SSH ne sont pas compatibles au sens de la matrice CompNet (listing 5.7), SSH est sélectionné sur les deux nœuds pour appliquer C6.

On obtient donc les scores d’application suivants pour la propriété PR sur les nœuds serveur et client.

Sapp(PR_server) = Sord(P3)⇤ [S(C4, JCE) + S(C6, SSH)] Sapp(PR_client) = Sord(P3)⇤ [S(C6, SSH)]

, ⇢

Sapp(PR_server) = 1⇤ [6 + 4] = 10 Sapp(PR_client) = 4

Dans le cas 2, c’est-à-dire si le nœud client dispose également de OpenVPN, les capacités utilisées seront C3 et C5. Les scores d’application obtenus sont les suivants :

Sapp(PR_server) = Sord(P3)⇤ [S(C3, JCE) + S(C5, OpenV P N )] Sapp(PR_client) = Sord(P3)⇤ [S(C5, OpenV P N )]

, ⇢

Sapp(PR_server) = 1⇤ [5 + 6] = 11 Sapp(PR_client) = 6

Ainsi, nous pouvons remarquer que les compatibilités réseaux entre les mécanismes influent sur le score d’application de la politique sur l’ensemble des nœuds considérés. 5.3.2.3 Propriété hybride

Enfin, nous présentons dans cette section l’application d’une propriété de confidentialité hybride PH, faisant donc intervenir des parties systèmes et des parties réseaux.

1 mailConfig := (Type.Passive.Data.File.Configuration="conf"):(Domain="mail");

2 mailAdmin := (Id.User="admin"):(Domain="mail");

3 mailServer := (Net.IP="192.168.1.2");

4 mailClient := (Net.IP="192.168.1.1");

5

6 @Confidentiality (mailConfig, mailServer, mailClient, mailAdmin);

Listing 5.10 – Propriété de confidentialité hybride

La seule propriété correspondant à cette instance est P4, qui fait appel aux propriétés P1 et P3 dont les applications ont été détaillées précédemment.

Le tableau 5.3 présente les configurations qui sont obtenues pour les deux cas considérés (cas 1 : mode de sélection Défaut et pas de VPN sur le client, cas 2 : mode de sélection Maximumpour la partie système et VPN présent sur les deux nœuds).

Nœud Propriétés Capacités et Mécanismes Solution 1 Solution 2 Serveur P1 C1 ! SELinux C1 ! SELinux+DAC C2 ! SELinux C2 ! SELinux+DAC P3 C4 ! JCE C3 ! JCE C6 ! SSH C5 ! OpenVPN Client P1 C1 ! SELinux C1 ! SELinux+DAC

C2 ! SELinux C2 ! SELinux+DAC P3 C6 ! SSH C5 ! OpenVPN

Table5.3 – Application de la propriété hybride PH

Les scores d’application résultant des deux solutions envisagées sont les suivants : Cas 1 : ⇢ Sapp(PH_server_1) = 6 + 10 = 16 Sapp(PH_client_1) = 6 + 4 = 10 Cas 2 : ⇢ Sapp(PH_server_2) = 9.5 + 11 = 20, 5 Sapp(PH_client_2) = 9.5 + 6 = 15, 5

Les scores d’application pour la deuxième solution sont donc plus élevés, ce qui indique que la politique a été appliquée avec des mécanismes plus adaptés (au sens de la définition par l’expert en sécurité) et plus nombreux (mode Maximum pour la propriété P1de contrôle d’accès). La qualité de l’application est donc plus élevée dans le second cas.

Cependant, le mode de sélection Maximum possède aussi des désavantages. Tout d’abord, le mode Maximum implique l’utilisation d’un plus grand nombre de mécanismes que les autres modes : le temps de déploiement de la politique est donc plus important. De plus, plus le nombre de mécanismes utilisés est élevé, plus les performances du système sont

5.3. EXEMPLE DE DÉPLOIEMENT D’UNE POLITIQUE DE SÉCURITÉ

impactées. Enfin, l’utilisation de plusieurs mécanismes peut présenter des risques (cas du surchiffrement). C’est pourquoi, dans le cas classique, la politique est appliquée en utilisant le mode Défaut. Cela reste cependant configurable par l’expert en sécurité.