Parsifal: une solution pour écrire rapidement des parsers binaires robustes et efficaces

Entrée en langue française / French entry Catégorie: Conférence avec actes
Auteur: Olivier Levillain
Date: janvier 2014
Série: Parsifal

Dans le cadre de ses activités d'expertise, le laboratoire sécurité des réseaux et protocoles de l'ANSSI est amené à étudier divers protocoles de communication. L'étude fine de ces protocoles passe par l'utilisation de parsers (ou dissecteurs) permettant d'analyser les messages binaires échangés lors d'une exécution du protocole. L'expérience a montré qu'il fallait disposer d'outils robustes et maîtrisés pour étudier et comprendre les comportements d'un protocole donné, en particulier pour en détecter et caractériser les anomalies. En effet, les implémentations disponibles sont parfois limitées (refus de certaines options), laxistes (acceptation silencieuse de paramètres erronés) ou fragiles (terminaison brutale du programme pour des valeurs inattendues, qu'elles soient licites ou non). Ce constat nous a conduit au développement d'outils, l'objectif étant de développer rapidement des dissecteurs robustes et performants. Ce document décrit brièvement Parsifal, une implémentation générique de parsers binaires reposant sur le pré-processeur camlp4 d'OCaml.

Afin de mieux comprendre un protocole et la manière dont il est utilisé in vivo, le laboratoire s'intéresse notamment à l'analyse de grands volumes de données issus de mesures réalisées sur internet. Le point de départ de nos travaux sur les parsers binaires est un ensemble important de traces réseau contenant des échanges suivant le protocole TLS (Transport Layer Security [3]) mises à disposition par l'EFF (Electronic Frontier Foundation) [1]. Ces mesures ont fait l'objet d'une publication [2]. L'analyse de ces données pose plusieurs difficultés. Tout d'abord, les fichiers à analyser représentent un volume conséquent (180 Go dans le cas de notre analyse de TLS). Ensuite, les informations à extraire sont contenues dans des messages de structures complexes. Enfin, il s'agit de données brutes, non filtrées, dont la qualité, voire l'innocuité, laisse parfois à désirer.

Publié dans les actes 25. Journées francophones des langages applicatifs (pages 193 à 194)

Présenté lors de la conférence JFLA à Fréjus, France en janvier 2014

BibTeX Document Présentation