❌

Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.

Chaos RAT - Le malware open-source qui ravage Linux et Windows

Bon si vous pensiez que votre systĂšme Linux adorĂ© Ă©tait Ă  l’abri des malwares, c’est ratĂ© comme votre derniĂšre coup de cheveux ! Chaos RAT est en effet en train de faire des siennes partout et franchement, c’est pas joli joli. Ce petit salopard existe depuis 2017 et il continue pourtant de faire des dĂ©gĂąts en 2025. Et le pire, c’est qu’à la base c’était un outil tout Ă  fait lĂ©gitime !

Comment les malwares se cachent des antivirus

Pour la majoritĂ© des utilisateurs, un antivirus scanne un fichier et dĂ©tecte la prĂ©sence de code malveillant grĂące aux signatures de dĂ©tection. Si cela fonctionne encore, aujourd’hui, la complexitĂ© des malwares fait que les antivirus doivent intĂ©grer plusieurs dĂ©fenses.

En effet, les techniques d’offuscation avancĂ©es utilisĂ©es par les trojans et autres malwares ont pour but de cacher le code malveillant, de retarder l’analyse par les antivirus ou les analystes, et de contourner les systĂšmes de dĂ©tection.
Le but est donc de se cacher des antivirus pour échapper aux détections.

Dans ce guide, je passe en revue les méthodes et techniques utilisées par les logiciels malveillants pour se dissimuler ou tromper les antivirus.

Chiffrement et encodage

Pour masquer les Ă©lĂ©ments les plus rĂ©vĂ©lateurs d’un malware, les attaquants chiffrent ou encodent massivement le code et les donnĂ©es embarquĂ©es. Les chaĂźnes de texte en clair sont rarissimes dans les malwares modernes : adresses URL de C2, noms d’API Windows, chemins de fichiers
 tout est souvent cachĂ© derriĂšre des encodages ou un chiffrement custom.
Le but est de brouiller le code afin qu’aucune partie rĂ©vĂ©latrice d’un code malveillant ne soit pas facilement dĂ©tectable.
Par exemple, un trojan comme Pikabot remplace les noms de fonctions et variables par des chaĂźnes alĂ©atoires ou codĂ©es, et chiffre ses chaĂźnes de caractĂšres sensibles (telles que les URLs de commande & contrĂŽle) qui ne sont dĂ©chiffrĂ©es qu’au moment de leur utilisation. De mĂȘme, les documents Office piĂ©gĂ©s (macros VBA) ou scripts malveillants insĂšrent des chaĂźnes hexadĂ©cimales ou du Base64 Ă  la place de commandes lisibles pour Ă©viter les dĂ©tections simples.

L’Encodage Base64 est une mĂ©thode trĂšs rĂ©pandue d’obfuscation de commandes script. Par exemple, PowerShell permet d’exĂ©cuter un code encodĂ© en Base64 via le paramĂštre -EncodedCommand.
Les malwares en abusent pour cacher des instructions malveillantes dans un long texte illisible. Plusieurs campagnes ont utilisĂ© des commandes PowerShell encodĂ©es en base64 pour dissimuler les charges utiles. Un cas courant : un downloader lance PowerShell avec une commande encodĂ©e qui va Ă  son tour tĂ©lĂ©charger et exĂ©cuter du code distant. Voici un exemple illustratif d’une commande PowerShell chiffrĂ©e en Base64.

Les virus ou trojan Powershell en base64

CĂŽtĂ© JavaScript, on retrouve des approches similaires. Le trojan Astaroth (vers 2019–2020, toujours actif en 2022) utilisait du code JScript obfusquĂ© et alĂ©atoire dans des fichiers XSL : son script malveillant construisait les chaĂźnes de caractĂšres critiques via String.fromCharCode au lieu de les Ă©crire en clair, Ă©vitant ainsi d’exposer des mots-clĂ©s suspects (noms de processus, commandes). De plus, Astaroth employait une fonction de randomisation pour modifier lĂ©gĂšrement son code Ă  chaque exĂ©cution, si bien que la structure du script variait constamment, bien que sa finalitĂ© reste la mĂȘme. Ces techniques combinĂ©es (gĂ©nĂ©ration dynamique de strings et permutation alĂ©atoire) rendaient le JScript malveillant unique Ă  chaque run, contournant les signatures et retardant l’analyse manuelle.

