• Aucun résultat trouvé

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

2.1.2 Composants matériels

Conceptuellement, l’infrastructure matérielle du système informatique peut être décrite par un modèle similaire à celui représenté sur la figure 2.2. Les processeurs, le répartiteur, le leur de mémoire et ses mémoires, les contrôleurs d’entrées-sorties, les périphériques, le contrô-leur d’interruptions, et le gestionnaire de la plate-forme sont interconnectés au travers d’une architecture de communication. Dans ce modèle, certains composants matériels sont indispen-sables au fonctionnement du système informatique et d’autres sont optionnels. La présente sous-section décrit succinctement les principales fonctions de ces composants.

Contrôleur externe Périphériques Contrôleur de périphériques Contrôleur de réseaux Contrôleur interne Gestionnaire de la plate-forme Répartiteur d'entrées-sorties Processeur Périphériques Contrôleur de périphériques Mémoires Répartiteur d'entrées-sorties Répartiteur d'entrées-sorties Processeur Contrôleur de mémoire Contrôleur d'interruptions Contrôleur de périphériques Périphériques Élements obligatoires Élements optionnels Frontière du système Composant esclave

Composant maître et esclave Composant maître

Intérieur

Extérieur

FIGURE2.2 – Modèle d’infrastructure matérielle pour un système informatique

2.1.2.1 Processeur

Le processeur est un élément essentiel dans un système informatique. En effet, il constitue l’unité centrale de traitement (en anglais, central processing unit) du système. Les traitements opérés par ce composant matériel sont décrits par une séquence d’instructions qu’il récupère de la mémoire centrale, décode afin de déterminer leur type et leurs opérandes, puis exécute. Ces opérations sont effectuées de manière cyclique jusqu’à ce que le traitement se termine. Un système informatique peut contenir un ou plusieurs processeurs. Ils accèdent à la mémoire centrale au travers du répartiteur auquel ils sont reliés par un bus système. Ils se comportent généralement en composants maîtres sur ces bus.

2.1.2.2 Répartiteur

Le répartiteur désigne un composant matériel qui interconnecte les bus systèmes avec les bus locaux. Ainsi, il se comporte à la fois en composant maître et en composant esclave sur les bus. Dans son rôle d’esclave, il décode les transferts de données initiés par le processeur ou par les contrôleurs d’entrées-sorties et, dans son rôle de maître, les relaie à leurs destinataires. Il est chargé d’aiguiller correctement ces accès dans l’architecture de communication et il défi-nit, par là-même, les différents espaces d’adressage qui permettent aux composants matériels d’interagir entre eux.

2.1.2.3 Contrôleur de mémoire et mémoires associées

La mémoire centrale stocke toutes les instructions et les données des programmes qui sont exécutés par le processeur. Elle résulte de l’association, d’une part, du contrôleur de mémoire et, d’autre part, des circuits électroniques qui forment la mémoire et sur lesquels sont physi-quement stockées les données. Le contrôleur de mémoire agit comme un pont entre les bus

2.1. Infrastructure matérielle d’un système informatique

systèmes et les bus mémoires. En effet, il est chargé de traduire des requêtes de lecture ou d’écriture en mémoire en provenance d’un processeur ou des contrôleurs d’entrées-sorties vers le protocole de bus (par exemple, SDRAM, DDR SDRAM, etc.) implémenté par les barettes de mémoire utilisées dans le système informatique. Ainsi, le contrôleur de mémoire joue à la fois le rôle d’esclave sur les bus systèmes qui le relient au répartiteur et le rôle de maître sur le bus mémoire qui le connecte aux barettes de mémoire, agissant alors en esclaves.

2.1.2.4 Contrôleurs d’entrées-sorties

Les contrôleurs d’entrées-sorties désignent de façon générale tous les composants matériels de type pont. Leur dénomination tient de leurs fonctions : ils contrôlent différents bus sur les-quels transitent les entrées-sorties, c’est-à-dire les échanges entre le processeur et des systèmes externes tels que des périphériques ou d’autres systèmes informatiques. Nous distinguons plu-sieurs types de bus :

— les bus locaux (ou bus d’entrées-sorties) relient les contrôleurs d’entrées-sorties au ré-partiteur. Cette connexion au répartiteur est souvent directe. Il arrive, cependant, que celle-ci soit indirecte et se fasse au travers d’un autre contrôleur d’entrées-sorties ; — les bus d’extensions sont chargés de connecter le système informatique à des systèmes

matériels externes, en particulier à des périphériques.

