Les créateurs de logiciels malveillants utilisent des langages de programmation « exotiques »

0

Les auteurs de logiciels malveillants utilisent de plus en plus des langages de programmation rarement repérés tels que Go, Rust, Nim et DLang afin de créer de nouveaux outils et d’entraver l’analyse.

L’utilisation de ces quatre langages augmente dans le nombre de familles de logiciels malveillants identifiées, selon un rapport publié par BlackBerry Research and Intelligence Team. L’équipe a choisi ces quatre langages à examiner, en partie parce qu’elles correspondent à ses méthodologies de détection, mais aussi parce que les langages ont un fort soutien communautaire et pourraient être considérées comme plus développées.

« Ces langages de programmation peu communs ne sont plus aussi rarement utilisés qu’on le pensait », selon l’article. « Les pirates informatiques ont commencé à les adopter pour réécrire les familles de logiciels malveillants connus ou créer des outils pour de nouveaux ensembles de logiciels malveillants. »

Plus précisément, les chercheurs suivent de plus en plus de loaders et de droppers écrits dans des langages plus rares. « Ces nouveaux logiciels malveillants de première étape sont conçus pour décoder, charger et déployer des logiciels malveillants tels que les chevaux de Troie d’accès à distance Remcos et NanoCore (RAT), ainsi que Cobalt Strike », selon le rapport. « Ils ont été couramment utilisés pour aider les pirates informatiques à échapper à la détection sur le point de terminaison. »

En fait, l’utilisation de l’outil de sécurité légitime Cobalt Strike a explosé: son utilisation dans les cyberattaques a augmenté de 161 % d’une année sur l’autre, après s’être généralisée dans le monde des logiciels criminels.

Le côté obscur de l’innovation

Les créateurs de logiciels malveillants ont peut-être la réputation d’être lents à abandonner tout ce qui fonctionne, mais ils sont heureux d’adopter de nouveaux langages de programmation car cela aide à éliminer les points compliqués du cycle de développement. De plus, du point de vue de l’auteur du malware, les nouveaux langages ont une longueur d’avance – ou deux, ou trois – sur les outils de protection.

« 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 », a écrit Eric Milam, vice-président de la recherche sur les menaces. « Cela présente de multiples avantages du cycle de développement et du manque inhérent de couverture des solutions de protection. »

De plus, tout comme les programmeurs non malveillants, les auteurs de logiciels malveillants doivent se protéger contre l’exploitation. Blackberry a cité « EmoCrash » comme raison pour le renforcement de leurs défenses. Il y a environ un an, le chercheur en sécurité James Quinn a révélé qu’il avait développé un killswitch – surnommé EmoCrash – qui exploitait le binaire principal du tristement célèbre infostealer Emotet, le faisant planter et l’empêchant d’infecter les systèmes pendant six mois. En effet, il avait concocté un vaccin pour Emotet.

Exemples concrets : la fluidité croissante du « Go » d’APT28 et d’APT29

En ce qui concerne ces langages plus obscurs, les développeurs de logiciels malveillants ont, historiquement, principalement écrit en Go : un langage à usage général qui ressemble beaucoup au C++ car il est typé et compilé de manière statique. En fait, son compilateur a été écrit à l’origine en C, bien qu’il soit maintenant également écrit en Go.

Les logiciels malveillants en langage C sont toujours les plus répandus, selon les chercheurs. Mais deux groupes de pirates basés en Russie, APT28 et APT29, ont commencé à utiliser les langages les plus exotiques dans les ensembles de logiciels malveillants plus souvent que les autres groupes. APT28 est plus connu sous les noms de Fancy Bear ou Strontium, tandis que APT29 est connu sous les noms Nobelium, Cozy Bear ou the Dukes.

malware

Go est désormais « l’un des langages « incontournables » pour les pirates informatiques » qui concoctent des variantes, ont déclaré les chercheurs de Blackberry, à la fois au niveau de la menace persistante avancée (APT) et au niveau des produits. « De nouveaux échantillons basés sur Go apparaissent maintenant sur une base semi-régulière, y compris des logiciels malveillants de tous types et ciblant tous les principaux systèmes d’exploitation à travers plusieurs campagnes », ont-ils écrit.

APT28 et APT29 sont de bons exemples. APT28, tristement célèbre pour son ingérence présumée dans l’élection présidentielle de 2016 via l’infiltration du Comité national démocrate, est lié à un large éventail d’attaques et de familles de logiciels malveillants, mais la famille de logiciels malveillants Zebrocy en particulier « utilise notamment plusieurs langages de programmation inhabituels au sein de sa kill chain. , » selon le rapport.

Zebrocy, alias Sednit, APT28, Fancy Bear et Strontium et utilisé par le groupe de menaces Sofacy, fonctionne comme un téléchargeur et collecte des données sur les hôtes infectés.

Comme les chercheurs l’ont expliqué, lorsque les échantillons Zebrocy ont été vus pour la première fois en 2015, ils comportaient trois parties : un téléchargeur Delphi, un téléchargeur AutoIT et une porte dérobée Delphi.

Quel que soit le langage dans lequel Zebrocy est écrit, il se propage via des campagnes de phishing qui contiennent un cheval de Troie initial qui essaie de communiquer avec un serveur de commande et de contrôle (C2) et qui exécute un téléchargeur pour supprimer une charge utile malveillante via une porte dérobée établie. Il a été réécrit plusieurs fois, mais « la méthode de livraison par pièce jointe et les fonctionnalités générales restent en grande partie les mêmes », indique le rapport.

Une sélection de réécritures en Go utilisées par APT28:

  • 2018 : un cheval de Troie codé en Go lié à APT28 a été identifié comme une variante de Zebrocy avec une version réécrite du téléchargeur Delphi d’origine.
  • 2019 : Les chercheurs ont découvert un téléchargeur Nim aux côtés de la porte dérobée Go dans la même campagne Zebrocy ciblant les ambassades et les ministères des Affaires étrangères en Europe de l’Est et en Asie centrale.
  • 2020 et les années précédentes : APT28 est devenu de plus en plus friand de Go, en utilisant d’autres composants Zebrocy réécrits : la charge utile et le téléchargeur de porte dérobée. Plus récemment, APT28 a utilisé la pandémie de COVID-19 comme leurre pour proposer la variante du téléchargeur Go en décembre.

De son côté, APT29/Cozy Bear, mieux connu pour son rôle dans les attaques de la chaîne d’approvisionnement SolarWinds début 2020, ciblait les machines Windows et Linux en 2018 avec WellMess, un cheval de Troie d’accès à distance (RAT) écrit en Go et .NET.

Les chercheurs ont noté que la variante la plus répandue de WellMess est la version Go, qui se décline en variantes de 32 bits et 64 bits sous forme de fichiers PE et ELF, « donnant à APT29 la possibilité de le déployer sur plus d’un type d’architecture et de système d’exploitation. « 

APT29 pénètre généralement le réseau d’une victime en analysant d’abord les adresses IP externes d’une organisation à la recherche de vulnérabilités, puis en lançant des exploits publics contre les systèmes vulnérables.

malware

L’utilisation croissante par le groupe des variantes Go comprend l’utilisation de variantes WellMess plus sophistiquées en 2020 pour tenter de voler les recherches sur le vaccin du COVID-19 auprès d’institutions de recherche universitaires et pharmaceutiques dans divers pays du monde, y compris les États-Unis, le Royaume-Uni et le Canada. Les chercheurs ont noté que la nouvelle variante, bien qu’écrite en Go, a été rendue plus compliquée : APT29 a, par exemple, ajouté plus de protocoles de communication réseau et la possibilité d’exécuter des scripts PowerShell après l’infection.

« Les deux groupes de pirates sont toujours actifs et ont mené certaines des cyberattaques russes les plus percutantes à ce jour », ont affirmé les chercheurs de Blackberry. « Une activité récente suggère que ces groupes ont utilisé les langages de programmation rares mentionnés dans cet article pour ajouter de la complexité à leurs logiciels malveillants, cibler plusieurs plates-formes et échapper à la détection. »

Chronologie

Au-delà de Go et de son attrait croissant pour APT28 et APT29, d’autres langages rares au cours de la dernière décennie ont été de plus en plus utilisés dans de plus en plus de familles de logiciels malveillants par d’autres groupes de pirates. Vous trouverez ci-dessous une chronologie de l’apparition croissante des quatre langages, en particulier les langages Rust, Nim et D. Les analystes de Blackberry ont noté qu’il ne s’agissait pas d’une liste exhaustive des familles de logiciels malveillants qui ont été développées dans ces langages.

logiciels malveillants langage rare
Chronologie d’exemples importants de logiciels malveillants écrits dans les langages Go, Rust, Nim et DLang. Source : BlackBerry.

DLang semblent être le langage le moins apprécié dans le paysage des menaces en évolution, mais ils ont connu une croissance modeste au cours de la dernière année. Cela pourrait marquer une tendance à une adoption plus répandue du DLang par les développeurs de logiciels malveillants, prédit le rapport.

Il n’y a rien de modeste à propos de la forte augmentation de l’utilisation des séquenceurs initiaux pour Cobalt Strike compilés à l’aide de Go, et plus récemment dans Nim, selon l’article, les séquenceurs initiaux étant le binaire utilisé pour faciliter l’accès initial de première étape en tendant la main pour télécharger la balise Cobalt Strike depuis un TeamServer. « Ce serveur est chargé de servir les balises elles-mêmes », selon le rapport. « Il est important que les défenseurs gardent une longueur d’avance dans la capture de fichiers liés à Cobalt Strike écrits dans ces langues, afin d’améliorer la capacité défensive contre une menace aussi redoutable. »

Pourquoi utilisent-ils ces langages peu communs?

L’équipe de Blackberry a décrit un certain nombre de raisons pour lesquelles l’utilisation de langages moins courants aide les attaquants:

  • Combler les déficits dans les langues existantes. Les programmeurs malveillants pourraient rechercher un certain nombre de choses qui leur manquent dans d’autres langages, qu’il s’agisse d’une syntaxe plus simple, d’une amélioration des performances ou d’une gestion plus efficace de la mémoire. Là encore, un nouveau langage peut être l’outil parfait pour un environnement donné et ciblé: par exemple, selon le rapport, les appareils de l’Internet des objets (IoT) utilisent des langages de niveau inférieur tels que C ou assembleur. Un autre avantage est la nature conviviale de certains langages, qui peut faciliter le développement et améliorer la qualité de vie des développeurs : les exemples incluent le gestionnaire de packages pip pour Python ou npm pour Node.JS.
  • Gommage de la rétro-ingénierie. Tous les outils d’analyse de logiciels malveillants ne prennent pas en charge les langages de programmation exotiques, ce qui rend l’analyse fastidieuse. « Les binaires écrits en… Go, Rust, Nim et DLang… peuvent sembler plus complexes, alambiqués et fastidieux lorsqu’ils sont désassemblés, par rapport à leurs homologues traditionnels basés sur C/C++/C# », ont expliqué les chercheurs de Blackberry.
  • Tromper détection basée sur la signature. Afin de repérer une signature, cette signature doit rester la même. Un exemple de caractéristique statique est le hachage, qui nécessite que chaque octet soit identique, qu’il s’agisse d’un hachage de l’ensemble du fichier, ou d’un hachage d’un certificat, etc. Les nouvelles variantes linguistiques qui modifient ces caractéristiques auparavant statiques ne seront probablement pas détectées. L’exemple est BazarLoader, qui a été réécrit en Nim.
  • Compte sur l’obscurcissement. En ce qui concerne les langages exotiques, le langage lui-même peut presque servir d’obscurcissement, étant donné qu’il est relativement nouveau. « Les langages eux-mêmes peuvent avoir un effet similaire à l’obscurcissement traditionnel et peuvent être utilisés pour tenter de contourner les mesures de sécurité conventionnelles et entraver les efforts d’analyse », ont déclaré les chercheurs.
  • La compilation croisée cible plus efficacement Windows et Mac. Un développeur de logiciels malveillants peut créer une variante de logiciel malveillant et la compiler de manière croisée pour cibler les multiples architectures et systèmes d’exploitation utilisés dans la plupart des entreprises. Les auteurs de logiciels malveillants ont besoin de moins d’outils pour cibler les réseaux et peuvent ainsi créer un réseau plus large avec moins de travail.
  • Créer de nouvelles astuces. Les développeurs de logiciels malveillants dynamisent d’anciens logiciels malveillants écrits dans des langages traditionnels comme C++ et C# avec des droppers et des chargeurs écrits dans des langages exotiques, selon l’article. Encore une fois, cela économise beaucoup de travail, car les auteurs peuvent ignorer le processus laborieux de recodage des logiciels malveillants et peuvent simplement l’envelopper dans la méthode de livraison réécrite d’un nouveau dropper ou d’un chargeur.

