Analyse de code binaire pour la détection de vulnérabilités

De Ensiwiki
Aller à : navigation, rechercher


Analyse de code binaire pour la détection de vulnérabilités.

Labo Vérimag
Equipe DCS (Distributed and Complex systems)
Encadrants Marie-Laure.Potet@imag.fr,Laurent.Mounier@imag.fr

Thème général

Une partie importante des menaces qui pèsent sur la sécurité d'un système informatique réside souvent à l'intérieur même des programmes qui le constitue. En effet, des mauvaises pratiques de programmation peuvent introduire des vulnérabilités permettant à un attaquant de modifier le comportement initial du programme. Ainsi, un accès à un tableau mal controlé dans un logiciel peut conduire à l'exécution de code arbitraire (fourni par un utilisateur malveillant), et permettre à ce dernier de prendre le contrôle de la machine sur lequel ce logiciel s'exécute. La recherche et la correction de ces vulnérabilités représente donc un défi important pour les éditeurs de logiciels.


Compétences attendues

Ce sujet s'adresse à un étudiant intéressé par les problèmes de sécurité informatique, et disposés à travailler sur du code assembleur. Ce sujet convient bien pour des étudiants attirés par la compréhension fine des langages de programmation et de leur mécanisme de compilation.


Contexte du travail

Comme bien souvent une partie importante du code n'est pas disponible au niveau source (par exemple lorsque l'on utilise des librairies ou des composants tiers), il peut être nécessaire d'effectuer les recherches de vulnérabilités directement sur le code binaire. Pour cela on utilise des outils de désassemblage permettant de décompiler de manière plus ou moins précise le binaire.


Sujet

L'objectif de ce TER est de mener des expérimentations avec un environnement de désassemblage largement utilisé par les professionnels de la sécurité, IDA Pro. Il s'agira notamment de développer quelques analyses simples permettant de faciliter la recherche de vulnérabilités (détection d'accès à des tableaux, appels de fonctions vulnérables, etc.) et d'appliquer ces analyses à différents codes (dépendant des compilateurs et des optimisations) issus de base de vulnérabilités.


Résultats attendus

- compréhension des difficultés liées à l'analyse de code binaire à travers des exemples

- étude d'analyses permettant de retrouver les accès tableaux et implémentations de ces analyses dans IDA Pro.

- évaluation de la pertinence de ces analyses sur des programmes issus de bases de vulnérabilité.