parsifal

Entrée développée en OCaml / OCaml entry Catégorie: Logiciel
Auteur: Olivier Levillain
Date: 2011
Série: Parsifal

Disséquer (parser) des contenus binaires de manière efficace et robuste est un défi que l'on rencontre fréquemment en développement logiciel, que ce soit pour interpréter les messages d'un protocole réseau ou pour interpréter le contenu d'un fichier. Comme le montrent les vulnérabilités répétées touchant des projets tels que Wireshark ou les bibliothèques de formats d'images, le problème est loin d'être simple.

Dans le cadre de travaux à l'ANSSI, nous avons développé parsifal, un outil permettant d'écrire rapidement des parsers robustes et fiables. Pour cela, l'idée est de générer automatiquement une bonne partie du code des dissecteurs.

parsifal a surtout vocation à écrire des outils d'analyse de protocoles réseau ou de formats de fichier. Initialement développé pour analyser des jeux de données SSL/TLS et des certificats X.509, d'autres travaux de recherche à l'ANSSI ont mené à l'écriture d'autres dissecteurs, parfois incomplets : BGP, PNG, TAR, PE, UEFI, DNS, OpenPGP...

Plusieurs publications concernant Parsifal sont disponibles dans la série du même nom

Projet démarré en 2011 (participation en tant que développeur principal)

Projet sur GitHub