Simple Science

La science de pointe expliquée simplement

# Informatique # Cryptographie et sécurité # Intelligence artificielle # Calcul et langage

Malware et Obfuscation de Code : Le Nouveau Front de Bataille

Explorer comment les techniques d'obscurcissement transforment le paysage des malwares avec des LLM.

Seyedreza Mohseni, Seyedali Mohammadi, Deepa Tilwani, Yash Saxena, Gerald Ndawula, Sriram Vema, Edward Raff, Manas Gaur

― 9 min lire


Obfuscation : Le truc Obfuscation : Le truc sournois des malwares détectés. l'obfuscation pour éviter d'être Comment les malwares utilisent
Table des matières

Dans le monde d'aujourd'hui, les programmes informatiques sont partout, et certains ne sont pas vraiment amicaux. Le malware, par exemple, c'est le méchant dans le monde du logiciel. Il est conçu pour s'introduire dans ton ordi, voler tes données ou faire toutes sortes de trucs pas sympas. Pour que les logiciels de sécurité aient plus de mal à les détecter, les développeurs de malware utilisent souvent une astuce appelée Obfuscation de code.

L'obfuscation de code, c'est comme un tour de magie. Tout comme un magicien rend les choses différentes et déroutantes pour garder le public dans le flou, l'obfuscation de code fait en sorte que le code original d'un programme ait l'air différent pour embrouiller les logiciels de sécurité. Comme ça, même si quelqu'un suspecte qu'un programme est un malware, il devient beaucoup plus difficile de le prouver.

Le Rôle des Modèles de Langage de Grande Taille (LLMs)

Mais maintenant, on a une nouveauté sur la scène : les Modèles de Langage de Grande Taille, ou LLMs pour faire court. Ce sont des systèmes IA avancés entraînés sur d'énormes quantités de texte et de code. Ils ont le potentiel de créer, modifier, et même obfusquer du code, presque comme un petit lutin utile dans un atelier de codage.

Imagine un scénario où au lieu qu'un développeur de malware bosse seul sur un problème d'obfuscation, il pourrait juste demander de l'aide à un LLM. Le LLM peut rapidement produire de nouvelles versions obfusquées du code, rendant plus facile pour les auteurs de malware de créer des malwares difficiles à détecter.

C'est Quoi MetamorphASM ?

Ça nous amène à un projet appelé MetamorphASM. Ce projet est essentiellement un cadre conçu pour tester à quel point les LLMs peuvent faire de l'obfuscation de code. Pense à ça comme un grand terrain de jeu où l'IA rencontre la ruse cybernétique !

Le projet MetamorphASM inclut un dataset connu sous le nom de MetamorphASM Dataset (MAD). Ce dataset se compose de 328,200 échantillons de code d'assemblage obfusqué, qui vise à analyser à quel point les LLMs peuvent créer et comprendre des structures de code compliquées et embrouillées.

Pourquoi l'Obfuscation de Code est Importante ?

Tu te demandes peut-être pourquoi les auteurs de malware se cassent même la tête avec l'obfuscation. La réponse se résume à un jeu de cache-cache. Les logiciels de sécurité s'appuient souvent sur l'identification de signatures de malware connues pour attraper les mauvais logiciels. Si le code du malware a l'air différent à chaque exécution, ça devient plus difficile pour les programmes de sécurité de le reconnaître. En gros, un bon vieux tour de magie garde le malware à l'abri des regards indiscrets.

Différentes Techniques d'Obfuscation de Code

Il y a plusieurs techniques pour l'obfuscation de code. Regardons-en quelques-unes, et ouais, ça implique un peu de magie de programmation :

1. Insertion de Code Mort

Imagine balancer plein de faux indices dans un roman policier. L'insertion de code mort, c'est exactement ça. Ça implique d'ajouter du code supplémentaire qui n'apporte rien de utile au programme. Ce code en trop peut être des instructions aléatoires qui n'ont aucune vraie utilité, rendant le programme original plus difficile à analyser. Donc, quand le logiciel de sécurité essaie de comprendre ce que fait le code, il se perd dans ce fouillis non fonctionnel.

2. Substitution de Registre

