• Aucun résultat trouvé

Application à un modèle de système informatique

Chapitre 2 Élaboration d’un modèle d’attaques 29

2.2 Modèle d’attaques basé sur les interactions entre les composants

2.2.3 Application à un modèle de système informatique

La présente sous-section illustre la mise en œuvre de notre modèle d’attaques en l’instan-ciant à un système informatique particulier représenté sur la figure 2.5. Il s’agit d’une instance (très) simplifiée du modèle générique de système informatique que nous avons précédemment décrit en section 2.1 (cf. figure 2.2). Pour les besoins du manuscrit, cette instance omet volontai-rement plusieurs composants matériels (tels que le contrôleur d’interruption, le gestionnaire de la plate-forme, etc.) que nous n’allons pas considérer pour notre étude. Il convient également de remarquer que nous avons regroupé plusieurs composants matériels implémentant des fonc-tions similaires (les contrôleurs d’entrées-sorties, les périphériques, etc.) au sein d’une même entité afin de réduire la taille du graphe des actions élémentaires construit et, par là-même, gagner en lisibilité. Bien évidemment, un système informatique réel sera très rarement aussi simple. Ainsi, le système informatique que nous allons considérer est composé d’un seul pro-cesseur, d’une mémoire centrale et de contrôleurs d’entrées-sorties, interconnectés au moyen de bus distincts reliés à un unique répartiteur. Les contrôleurs d’entrées-sorties étant ici géné-riques, ils pourront être considérés comme des contrôleurs internes, comme des contrôleurs externes ou comme des contrôleurs de périphériques selon le contexte.

Processeur Répartiteur Contrôleur de

mémoire

Mémoires Contrôleurs

d'entrées-sorties Périphériques

FIGURE2.5 – Exemple de système informatique

2.2. Modèle d’attaques basé sur les interactions entre les composants

avons formulé les hypothèses d’attaque suivantes pour chacun des composants matériels.

Le processeur. Étant donné le rôle actif joué par le processeur dans un système informatique, il peut être utilisé pour initier des attaques ciblant d’autres composants matériels. Tou-tefois, les sous-systèmes qui le composent peuvent également faire l’objet d’attaques. — Les composants logiciels qui s’exécutent au dessus de ce processeur sont

potentiel-lement vulnérables. De par leur complexité, ils sont rarement exempts de vulnéra-bilités qui sont souvent exploitées par les attaquants. Nous allons représenter ces attaques élémentaires par des arcs étiquetés de Î au sein du processeur.

— Le sous-système logique dans le processeur est susceptible de contenir des bogues ou des fonctionnalités cachées qui peuvent être mises à profit par les attaquants pour perpétrer des attaques. Plusieurs exemples de ces bogues matériels ont été présen-tés au chapitre 1. Nous allons représenter les attaques élémentaires ciblant le sous-système logique par des arcs étiquetés de Í au sein du processeur.

— Le sous-système logique et le sous-système logiciel reposent, pour leur fonctionne-ment, sur le sous-système de configuration. Il est sans doute possible d’impacter directement le fonctionnement de ces deux sous-systèmes par une configuration in-appropriée du processeur. Nous allons représenter les attaques élémentaires ciblant le sous-système de configuration par des arcs étiquetés de Ì au sein du processeur.

Le répartiteur. Ce composant matériel a un rôle passif dans le système informatique. Ainsi, nous considérons que ses sous-systèmes peuvent être les cibles d’attaques.

— Le sous-système logique du répartiteur peut contenir des vulnérabilités matérielles. Notamment, ceci a été démontré par la preuve de concept d’attaque publiée dans [Rutkowska et Wojtczuk 08]. Pour cela, les auteurs exploitent une fonctionnalité de traduction d’adresses (précisément, la fonctionnalité de memory reclaiming) au sein du chipset (que nous assimilons dans notre modèle au répartiteur) de façon à contour-ner tous les mécanismes de contrôle d’accès à la mémoire centrale y compris ceux mis en place par les unités de gestion de la mémoire dans les processeurs pour isoler les processus entre eux et ceux mis en place par le répartiteur lui-même pour proté-ger les sous-systèmes logiciels dans le gestionnaire de la plate-forme. Il semble que la vulnérabilité soit due initialement à une erreur de configuration du répartiteur car les fabricants de BIOS ont publié, peu de temps après la divulgation de la vulnérabilité matérielle, un correctif logiciel empêchant son exploitation. Nous allons représenter ces attaques élémentaires par des arcs étiquetés de Í au sein du répartiteur.

