Identifier les logiciels malveillants en reniflant sa signature EM

L’expression « des allégations extraordinaires nécessitent des preuves extraordinaires » est le plus souvent attribuée à Carl Sagan, en particulier à sa série télévisée Cosmos. Sagan n’était probablement pas la première personne à émettre une telle hypothèse, et la série ne prétendait certainement pas qu’il l’était. Mais c’est le pouvoir de la télévision pour vous ; le terme est depuis devenu connu sous le nom de « Sagan Standard » et est un aphorisme pratique qui résume bien l’importance du scepticisme et de la pensée critique lorsqu’il s’agit de théories non prouvées.

Il se trouve aussi que c’est la première phrase qui nous est venue à l’esprit lorsque nous avons entendu parler de Obfuscation révélée : Exploitation des signaux électromagnétiques pour la classification des logiciels malveillants obscurcis, un article présenté lors de la Conférence annuelle sur les applications de sécurité informatique 2021 (ACSAC). Comme décrit dans la presse grand public, l’article détaille une méthode par laquelle les chercheurs ont pu détecter les virus et les logiciels malveillants s’exécutant sur un appareil Internet des objets (IoT) simplement en écoutant les ondes électromagnétiques qui en émanaient. Il suffisait de passer une sonde sur un gadget en difficulté, et la technique pouvait identifier ce qui l’affectait avec une précision de près de 100 %.

Cela nous semble certainement être des revendications extraordinaires. Mais qu’en est-il des preuves ? Eh bien, il s’avère que creuser un peu plus profondément dans l’histoire en a révélé beaucoup. Non seulement le document a été mis à disposition gratuitement grâce aux sponsors de l’ACSAC, mais l’équipe derrière lui a publié tout le code et la documentation nécessaires pour recréer leurs découvertes sur GitHub.

Malheureusement, il semble que nous ayons temporairement égaré l’oscilloscope USB Picoscope 6407 de 10 000 $ à 1 GHz que leur logiciel est conçu pour prendre en charge, nous ne sommes donc pas en mesure de recréer l’expérience dans son intégralité. Si vous le croisez, n’hésitez pas à nous laisser un message. Mais en attendant, nous pouvons toujours parcourir le processus et essayer de séparer les faits de la fiction dans le style classique de Sagan.

Cuire un Malware Pi

La meilleure façon de comprendre ce dont cette technique est capable, et plus encore ce qu’elle est ne pas capable, est d’examiner le banc d’essai de l’équipe. En plus du Picoscope 6407 susmentionné, la configuration matérielle comprend un amplificateur Langer PA-303 et une sonde Langer RF-R H-Field qui a été posée sur le processeur BCM2837 d’un Raspberry Pi 2B. La sonde et l’amplificateur étaient connectés au premier canal de l’oscilloscope comme on pouvait s’y attendre, mais il est intéressant de noter que le deuxième canal était connecté au GPIO 17 sur le Pi pour servir de signal de déclenchement.

Comme expliqué dans le Wiki du projet, l’étape suivante consistait à installer intentionnellement divers rootkits, logiciels malveillants et virus sur le Raspberry Pi. Un programme wrapper a ensuite été utilisé qui déclencherait d’abord le Picoscope sur la broche GPIO, puis exécuterait le logiciel spécifique en cours d’examen pendant une durée donnée. Ce processus a été répété jusqu’à ce que l’équipe ait amassé des dizaines de milliers de captures pour divers logiciels malveillants, notamment bashlite, mirai, gonnacry, keysniffer, et maK_it. Cela leur a donné des données sur ce à quoi ressemblait la sortie électromagnétique (EM) du SoC du Pi lorsque son système d’exploitation Linux avait été infecté.

Mais surtout, ils ont également effectué la même acquisition de données sur ce qu’ils ont appelé un ensemble de données « bénignes ». Ces captures ont été effectuées alors que le Raspberry Pi fonctionnait normalement et exécutait des outils qui seraient courants pour les applications IoT. Les signatures EM ont été collectées pour des programmes et des commandes bien connus tels que mpg123, wget, tar, more, grep, et dmesg. Ces données ont établi une base de référence pour les opérations normales et ont donné à l’équipe un contrôle avec lequel comparer.

Calculer les chiffres

Comme expliqué dans la section 5.3 du document, Analyse et prétraitement des données, les captures EM brutes doivent être nettoyées avant que des données utiles puissent être extraites. Comme vous pouvez l’imaginer, la sonde capte une cacophonie de bruit électronique à une telle proximité. L’objectif de l’étape de prétraitement est de filtrer autant de bruit de fond que possible et d’identifier les fluctuations et les pics de fréquence révélateurs qui correspondent aux programmes individuels exécutés sur le processeur.

Les spectrogrammes nettoyés résultants ont ensuite été soumis à un réseau de neurones conçu pour classer les signatures EM. De la même manière qu’un système de vision par ordinateur est capable de classer des objets dans une image en fonction de son ensemble d’entraînement, le logiciel de l’équipe a démontré une capacité étonnante à déterminer quel type de logiciel s’exécutait sur le Pi lorsqu’il était présenté avec une signature EM capturée.

Lorsqu’on lui a demandé de classer une signature comme rançongiciel, rootkit, DDoS ou bénigne, le réseau de neurones avait une précision supérieure à 98 %. Une précision similaire a été obtenue lorsque le système a été chargé d’explorer et de déterminer le type spécifique de logiciel malveillant en cours d’exécution. Cela signifiait que le système était non seulement capable de détecter si le Pi était compromis, mais pouvait même faire la différence entre un gonnacry ou bashlite infection.

La précision a pris un coup considérable lors de la tentative d’identification du binaire spécifique en cours d’exécution, mais le système a quand même géré un respectable 82,28 %. Peut-être le plus impressionnant, l’équipe revendique une précision de 82,70 % lorsqu’elle tente d’identifier différents types de logiciels malveillants, même lorsque des tentatives ont été faites pour obscurcir activement leur exécution, par exemple en les exécutant dans un environnement virtualisé.

Attentes réalistes

Bien que les résultats de l’expérience soient certainement convaincants, il est important de souligner que tout cela s’est déroulé dans des conditions contrôlées et idéales. À aucun moment dans le document, il n’est affirmé que cette technique, du moins dans sa forme actuelle, pourrait en fait être utilisée dans la nature pour déterminer si un ordinateur ou un appareil IoT a été infecté par un logiciel malveillant.

Au minimum absolu, les données devraient être collectées sur un éventail beaucoup plus large d’appareils informatiques avant même que vous puissiez dire si cette idée a une application pratique en dehors du laboratoire. De leur côté, les auteurs disent avoir choisi le Pi 2B comme une sorte d’appareil « passe-partout » ; croyant que son processeur ARM 32 bits et son système d’exploitation Linux vanille offraient un substitut raisonnable à un gadget IoT générique. C’est une hypothèse assez logique, mais il y a encore beaucoup trop de variables en jeu pour dire que l’une des signatures EM collectées sur le banc d’essai Pi serait applicable à un routeur sans fil aléatoire retiré de l’étagère.

Pourtant, il est difficile de ne pas repartir impressionné. Bien que les chercheurs n’aient peut-être pas créé l’équivalent informatique du Star Trek tricordeur médical, un appareil que vous pouvez simplement agiter au-dessus du patient pour voir instantanément par quelle maladie de la semaine il a été frappé, il semble certainement qu’ils soient extrêmement proches.