ERESI: UNE PLATE-FORME D'ANALYSE BINAIRE AU NIVEAU NOYAU par Anthony
DESNOS
, Julien
VANEGUE
, Sebastien
ROY
Résumé
ERESI est une interface pour l'analyse de code machine sur les systèmes d'exploitation UNIX. Nous présentons ses fonctionnalités
d'analyse statique et dynamique directement utilisable depuis un langage spécifique au domaine du reverse engineering, du debugging et de
l'audit de programmes sans les sources. Notre interface est organisée en sous-ensembles de commandes permettant d'exécuter des routines de
programmes en langage ERESI, ce qui facilite l'automatisation des taches de d'audit de vulnérabilités, d'analyse d'exécutable,
de vérification d'intégrité, ou de journalisation des événements internes des programmes. Les techniques de manipulation binaire
sur disque ou en mémoire exportées par ERESI permettent l'analyse d'environnements protégés tel un Linux compilé avec des protections
d'exécution de la mémoire (PaX) ou lors d'introduction d'aléa dans l'espace d'adressage (ASLR).
Dans cet article, nous montrons comment nous avons étendu notre analyse au mode superviseur en permettant d'inspecter l'état du noyau Linux en
temps réel, de le modifier et de le debugger, d'y injecter du code C compile, et de détourner les fonctions du noyau même si celle-ci ne sont pas exportées,
et ce directement dans le langage ERESI. Nous avons décline ces nouvelles fonctionnalités en deux nouveaux outils : Ke2dbg (Kernel Embedded ERESI
debugger) et Kernsh (The Kernel shell).
Biographie
Evolution du projet ELF shell depuis 2001, le projet ERESI a vu le
jour en 2007 où il a été présenté a la conférence BH Amsterdam. Anthony
Desnos a rejoint récemment le projet ERESI pour lequel il a développé des
fonctionnalités d'analyse du noyau Linux. Anthony est étudiant en Master
a l'université de Rennes spécialisé en sécurité informatique. Sébastien
Roy est développeur spécialise dans la programmation système et
l'intégration bas-niveau, après une expérience en sécurité des réseaux.
Julien Vanegue est ingénieur de l'EPITA spécialisé dans les systèmes
embarqués et étudiant chercheur a l'université Paris 7 dans le domaine
de l'analyse statique de programmes.