— Afin d’activer, de désactiver ou de perturber les services fournis par le répartiteur, un attaquant peut modifier de manière inappropriée la configuration du répartiteur d’entrées-sorties. Nous allons représenter ces attaques élémentaires par des arcs éti-quetés de Ì au sein du répartiteur.

Le contrôleur de mémoire et les mémoires associées. Ces deux composants matériels combi-nés forment la mémoire centrale. Étant donné le rôle crucial joué par la mémoire centrale dans le fonctionnement d’un système informatique, les sous-systèmes de ces compo-sants peuvent être les cibles d’attaques.

— De nombreux composants matériels, notamment le processeur et certains contrô-leurs d’entrées-sorties, reposent sur des structures de contrôle stockées dans la mé-moire centrale pour leur fonctionnement. Toute modification inappropriée de ces structures peut potentiellement perturber le fonctionnement de ces composants ma-tériels. Nous assimilons ces modifications inappropriées à des attaques élémentaires

sur le sous-système logique des mémoires. Nous allons représenter ces attaques élé-mentaires par des arcs étiquetés de Í au sein des mémoires.

— Le contrôleur de mémoire peut être reconfiguré de façon à activer, désactiver ou perturber certaines fonctions. Une attaque élémentaire qui peut être envisagée sur ce composant consiste, par exemple, à désactiver les accès à une mémoire. Nous allons représenter ces attaques élémentaires par des arcs étiquetés de Ì au sein du contrôleur de mémoire.

Les contrôleurs d’entrées-sorties internes. Ces composants peuvent initier des attaques ou, au contraire, en être la cible.

— Les contrôleurs d’entrées-sorties qui contiennent un sous-système logiciel présentent potentiellement des vulnérabilités logicielles qui permettent de reprogrammer leurs fonctions. Des publications récentes ont présenté des attaques qui reprogramment un contrôleur de clavier [Gazet 11] afin d’exploiter une vulnérabilité dans la routine de traitement des System Management Interrupts (SMI) exécutée par le processeur lorsqu’il est dans le mode System Management (SMM) ou qui modifient à distance le comportement d’une carte réseau [Duflot et al. 10] afin de mener des attaques de type Direct Memory Access (DMA). Nous représentons les attaques élémentaires associées par des arcs étiquetés de Î dans les contrôleurs d’entrées-sorties.

— Certains contrôleurs d’entrées-sorties ont la faculté de gérer eux-mêmes leurs trans-ferts de données. Un attaquant peut chercher à modifier la configuration de ces contrôleurs d’entrées-sorties afin de détourner ces transferts à des fins malveillantes (par exemple, pour modifier le contenu de la mémoire centrale). Nous allons repré-senter les attaques élémentaires utilisés dans ces scénarios d’attaque par des arcs étiquetés de Ë au sein des contrôleurs d’entrées-sorties.

Les contrôleurs d’entrées-sorties externes et les périphériques De la même façon que pour les contrôleurs d’entrées-sorties internes, les contrôleurs d’entrées-sorties externes ainsi que les périphériques peuvent initier des attaques ou en être les cibles.

— Étant donné qu’ils sont externes au système informatique, il est possible d’effectuer des attaques élémentaires à tous les niveaux d’abstraction de ces composants. Grâce aux micro-contrôleurs de plus en plus puissants et aux technologies de logique pro-grammable, nous pensons en effet qu’un attaquant peut créer son propre composant matériel et modeler les parties du composant matériel à sa convenance pour perpé-trer des attaques.

Les hypothèses d’attaque que nous avons formulées ont été établies de façon empirique et subjective, à partir d’attaques référencées dans la littérature et à partir d’attaques élémen-taires que nous avons considérées plausibles. Évidemment, pour couvrir davantage d’attaques à partir de notre instance de modèle, il pourrait être souhaitable d’élargir notre spectre d’at-taques élémentaires. Cependant, l’enrichissement d’un tel modèle impacte obligatoirement sa lisibilité. Afin de garder une instance de modèle suffisamment intelligible et qui permette de représenter les attaques auxquelles nous nous intéressons, nous avons délibérément restreint le spectre des attaques élémentaires possibles. Par ailleurs, pour simplifier la représentation de notre modèle, nous introduisons la notion d’arc étiqueté epsilon (). Les arcs de ce type représentent des opérations effectuées de façon transparente par la plate-forme matérielle ou une suite d’actions élémentaires légitimes susceptibles d’être utilisées dans une attaque et que nous souhaitons mettre en relief pour des raisons de lisibilité. Le mécanisme qui contribue à la cohérence des mémoires caches dans le répartiteur illustre typiquement ces opérations auto-matiques. Pour maintenir à jour les mémoires caches dans le processeur, le répartiteur écoute