VBS avec code offusqué

Au-delĂ  de l’encodage, les malwares chiffrent leur charge utile binaire ou certaines portions de code avec des clĂ©s secrĂštes. Un schĂ©ma classique consiste Ă  XORer chaque octet du shellcode ou de la DLL malveillante avec une clĂ© d’un octet ou plus (parfois stockĂ©e dans le code, parfois dĂ©rivĂ©e de l’environnement du systĂšme infectĂ©).
Le XOR est trivial à implémenter et a un effet de masquer tout motif en clair dans le binaire.
D’autres utilisent des algorithmes symĂ©triques plus forts (RC4, AES) pour chiffrer leur payload, empĂȘchant toute analyse statique tant que le malware n’a pas effectuĂ© la dĂ©cryption en mĂ©moire.

À lire : Virus PowerShell

En somme, chiffrement et encodage sont devenus la norme dans les malwares rĂ©cents : les concepteurs ajoutent des couches de chiffrement sur les composants (configuration, charge finale, chaĂźnes, etc.) pour que les dĂ©fenses ne puissent y reconnaĂźtre ni motif ni signature tant que le malware n’est pas activement en train de s’exĂ©cuter.

Trojan.VBS offusqué dans un fichier HTA

Packers et Crypters

Les packers et crypters sont deux outils majeurs utilisĂ©s dans l’obfuscation des malwares, en particulier pour masquer le code binaire exĂ©cutable et ainsi tromper les antivirus.

Un crypter chiffre tout ou partie du code malveillant (souvent la « payload Â») Ă  l’aide d’un algorithme (XOR, AES, RC4, etc.) et l’encapsule dans un stub (petit programme) capable de le dĂ©chiffrer et de l’exĂ©cuter en mĂ©moire.
L’obhectif est de rendre le fichier indĂ©tectable statiquement, car ce dernier ne contient aucune chaĂźne suspecte, pas de signature reconnaissable.

Un packer compresse ou chiffre un exĂ©cutable, puis le combine avec un stub qui le dĂ©compresse ou dĂ©chiffre au moment de l’exĂ©cution.
Son objectif est d’empĂȘcher l’analyse statique et retarder la rĂ©tro-ingĂ©nierie.
Ils sont habituellement utilisĂ©s par les malwares pour se faire passer pour des logiciels lĂ©gitimes (mĂȘme hash modifiĂ© Ă  chaque fois).
Les antivirus tentent de les “dĂ©packer” ou de les dĂ©tecter via heuristiques comportementales.
FrĂ©quemment utilisĂ©s par les malwares pour se faire passer pour des logiciels lĂ©gitimes (mĂȘme hash modifiĂ© Ă  chaque fois).
Notez qu’il existe des packers lĂ©gitimes, par exemple, UPX (Ultimate Packer for eXecutables) est un packer open-source qui principalement vise Ă  compresser les exĂ©cutables pour en rĂ©duire la taille. Il est trĂšs utilisĂ© par les Setup des applications pour proposer exĂ©cutable auto-extractible.
PECompact est un packer commercial utilisĂ© aussi pour les Setup, car il embarque une fonctionnalitĂ© d’offuscation pour protĂ©ger la logique mĂ©tier.
Il est donc apprĂ©ciĂ© des concepteurs de malwares (notamment keyloggers, RATs) parce qu’il rend la rĂ©tro-ingĂ©nierie plus difficile ayant des fonctionnalitĂ©s intĂ©grĂ©es d’anti-debug.
Il s’agit souvent de version de PECompact modifiĂ©e.

Notez que dans l’écosystĂšme des logiciels malveillants, certains groupes sont spĂ©cialisĂ©s dans la vante de crypters et packers, dit FUD (Fully Undetectable).

Code polymorphe

Un malware polymorphe gĂ©nĂšre du code diffĂ©rent Ă  chaque infection ou exĂ©cution, tout en prĂ©servant sa logique malveillante d’origine. Cela se fait via un moteur polymorphique qui modifie certaines parties du programme (ex: clĂ©s de chiffrement, ordres des instructions, registres utilisĂ©s) de façon alĂ©atoire ou variable.
Chaque instance du malware possÚde ainsi une signature unique, rendant la détection par empreintes statiques trÚs difficile.