Ensuite, il y a la substitution de registre. Dans le monde de la programmation, les registres, c'est comme des boîtes à outils. Si tu changes les outils en essayant de réparer quelque chose, ça peut être dur de suivre ce que tu fais. De la même manière, dans la substitution de registre, le malware remplace les noms de registres par d'autres noms. Donc, si le code original utilise EAX (le grand constructeur), il pourrait le changer en EBX (l'assistant de confiance). La fonction reste la même, mais l'apparence change, ce qui complique la tâche des logiciels de sécurité pour pointer le problème.

3. Changement de Flux de Contrôle

Enfin, il y a le changement de flux de contrôle. Cette technique réorganise l'ordre des instructions dans un programme tout en gardant son fonctionnement intact. Imagine lire une recette qui change sans arrêt l'ordre des étapes. Un moment tu mélanges des ingrédients, et le suivant tu es en train de cuire le gâteau ! Ça rend difficile pour les systèmes de sécurité de comprendre ce que le malware fait, car le flux logique des opérations devient imprévisible et chaotique.

Le Défi pour les Logiciels de Sécurité

Les logiciels de sécurité, ou programmes antivirus, bossent dur pour garder nos appareils en sécurité. Cependant, au fur et à mesure que les auteurs de malware deviennent plus créatifs avec l'obfuscation, cette tâche devient de plus en plus difficile. Plus les techniques d'obfuscation sont complexes et variées, plus il est difficile pour les programmes de sécurité de les détecter.

C'est là qu'intervient le projet MetamorphASM. Il vise à étudier à quel point les LLMs peuvent gérer l'obfuscation. Si les LLMs peuvent apprendre à générer du code obfusqué, alors ils peuvent aussi être un outil pour les chercheurs en sécurité afin de contrer le malware.

Comment Ça Marche MetamorphASM ?

La première étape du projet MetamorphASM a consisté à rassembler un gros dataset de code d'assemblage. Ce code est récolté à partir de divers programmes logiciels, en ciblant spécifiquement ceux qui tournent sur des systèmes Windows. Une fois le dataset rassemblé, il a subi un processus de nettoyage pour enlever les éléments inutiles et garder seulement les sections de code précieuses.

Ensuite, le code d'assemblage a été obfusqué en utilisant les trois techniques décrites précédemment : insertion de code mort, substitution de registre, et changement de flux de contrôle. Ces extraits transformés ont ensuite été sauvegardés de manière structurée pour une analyse ultérieure.

Les LLMs Rencontrent l'Obfuscation de Malware

La prochaine étape du projet MetamorphASM a impliqué de tester comment différents LLMs s'en sortaient dans la génération de code obfusqué. Divers modèles ont été testés, certains étant open-source tandis que d'autres étaient propriétaires. L'objectif était de voir quels modèles étaient les mieux adaptés à cette tâche.

Les chercheurs ont créé des benchmarks pour évaluer les LLMs, prenant en compte à la fois des métriques automatiques et des revues manuelles. Ils ont mesuré à quel point les LLMs pouvaient générer du code obfusqué et vérifié à quel point ce code était similaire à la version originale. Les résultats ont révélé que certains LLMs, comme GPT-4o-mini, se démarquaient comme efficaces pour créer du code d’assemblage obfusqué.

Résultats Expérimentaux

Étonnamment, en mesurant la performance de ces modèles, on a constaté que tous n'étaient pas créés égaux. Certains LLMs excellaient dans certaines techniques d'obfuscation tout en peinant avec d'autres. Par exemple, alors qu'un modèle était excellent en insertion de code mort, il aurait pu faiblir en substitution de registre.

Les chercheurs ont souligné que l'efficacité de ces modèles variait considérablement en fonction de la technique spécifique utilisée. Ça signifiait que même si certains modèles pouvaient être de puissants généralistes, ils n'étaient pas toujours les meilleurs pour obfusquer dans chaque scénario.

Évaluation des Résultats

Pour évaluer la qualité de l'obfuscation effectuée par les LLMs, les chercheurs ont adopté deux méthodes principales : la Delta Entropy et la similarité cosinus. La Delta Entropy évalue à quel point la complexité du code original a changé, tandis que la similarité cosinus mesure à quel point le code généré ressemble à l'original.

Les résultats ont montré qu'il était essentiel de maintenir un certain niveau de Delta Entropy et de similarité cosinus. Si le code devenait trop complexe ou trop similaire, il pourrait soit perdre sa fonctionnalité, soit ne pas être suffisamment obfusqué pour tromper les logiciels de sécurité.

Implications pour la Cybersécurité

Avec les connaissances acquises grâce au projet MetamorphASM, les chercheurs en sécurité peuvent mieux comprendre comment les LLMs pourraient être utilisés à l'avenir pour le meilleur et pour le pire. D'une part, les LLMs peuvent aider à développer des techniques d'obfuscation avancées, ce qui signifie que les auteurs de malware pourraient créer des menaces plus sophistiquées. D'autre part, les chercheurs en sécurité peuvent utiliser la même technologie pour trouver des moyens efficaces de contrecarrer ces menaces.

Le but ultime de cette recherche est de bâtir un environnement numérique plus sûr. En comprenant les capacités des LLMs, les experts peuvent élaborer de meilleures méthodes de détection et des contre-mesures pour contrer les astuces d'obfuscation employées par les malwares.

Perspectives Futures

Alors que cette recherche continue de se développer, l'avenir semble prometteur tant pour les développeurs de malware que pour les experts en cybersécurité. La nature à double tranchant des LLMs signifie que même si ces modèles IA peuvent mener à des malwares excentriques et difficiles à détecter, ils peuvent également donner aux équipes de sécurité les moyens de lutter efficacement contre ces mêmes défis.

Alors que les chercheurs plongent plus profondément dans ce monde des LLMs et de l'obfuscation, qui sait quelles autres astuces sympas sortiront du chapeau de codage par la suite ? Peut-être qu'un jour, on pourrait même former une IA pour devenir un détective expert, débusquant ces malwares qui se cachent dans l'ombre, alors qu'ils pensent réaliser le tour de magie ultime.

Conclusion

Dans la bataille qui se poursuit entre les malwares et la cybersécurité, l'obfuscation de code sert de tactique astucieuse pour garder le malware caché. L'introduction des LLMs ajoute une nouvelle dimension à cette lutte, apportant à la fois des menaces et des outils pour les experts en sécurité. Grâce à des projets comme MetamorphASM, les chercheurs ouvrent la voie vers une meilleure compréhension de ces dynamiques, s'efforçant de rester un pas en avant dans le jeu numérique du chat et de la souris. À mesure que le monde se repose de plus en plus sur la technologie, cette bataille évoluera probablement, menant à des résultats passionnants, et peut-être drôles, dans le paysage toujours changeant de la cybersécurité.

Source originale

Titre: Can LLMs Obfuscate Code? A Systematic Analysis of Large Language Models into Assembly Code Obfuscation

Résumé: Malware authors often employ code obfuscations to make their malware harder to detect. Existing tools for generating obfuscated code often require access to the original source code (e.g., C++ or Java), and adding new obfuscations is a non-trivial, labor-intensive process. In this study, we ask the following question: Can Large Language Models (LLMs) potentially generate a new obfuscated assembly code? If so, this poses a risk to anti-virus engines and potentially increases the flexibility of attackers to create new obfuscation patterns. We answer this in the affirmative by developing the MetamorphASM benchmark comprising MetamorphASM Dataset (MAD) along with three code obfuscation techniques: dead code, register substitution, and control flow change. The MetamorphASM systematically evaluates the ability of LLMs to generate and analyze obfuscated code using MAD, which contains 328,200 obfuscated assembly code samples. We release this dataset and analyze the success rate of various LLMs (e.g., GPT-3.5/4, GPT-4o-mini, Starcoder, CodeGemma, CodeLlama, CodeT5, and LLaMA 3.1) in generating obfuscated assembly code. The evaluation was performed using established information-theoretic metrics and manual human review to ensure correctness and provide the foundation for researchers to study and develop remediations to this risk. The source code can be found at the following GitHub link: https://github.com/mohammadi-ali/MetamorphASM.

Auteurs: Seyedreza Mohseni, Seyedali Mohammadi, Deepa Tilwani, Yash Saxena, Gerald Ndawula, Sriram Vema, Edward Raff, Manas Gaur

Dernière mise à jour: Dec 24, 2024

Langue: English

Source URL: https://arxiv.org/abs/2412.16135

Source PDF: https://arxiv.org/pdf/2412.16135

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires