Ce billet pour vous annoncer la sortie d’un outil libre de rétro-ingénierie de protocoles de communication : Netzob*. Il s’agit d’un projet sur lequel je travaille depuis plusieurs mois avec un collègue de travail (@Lapeluche), et qui vient combler un vide apparent en termes d’outils publics d’analyse de protocoles propriétaires.
Plusieurs cas d’usages sont visés à travers cet outil :
- le développement d’une implémentation libre d’un protocole de communication propriétaire (ou non documenté) ;
- l’analyse de sécurité (fuzzing “intelligent”, avec compréhension du protocole) sur des implémentations de protocoles propriétaires ;
- la simulation de trafic réaliste de protocoles de communication propriétaires dans le but de tester des produits tiers (pare-feux, IDS, …) ;
- l’analyse de flux de communication inconnus à la recherche de données sensibles ;
- etc.
La version actuelle (0.3.1) fonctionne sous Linux, et implémente déjà pas mal de fonctionnalités permettant de capturer des messages depuis différentes sources, d’identifier le format des messages (inférence du vocabulaire) ainsi que la machine à états d’un protocole (inférence de la grammaire).
Les protocoles visés par cet outil ne sont pas simplement des protocoles réseau. L’objectif est de supporter un maximum de canaux de communication, comme le montre la figure suivante. Actuellement, l’outil support les flux réseau, les fichiers PCAP, les flux inter-processus et les fichiers structurés.
Quelques slides présentent brièvement l’outil, les mécanismes et les algorithmes sous-jacents. Il existe également une petite vidéo présentant un panorama des fonctionnalité de Netzob (capture de données à partir d’un fichier, inférence du vocabulaire, construction de la grammaire puis simulation de trafic) sur un cas simple :
Les infos utiles :
- Le site web officiel : http://www.netzob.org
- La page de téléchargement : http://www.netzob.org/index.php?page=download
(*NETwork protocol modeliZatiOn By reverse engineering.)
