langages de programmation malveillants

Les acteurs de la menace se tournent de plus en plus vers des langages de programmation « exotiques » tels que Go, Rust, Nim et Dlang qui peuvent mieux contourner les protections de sécurité conventionnelles, échapper à l’analyse et entraver les efforts d’ingénierie inverse.

« Les auteurs de logiciels malveillants sont connus pour leur capacité à s’adapter et à modifier leurs compétences et leurs comportements afin de tirer parti des nouvelles technologies » mentionné Eric Milam, vice-président de la recherche sur les menaces chez BlackBerry. “Cette tactique présente de multiples avantages du cycle de développement et du manque inhérent de couverture des produits de protection.”

D’une part, des langages comme Rust sont plus sûrs car ils offrent des garanties comme programmation sécurisée en mémoire, mais ils peuvent également être une arme à double tranchant lorsque les ingénieurs de logiciels malveillants abusent des mêmes fonctionnalités conçues pour offrir des garanties accrues à leur avantage, rendant ainsi les logiciels malveillants moins susceptibles d’être exploités et contrecarrant les tentatives d’activation d’un kill-switch et les rendant impuissants.

Équipes de débordement de pile

Notant que les binaires écrits dans ces langages peuvent sembler plus complexes, alambiqués et fastidieux lorsqu’ils sont désassemblés, les chercheurs ont déclaré que le pivot ajoute des couches supplémentaires d’obscurcissement, simplement parce qu’ils sont relativement nouveaux, conduisant à un scénario où des logiciels malveillants plus anciens sont développés à l’aide de langages traditionnels. comme C++ et C# sont activement réorganisés avec des droppers et des chargeurs écrits dans des alternatives peu courantes pour échapper à la détection par les systèmes de sécurité des terminaux.

Plus tôt cette année, la société de sécurité d’entreprise Proofpoint a découvert de nouveaux logiciels malveillants écrits en Nim (NimzaLoader) et Rust (RustyBuer) qui, selon elle, étaient utilisés dans des campagnes actives pour distribuer et déployer des souches de Cobalt Strike et de ransomware via des campagnes d’ingénierie sociale. Dans la même veine, CrowdStrike le mois dernier observé un échantillon de ransomware qui a emprunté les implémentations des variantes précédentes de HelloKitty et FiveHands, tout en utilisant un packer Golang pour chiffrer sa principale charge utile basée sur C++.

Prévenir les violations de données

Certains des exemples marquants de logiciels malveillants écrits dans ces langues au cours de la dernière décennie sont les suivants :

  • Dlang – DShell, Vovalex, OutCrypt, RemcosRAT
  • Aller – ElectroRAT, EKANS (alias Snake), Zebrocy, WellMess, ChaChi
  • Nim – NimzaLoader, Zebrocy, DeroHE, chargeurs Cobalt Strike basés sur Nim
  • Rouiller – Convuster Adware, RustyBuer, TeleBots Downloader et Backdoor, NanoCore Dropper, PyOxidizer

“Les programmes écrits à l’aide des mêmes techniques malveillantes mais dans un nouveau langage ne sont généralement pas détectés au même rythme que ceux écrits dans un langage plus mature”, ont conclu les chercheurs de BlackBerry.

“Les chargeurs, compte-gouttes et enrubanneuses […] dans de nombreux cas, modifient simplement la première étape du processus d’infection plutôt que de modifier les éléments essentiels de la campagne. Il s’agit du dernier acteur de la menace qui déplace la ligne juste en dehors de la gamme des logiciels de sécurité d’une manière qui pourrait ne pas se déclencher lors des étapes ultérieures de la campagne originale.



Leave a Reply