Les contrôleurs d’entrées-sorties se distinguent principalement par les fonctions spécifiques qu’ils remplissent au sein du système informatique. Par exemple, lorsque leur rôle consiste à connecter les bus locaux (respectivement, les périphériques aux bus locaux), nous parlons spé-cifiquement de contrôleurs de bus locaux (respectivement de contrôleurs de périphériques) ; lorsque celui-ci est utilisé pour communiquer avec un autre système informatique au travers du réseau, nous parlons alors de contrôleur réseau ; etc. Ils sont généralement internes au sys-tème informatique. Dans ce cas, ils sont directement intégrés à la carte-mère par son fabricant ou ajoutés au système informatique par des connecteurs dédiés. À l’instar des contrôleurs em-barqués dans les cartes PCMCIA, Express Card ou Thunderbolt, d’autres contrôleurs d’entrées-sorties sont externes au système informatique.

2.1.2.5 Périphériques

La littérature désigne les périphériques comme des systèmes matériels auxiliaires (tels que les claviers, les souris, les imprimantes, les webcams, etc.) qu’il est possible de connecter au sys-tème informatique dans le but d’étendre ses fonctionnalités. Malheureusement, cette définition n’est pas suffisamment précise. En effet, les cartes d’extensions telles que les cartes réseau, les cartes graphiques peuvent être considérées comme des périphériques au même titre que les imprimantes, les scanners, les webcams, etc. Pour les dissocier, nous allons considérer dans la suite de ce manuscrit que la connexion d’un périphérique à un système informatique se fait nécessairement au travers d’un bus d’extension issu d’un contrôleur de périphérique. Nous distinguons généralement deux catégories de périphériques : ceux qui sont internes et ceux qui sont externes au système informatique. Les périphériques tels que les claviers, les souris et les imprimantes sont dits externes car ils se situent, en général, à l’extérieur du système informa-tique. À l’opposé, les périphériques tels que les disques dur internes ou les lecteurs de disques internes sont dits internes car ils sont situés à l’intérieur de l’ordinateur (serveur, ordinateur de bureau, ordinateur portable, etc.). La plupart des périphériques se comportent en compo-sants esclaves et répondent aux commandes initiées par les contrôleurs de périphériques. Ce-pendant, certains périphériques peuvent se comporter à la fois en composants maîtres et en

composants esclaves sur leurs bus. C’est le cas notamment des périphériques qui se connectent aux bus USB On-The-Go (OTG) et aux bus FireWire.

2.1.2.6 Contrôleur d’interruptions

Le contrôleur d’interruptions se charge de mettre en attente les demandes d’interruptions provenant des différents contrôleurs d’entrées-sorties et de les notifier aux processeurs qui vont immédiatement exécuter une routine d’interruption pour les traiter. Pour traiter les demandes d’interruptions qui ont lieu simultanément, il est possible de programmer le contrôleur d’in-terruptions pour affecter des priorités différentes à chaque contrôleur d’entrées-sorties. L’in-terruption de priorité supérieure est alors traitée la première pendant que l’inL’in-terruption de priorité plus faible est mise en attente. Du point de vue de l’architecture de communication, le contrôleur d’interruptions agit comme un pont qui interconnecte d’une part les lignes d’in-terruptions qui transportent les demandes d’ind’in-terruptions des contrôleurs d’entrées-sorties et d’autre part la ligne d’interruption qui notifie le processeur de ces demandes. Aujourd’hui, ces lignes d’interruptions sont intégrées aux bus locaux et aux bus systèmes.

2.1.2.7 Gestionnaire de la plate-forme

Le gestionnaire de la plate-forme regroupe un ensemble de composants matériels en charge de la configuration et la maintenance de la plate-forme matérielle. Sur les systèmes informa-tiques compatibles PC, les mémoires qui stockent le Basic Input/Output System (BIOS) et l’Unified Extensible Firmware Interface (UEFI) sont des exemples de tels composants matériels. D’autres technologies matérielles plus spécifiques aux plates-formes telle qu’Intel Active Management Technology (AMT)14 dans les chipsets Intel récents sont également considérées comme faisant partie du gestionnaire de la plate-forme. Il interagit avec les autres composants matériels du système informatique au travers du bus local sur lequel il agit soit en composant maître soit en composant esclave en fonction des composants matériels qui y sont intégrés.

Avec la conjonction de l’évolution des technologies de fabrication des circuits intégrés et de la nature du marché des systèmes électroniques, il est aujourd’hui possible d’intégrer ces com-posants matériels sur un ou plusieurs circuits intégrés relativement petits. Nous parlons alors spécifiquement de systèmes sur puce (en anglais, system on-chip). Dans cette sous-section, nous avons présenté les caractéristiques fonctionnelles de chacun de ces composants matériels indif-féremment de leur degré d’intégration. Ce travail de caractérisation est à l’origine du modèle d’attaques que nous décrivons dans la prochaine section (§2.2).