« Il s’est produit quelque chose de magique quand les experts en retro-ingénierie ont rédigé le plugin Volatility. »
-Le comité du Volatility Plugin Contest, au sujet de Browserhooks
Les chercheurs en logiciel malveillants d’ESET Peter Kálnai et Michal Poslušný ont reçu le 3e prix du Volatility Plugin Contest, pour leur outil Browserhooks. Les deux partenaires ont utilisé les connaissances développées en trackant les chevaux de Troie bancaires et les logiciels malveillants de type Man In The Browser (MITB) et documentés leurs méthodes, afin de créer un outil de détection spécialisé.
Cet outil, Browserhooks, constitue un module pour le Volatility Framework, l’une des plateformes de mémoire judiciaire en source ouverte les plus largement utilisées et regroupant la plus large communauté d’utilisateur.
La Volatility Foundation, l’organisme à but non lucratif derrière le Volatility Framework, commandite le concours annuel Volatility Plugin Contest. Ce concours vise à reconnaître les meilleurs outils juridiques basés sur la plateforme Volatility. Peter et Michal ont soumis leur plugin Browserhooks et le comité du concours leur a attribué la 3e place.
Afin de partager plus de détails avec notre lectorat, nous avons posé quelques questions à Peter et Michal.
Tout d’abord, messieurs, bravo pour votre succès! On peut dire que vous avez réussi au-delà de votre domaine d’expertise principal, n’est-ce pas?
Peter Kálnai :
Eh bien, oui et non.
D’un côté, il est vrai que notre outil Browsehooks a été pensé pour être utilisé au-delà de la recherche en logiciel malveillant. En revanche, le développement de Browserhooks aurait été impossible si nous n’avions pas obtenu une expertise importante en matière de rétro-ingénierie et de recherche sur les logiciels malveillants, tout particulièrement bancaires. Nous avons regardé en profondeur comment les attaques de logiciels bancaires malveillants fonctionnent, comment ceux-ci modifient le système et les traces qu’ils laissent derrière eux. D’ailleurs, nous avons présenté nos découvertes dans le cadre du Virus Bulletin 2017 et notre présentation a reçu un accueil chaleureux.
Michal Poslušný :
Nous avons mis au point un outil pratique pour suivre les changements très spécifiques dans les systèmes touchés, afin de faciliter nos recherches. Sachant que la question des logiciels malveillants bancaires intéresse au plus haut point les analystes de la sécurité dans le domaine financier, nous avons décidé d'améliorer notre outil afin que les experts en criminalistique numérique et la réponse aux incidents puissent facilement s'en servir.
Dans quelle mesure votre outil leur sera-t-il utile?
Michal :
Eh bien, il y a au moins les gens de Volatilité qui nous ont décerné le prix qui le trouvent utile... Imaginez les problèmes auxquels sont confrontés les étrangers dans une ville : sans l'aide des gens du pays, ils se perdent - à moins d’utiliser une solution de navigation (comme un GPS ou un plan des rues).
Sans un outil comme Browserhooks, les analystes de sécurité ont besoin de l'aide d’experts en rétro-ingénierie pour détecter une attaque de malware bancaire. Ils peuvent ainsi classer un incident et clore l'enquête en quelques clics.
Peter :
En d'autres mots, ceux qui n'ont pas de compétences en rétro-ingénierie peuvent désormais identifier les indicateurs d'attaques de logiciels malveillants bancaires. Ou, plus précisément, les incidents impliquant des chevaux de Troie bancaires appliquant des attaques Man-in-the-Browser.
S'il vous plaît, expliquez-nous en termes simples comment fonctionne votre outil Browserhooks.
Michal :
Browserhooks constitue une extension du plugin apihooks original. Ce plugin est une solution par défaut au sein de la plateforme Volatility Framework, permettant de détecter les changements d'appels à l'intérieur des fonctions exportées. Le problème avec le plugin apihooks est qu'il n'est pas spécifique aux logiciels malveillants, ce qui a plusieurs conséquences négatives. Plus important encore, il n'est pas en mesure de trouver des crochets très spécifiques mis en œuvre par les logiciels malveillants bancaires. De plus, il n'est pas optimisé pour la vitesse et conduit à un plus grand nombre de faux positifs.
Peter :
Avec les apihooks, certains crochets s’avérant légitimes peuvent être détectés. Ce n’est pas surprenant, puisqu’apihooks est un outil général. En revanche, Browserhooks est un outil spécialisé qui se concentre sur des crochets particuliers. Par exemple, grâce à nos recherches sur les logiciels malveillants bancaires, nous disposons d'un ensemble de points d'attaque connus utilisés par des familles de logiciels malveillants bancaires spécifiques. En conséquence, tous les crochets détectés par Browserhooks ont une pertinence médicolégale.
Michal :
Ou du moins, ils méritent une analyse approfondie. Bref, Browserhooks ne semble pas générer de faux positifs. Et il ne devrait pas y avoir de faux négatifs non plus. Ce que je veux dire, c’est nous avons essayé de ne passer à côté d’aucune méthode d'attaque existante. Nous mettrons à jour l'outil lorsque nous serons informés de nouvelles attaques; assurez-vous d'utiliser la version la plus récente de Browserhooks.
Peter :
Revenons-en à votre question sur le fonctionnement de Browserhooks: pour les détails techniques, je vous invite à consulter le code source de Browserhooks.
En termes non techniques, illustrons un cas où l’utilisation du plugin est utile. Imaginez qu'une pièce jointe de courrier électronique malveillante a été exécutée sur un terminal dans un réseau d'entreprise. Le système est maintenant compromis et le logiciel malveillant fonctionne et communique avec son serveur de commande et de contrôle.
Il n’y a que quelques indicateurs de compromis non spécifiques pour l’instant - les processus en cours d'exécution, le trafic réseau et peut-être quelques changements de registre comme un mécanisme de persistance...
Après la phase initiale, le cheval de Troie peut télécharger des composants supplémentaires - par exemple un module bancaire.
Par la suite, chaque fois que les victimes ouvrent leur navigateur, le cheval de Troie insère le module bancaire dans l'espace de traitement du navigateur et détourne - ou hameçonne - des fonctions particulières qui lui permettent de voler des informations sensibles sur les formulaires Web ou de modifier le contenu des pages bancaires sur Internet...
Et ces fonctions détournées servent d'indicateurs de compromis, non?
Peter :
Tout à fait. Et Browserhooks est conçu pour les reconnaître.
Michal :
Il convient de noter qu'en plus de construire une extension pour apihooks, nous avons implanté la prise en charge de la détection des crochets dans les modules 32 bits fonctionnant sur des systèmes 64 bits. Ceux-ci n'étaient pas supportés par le plugin apihooks original. Nous voulions donc aider à y remédier, puisque les navigateurs web 32-bit sont encore très répandus.
Oui, le comité sur la volatilité a souligné vos efforts supplémentaires dans cette direction. C'est peut-être un exemple de la façon dont une communauté open-source devrait fonctionner...
Peter :
Tout d’abord, nous devons vous dire que nous sommes très heureux que notre travail soit reconnu. Recevoir ce prix alors qu'il y avait tant de soumissions de haute qualité faisant preuve d'invention et d'effort... nous sommes fiers de notre travail!
Michal :
En ce qui concerne l'open source, nous croyons qu'il est logique de faire partie d'une communauté open source. En passant, ESET dispose de sa page officielle Github, regroupant divers outils liés aux enquêtes sur les logiciels malveillants.
Peter :
Oui, les nouvelles idées se répandent rapidement au sein des communautés open-source, ce qui aide à tenir les méchants à distance.
Permettez-moi d'ajouter un commentaire concernant les Browserhooks. Nous n’avons pas fait ces efforts dans le but d’obtenir un jour un prix. Notre principale motivation était de contribuer à la communauté; recevoir ce prix, qui est le bienvenu, n’est que la cerise sur le gâteau. Dans ce contexte, Browserhooks est naturellement un projet en cours et nous continuerons à le développer, principalement en y ajoutant la détection de nouvelles techniques d'attaque chaque fois que nous les découvrirons.
Les résultats complets et la description du plugin sont publiés dans ce récent article rédigé par les organisateurs.