L'ANSSI a présenté à la conférence CanSecWest 2011 ses travaux en matière de sécurité des logiciels embarqués dans les périphériques.

A l'occasion de la conférence CanSecWest 2011, qui s'est tenue à Vancouver du 9 au 11 mars 2011, l'ANSSI a montré comment il était possible de bloquer les attaques exploitant les vulnérabilités du logiciel embarqué d'un périphérique. Cette démonstration a été élaborée par trois de ses ingénieurs de la sous-direction Assistance Conseil et Expertise.

Publié le 17 Mars 2011 Mis à jour le 17 Mars 2011

Les preuves de concept d'attaques permettant la prise de contrôle d'équipements (ou la compromission de données) à partir de l'exploitation d'une vulnérabilité dans un logiciel embarqué d'un périphérique (carte réseau, contrôleur clavier, chipset) sont de plus en plus nombreuses. Un moyen de parer ces attaques est de vérifier en temps réel l'intégrité du code embarqué dans les périphériques d'une machine.

La présentation effectuée visait à montrer, par un exemple concret, qu'il est possible d'utiliser un moniteur externe (dans l'exemple le système d'exploitation) pour faire cette vérification.

Un prototype a ainsi permis de démontrer l'efficacité du dispositif qui :
-* effectue une vérification, à chaque cycle d'exécution, que le pointeur d'instruction du logiciel embarqué se situe bien dans une zone dans laquelle du code peut être exécuté ;
-* à partir d'un modèle de référence, effectue une vérification, à chaque cycle d'exécution, que le code exécuté n'a pas modifié ;
-* maintient, en permanence, d'une copie externe de la pile d'appel du firmware de la carte réseau, visant à identifier les modifications imprévues du graphe de contrôle de flot.

Dans l'exemple qui a été présenté, le système d'exploitation de la machine effectuait lui-même en permanence une vérification de l'intégrité du logiciel embarqué sur sa carte réseau. En tirant partie des capacités du matériel, ce dispositif permettait de détecter instantanément un éventuel problème de sécurité sans que les performances rendues par la carte réseau pour l'utilisateur ne soient significativement impactées.

Les développements effectués pour cette démonstration étaient cependant adaptés au modèle de carte réseau étudié et à l'interface qu'elle présente au système d'exploitation.

Run-time firmware integrity verification: what if you can’t trust your network card?