Publication trimestrielle du Laboratoire
d'analyse et d'architecture des systèmes du CNRS
En dépit des efforts conséquents qui ont été investis pour endiguer les problèmes de sécurité, nous constatons que les attaques ciblant les systèmes informatiques continuent régulièrement à se multiplier. Ces attaques vont aujourd'hui au delà de simples logiciels malveillants et impliquent de plus en plus des composants matériels, en particulier les contrôleurs d'entrées-sorties conçus pour soulager le processeur principal en gérant eux-mêmes, par exemple, les transferts avec la mémoire centrale, les périphériques ou le réseau. Il s'agit alors d'attaques par entrées-sorties. Ces attaques peuvent être menées sur des contrôleurs d'entrées-sorties délibérément conçus pour être malveillants, ou profiter de vulnérabilités présentes dans certains contrôleurs qui peuvent être modifiés par un pirate informatique afin d'y intégrer des fonctions malveillantes. Pour identifier exhaustivement les attaques par entrées-sorties, nous avons développé un modèle d'attaques qui considère les différents niveaux d'abstraction d'un système informatique. Nous nous sommes ensuite appuyés sur ce modèle d'attaques pour étudier cette classe d'attaques selon deux approches complémentaires: une analyse de vulnérabilités traditionnelle, consistant à identifier une vulnérabilité, développer des preuves de concept et proposer des contre-mesures, et une analyse de vulnérabilités par fuzzing sur les bus d'entrées-sorties. Pour cela, nous avons conçu et réalisé un outil, baptisé IronHide, capable de simuler l'ensemble des actions qu'un contrôleur malveillant peut effectuer dans un système informatique : capturer des données transitant sur les bus, émettre des requêtes valides ou invalides, etc.