Nous présentons ici REbus, un bus de communication libre facilitant la coopération entre outils d'analyse de sécurité.
En sécurité informatique, une multitude de programmes existent pour assister l'humain dans la résolution d'un problème. Ces programmes étant très spécialisés, il est souvent nécessaire d'en utiliser plusieurs pour un besoin donné.
Le besoin de les faire travailler de concert s'est d'abord fait ressentir sur nos propres outils. Par exemple, nous utilisons les outils suivants lors du reverse engineering de binaires :
Ce besoin s'est vite étendu à d'autres utilitaires tels que IDA, BinDi , gdb, strace, PEID, libmagic, ou plate-formes telles que cuckoo, FireEye MAS, IRMA et également à d'autres thématiques que l'analyse de binaires.
Dans le domaine de la découverte de services réseau/pentest, il est en e et intéressant de faire coopérer les outils suivants :
On peut également citer d'autres domaines pour lesquels des travaux d'analyse nécessitent l'utilisation conjointe de plusieurs outils : l'analyse forensique de disque dur ; l'analyse de certi cats ; l'analyse de code JavaScript.
Ce besoin de croiser les résultats de di érents outils pose plusieurs problèmes :
De plus, certaines tâches sont répétitives et gagneraient à être entièrement automatisées.
Nous présentons ici une réponse à ces problèmes, sous la forme d'un bus de communication, nommé REbus. Ce bus est utilisé par les programmes à faire collaborer. Ces programmes seront dénommés agents dans ce qui suit et la communication entre ces agents est appelée message. Les objectifs principaux de REbus sont décrits ci-dessous.
La reproduction et l'enregistrement des analyses. REbus facilite les expérimentations et le développement de nouvelles techniques d'analyse : les expériences peuvent être rejouées et les résultats sont consignés pour pouvoir être étudiés.
L'intégration facile de nouveaux agents. REbus fournit un ensemble de services pour ajouter un agent sans avoir à intervenir sur le bus lui-même ni sur les agents déjà présents, et ce même si ce nouvel outil doit interagir avec eux.
Un fonctionnement décentralisé. REbus privilégie l'exhaustivité de l'analyse et la simplicité des interfaces à l'e cience du traitement : chaque agent prend indépendamment la décision de travailler ou non sur les messages qui lui sont envoyés.
Trois modes d'utilisation. À partir du même ensemble d'agents, REbus peut être utilisé de trois façons :