Un exemple classique est le ver Storm qui altĂ©rait son code Ă  chaque nouvelle infection pour tromper l’antivirus.
Plus rĂ©cemment, des trojans comme Pikabot intĂšgrent ce polymorphisme : Ă  chaque installation, Pikabot gĂ©nĂšre une nouvelle version de lui-mĂȘme en modifiant ses routines critiques (par ex. les fonctions de chiffrement ou de connexion rĂ©seau) afin de produire des empreintes diffĂ©rentes Ă  chaque fois.

Code métamorphe

Encore plus sophistiquĂ©s, les malwares mĂ©tamorphes réécrivent intĂ©gralement tout ou partie de leur code Ă  chaque propagation, sans mĂȘme conserver de dĂ©chiffreur polymorphe fixe.

Le virus Win32/Simile et le cĂ©lĂšbre virus Zmist (2000) illustrent ce concept extrĂȘme oĂč le code Ă©tait auto-rĂ©organisĂ© de maniĂšre quasi alĂ©atoire. Dans les annĂ©es 2020, peu de malwares grand public utilisent un mĂ©tamorphisme complet (coĂ»teux en ressources), mais on en retrouve des Ă©lĂ©ments. Par exemple, Pikabot est capable de transformer son propre code Ă  la volĂ©e en mĂ©moire : rĂ©ordonner les instructions, modifier les flux de contrĂŽle ou remplacer des algorithmes par des Ă©quivalents fonctionnels, rendant sa signature trĂšs mouvante. Ce bot intĂšgre Ă©galement des algorithmes de mutation de code qui réécrivent certaines parties Ă  chaque exĂ©cution (inversions de conditions, boucles, etc.), pour qu’aucun Ă©chantillon n’est identique Ă  un autre. De telles mutations dynamiques produisent un code statistiquement indĂ©tectable par des scanners basĂ©s sur des motifs fixes.

En résumé, polymorphisme et métamorphisme fournissent aux malwares un camouflage évolutif : chaque exemplaire devient une nouvelle créature inconnue des bases antivirales.

Injection en mémoire et attaques sans fichier

Le malware injecte du code dans des processus légitimes (ex: explorer.exe, svchost.exe) pour masquer son activité.
Cela est fortement utilisé notamment dans les trojans bancaires ou les RATs (Remote Access Trojans).
De plus, cela permet de contourner des protections firewall, car bien souvent, les processus légitimes de Windows ont des rÚgles moins restrictives.

ZAccess : Injection Processus

Mais, de plus en plus de malwares adoptent des attaques “fileless” (sans fichier), s’exĂ©cutant exclusivement en mĂ©moire pour Ă©chapper aux scans de fichiers sur disque.
PlutĂŽt que d’écrire un binaire malveillant identifiable sur le disque dur, ces malwares injectent leur code directement dans la mĂ©moire d’un processus lĂ©gitime du systĂšme. Cette technique permet de ne laisser que trĂšs peu de traces : pas de fichier malveillant Ă  analyser, et un code malveillant qui “vit” au sein d’un processus approuvĂ©, ce qui complique Ă©normĂ©ment la dĂ©tection. Par exemple, PyLoose (2023) est un malware fileless Ă©crit en Python qui a chargĂ© directement un mineur de cryptomonnaie (XMRig) en mĂ©moire sans jamais dĂ©poser d’exĂ©cutable sur le disque.

À lire :

Chargeurs multi-étapes et exécution de code à la volée

PlutĂŽt que de livrer tout le code malveillant en une fois, les attaquants prĂ©fĂšrent dĂ©sormais des infections en plusieurs Ă©tapes. Un loader (chargeur) initial relativement lĂ©ger est dĂ©posĂ© sur la machine victime ; son rĂŽle est de prĂ©parer l’exĂ©cution de la charge finale (payload) qui reste chiffrĂ©e, distante ou fragmentĂ©e tant que le loader n’a pas fait son travail. Cela permet de contourner nombre de dĂ©tections statiques, car le loader seul peut paraĂźtre anodin ou inconnu, tandis que la charge malveillante principale n’est dĂ©voilĂ©e qu’au dernier moment, souvent uniquement en mĂ©moire.