Alternativement, les pirates informatiques disposant de ressources importantes réécrivent complètement les logiciels malveillants existants dans de nouveaux langages, au lieu de se contenter de wrappers et de chargeurs. Exemples : BazaLoader est passé à NimzaLoader, tandis que Buer est devenu RustyBuer.

Les mesures de défenses

Blackberry a suggéré qu’afin d’attraper ces familles de logiciels malveillants multi-langages, les ingénieurs logiciels et les chercheurs auront de meilleures chances s’ils utilisent des signatures dynamiques ou comportementales, des signatures qui marquent le comportement via une sortie de bac à sable, ou la détection et la réponse des points de terminaison (EDR), ou les données de log. « Ces techniques peuvent être beaucoup plus fiables dans ces cas », selon le rapport.

Selon les chercheurs, l’utilisation de règles de détection indépendantes de la mise en œuvre afin de marquer les comportements dynamiques peut être utile en cas d’échec des signatures statiques, étant donné que les logiciels malveillants se comportent souvent de la même manière, en particulier lorsqu’ils sont recodés. « Dans d’autres circonstances, telles que les chargeurs de shellcode, qui injectent souvent dans des processus utilisant un sous-ensemble limité d’appels d’API Windows, ils peuvent être identifiés à l’aide de ce sous-ensemble limité », explique le rapport.

De plus, l’utilisation de bibliothèques dans un binaire peut souvent être « signaturée », ont déclaré les chercheurs. « Les langages étudiés dans ce rapport ont des liaisons qui leur permettent de s’interfacer avec l’API Win32 et d’utiliser ces appels d’API. Techniquemen, ils peuvent utiliser une méthodologie presque identique à celle de langages plus traditionnels tels que C++. Ce n’est pas toujours le cas, car certains langages peuvent utiliser leurs propres API à la place des API Win32. Par exemple, ils pourraient utiliser des bibliothèques cryptographiques qui restreindraient la visibilité de certains événements. Cependant, l’utilisation de ces bibliothèques au sein d’un binaire peut souvent aussi être « signaturée ».

Il faudra un certain temps aux outils d’analyse d’échantillons de logiciels malveillants pour rattraper ces nouveaux langages, mais il est « impératif » pour la communauté de la sécurité de « rester proactive dans la défense contre l’utilisation malveillante des technologies et techniques émergentes », a averti Blackberry.

« Il est essentiel que l’industrie et les clients comprennent et gardent un œil sur ces tendances, car elles ne feront qu’augmenter », a conseillé Milam de Blackberry.

Laisser un commentaire