Notre contribution à la communauté de la sécurité de l'information et des systèmes d'information

Botconf 2017 – day 1

Les équipes de CONIX étant bien représentées cette année à la Botconf 2017, nous vous proposons un suivi jour par jour de l’événement à travers des résumés des conférences qui ont marqué nos collaborateurs. Cette année, la Botconf se déroule à Montpellier, les conférences ayant lieu au Corum.

RetDec: An Open-Source Machine-Code Decompiler  par Jakub Křoustek, Peter Matula et Petr Zemek :

Ces deux intervenants tchèques de Avast interviennent sur un projet interne : RetDec, aka Retargetable Decompiler, un décompilateur de code machine.

L’avantage de la décompilation sur le désassemblage est d’avoir un résultat non dépendant de l’architecture en question. Le résultat désassemblé sera toujours différent du code originel, mais cela permet une analyse plus aisée.
Ce genre d’outil peut être utilisé pour différents buts : analyse de malwares, recherche de vulnérabilités, reverse engineering, analyse de shellcode, etc.

Les outils du genre actuellement disponibles sur le marché sont HexRays, Hopper, Snowman, etc.

La grande difficulté de la décompilation est que les compilateurs fonctionnent « avec pertes » afin d’optimiser le code machine produit . De ce fait, la plupart des décompilateurs sont ciblés pour une architecture matérielle donnée.

RetDec a pour objectif de répondre à ce dernier point faible, et donc, être un décompilateur générique de code machine, auquel il est aisé d’ajouter une architecture source. Le projet commencé en 2011 supporte maintenant plusieurs architectures, plusieurs formats de fichiers et plusieurs compilateurs et est assez mature pour être publié.

Retdec fonctionne en 3 phases : preprocessing -> core -> backend.

  • preprocessing : produit une image indépendante du format de fichier originel (PE, ELF, MachO etc.) utilisable par le cœur de RetDec. Cette phase utilise éventuellement les informations de debug si disponibles. Elle permet également de détecter des packers de malware, et en bonus de passer des règles yara sur le binaire.
  • core : cette étape complexe en plusieurs phases utilise les frameworks LLVM et Capstone pour produire l’interprétation intermédiaire (IR) de LLVM. Une des difficultés rencontrées est de convertir des instructions complexe en code C. Le parti pris est de retranscrire les dites instructions assembleur afin de ne pas complexifier le code C généré.

     

  • backend : cette phase convertit le code intermédiaire au format LLVM en un AST (Abstract Syntax Tree) utilisable pour générer un code C équivalent ainsi que le graphe de flot de contrôle.

RetDec sera publié sous licence MIT après la conférence Botconf 2017.

Use Your Enemies: Tracking Botnets with Bots par Jarosław Jedynak et Paweł Srokosz :

La seconde conférence de Botconf 2017 qui a marqué nos collaborateurs est menée par deux intervenants du CERT.PL, qui nous ont détaillé une nouvelle technique mise au point afin de comprendre les botnets. Cette technique consiste à se faire recruter dans le botnet pour directement en recevoir les ordres. Cela passe par une réimplémentation du protocole réseau utilisé par les bots afin de leurrer les C&C pour leur envoyer les informations de contrôle des bots.

Leur outil, nommé mtracker, qui fait partie du projet SISSDEN, vise à émuler un malware en le réimplémentant via divers scripts.

L’approche jusqu’à présent était plutôt d’exécuter une instance de ce même malware dans une sandbox ou un environnement maîtrisé. Mais, cette solution a des implications légales: participation à des campagnes de spam ou de DDoS etc. L’émulation via réimplémentation résout ces problèmes partiellement.

Nos camarades du CERT.PL ont ainsi utilisé mtracker pour surveiller Nymaim, le botnet bancaire. La première difficulté a été de se faire recruter dans le botnet. Cela nécessite de connaitre la configuration d’un sample de ce botnet. Cette étape est uniquement possible en analysant le malware de manière dynamique pour être efficace. Elle et est menée en utilisant Ripper avec la sandbox Cuckoo. La seconde difficulté est de réimplémenter les protocoles réseau utilisés par les bots afin de communiquer de manière efficace avec le serveur de contrôle commande (C2).

Une des fonctionnalités des botnets est de distribuer des mises à jour ou de distribuer d’autres malwares. Ils ont ainsi pu collecter des samples et les réinjecter dans leur système afin d’améliorer la surveillance de ce botnet. Cette configuration est intéressante car elle permet d’obtenir une amélioration continue de la couverture de la surveillance des botnets le tout de manière relativement automatisée.

Les botnets qui ont été surveillés de cette façon incluent Nymaim, Emotet, Smokeloader, Chthonic, Necurs.

botconf 2017 logo

By | 2017-12-06T18:48:13+00:00 06/12/2017|Non classé|