Le concept de “code Ă  la volĂ©e” recouvre aussi l’utilisation de langages de script et du code auto-modifiant. Par exemple, de nombreux malware en PowerShell, JavaScript ou VBA gĂ©nĂšrent ou tĂ©lĂ©chargent du code au moment de l’exĂ©cution plutĂŽt que de l’inclure en dur. PowerShell est notoirement utilisĂ© dans des attaques fileless : un document malveillant va lancer une commande PowerShell qui Ă  son tour tĂ©lĂ©charge du code distant en mĂ©moire et l’exĂ©cute immĂ©diatement.
Pour éviter la détection, ce code PowerShell est fortement obfusqué (variables nommées aléatoirement, concaténations bizarres, encodage en base64 comme vu précédemment, etc.) afin de ne pas révéler en clair les URL ou les commandes dangereuses.

Par exemple : Trojan LNK, Trojan.VBS et Malware PowerShell : Exemple d’une campagne visant la France

Trojan PowerShell

Stéganographie

La stĂ©ganographie, dans le contexte des malwares, est l’art de cacher du code malveillant ou des donnĂ©es utiles Ă  l’attaque Ă  l’intĂ©rieur de fichiers apparemment inoffensifs, souvent des images, vidĂ©os, audios ou mĂȘme documents bureautiques. Contrairement au chiffrement (qui cache le sens), la stĂ©ganographie cache l’existence mĂȘme des donnĂ©es.

L’objectif de l’attaquant est :

  • Éviter la dĂ©tection par antivirus (aucune charge utile visible dans les fichiers exĂ©cutables).
  • Passer les firewalls et filtres rĂ©seau (un fichier JPG passe mieux qu’un EXE ou un .dll).
  • Cacher des commandes (C2), des configurations, des chargeurs ou du code.
  • Contourner la surveillance des rĂ©seaux et des hĂŽtes.

Par exemple, des malwares reçoivent leurs instructions sous forme de fichiers « bĂ©nins Â» (mĂȘme publiĂ©s publiquement sur Reddit, GitHub, Twitter
) : Cela sert Ă  rĂ©cupĂ©rer des URL, des configurations, ou des scripts obfusquĂ©s.
Le botnet extrait une chaĂźne cachĂ©e dans l’image (texte invisible, exĂ©cution conditionnelle).

Les macros peuvent charger des images ou documents qui contiennent du code caché.
Le script PowerShell lit un fichier image téléchargé, extrait des données binaires depuis des pixels ou des métadonnées, les déchiffre, puis les injecte en mémoire.

Cela rend la détection de malware difficile pour plusieurs raisons :

Invisible à l’Ɠil nu et aux antivirus classiques.

  • Les outils de sĂ©curitĂ© traditionnels ne vĂ©rifient pas les images ligne par ligne pour y chercher du code.
  • La charge utile est dissociĂ©e du malware, donc la dĂ©tection du fichier malveillant ne permet pas de bloquer les commandes Ă  venir.
  • Combine souvent obfuscation + chiffrement + stĂ©ganographie pour maximiser la furtivitĂ©.

Conclusion

De 2020 Ă  2024, les techniques d’obfuscation des malwares ont atteint un niveau de complexitĂ© sans prĂ©cĂ©dent. Polymorphisme et mĂ©tamorphisme produisent des variantes inĂ©dites Ă  la volĂ©e, le chiffrement omniprĂ©sent des codes et donnĂ©es cache les intentions malveillantes, l’injection furtive en mĂ©moire permet d’opĂ©rer depuis l’ombre des processus lĂ©gitimes, et des loaders multi-Ă©tapes sophistiquĂ©s dĂ©ploient les charges utiles de façon conditionnelle et indĂ©tectable.
Du cĂŽtĂ© du dĂ©fenseur, cela implique de multiplier les couches de protection (analyse comportementale, dĂ©tection en mĂ©moire, sandbox Ă©vasion-aware, etc.) et de constamment mettre Ă  jour les outils d’analyse pour suivre l’évolution de ces menaces. En fin de compte, comprendre en profondeur ces techniques d’obfuscation avancĂ©es est indispensable pour anticiper les tactiques des malwares modernes et renforcer les mĂ©canismes de dĂ©tection et de rĂ©ponse. Les professionnels cybersĂ©curitĂ© doivent maintenir une veille continue sur ces ruses en constante mutation, car l’ingĂ©niositĂ© des attaquants ne cesse de repousser les limites de l’évasion.

Liens

L’article Comment les malwares se cachent des antivirus est apparu en premier sur malekal.com.

❌