Les auteurs de menaces pourraient-ils rétrograder leurs logiciels malveillants pour échapper à la détection ?

Les auteurs de menaces pourraient-ils rétrograder leurs logiciels malveillants pour échapper à la détection ?

Les auteurs de menaces sont connus pour modifier leurs logiciels malveillants afin d’échapper à la détection et de réaliser des bénéfices supplémentaires. Pour ce faire, ils modifient le nom du fichier et l’adresse IP, ainsi que d’autres fonctionnalités. Cela leur donne un avantage, car cela rend la détection plus difficile et les aide à rester sous le radar. Les modifications sont si courantes que nous avons remarqué non seulement des versions mises à niveau mais également rétrogradées du même logiciel malveillant, qui pourraient faire partie d’une stratégie plus large d’acteur de la menace.

Ces versions mises à niveau/rétrogradées peuvent suggérer l’existence de capacités de logiciels malveillants modulaires, les clients payant un supplément ayant accès à des fonctionnalités supplémentaires et/ou uniques. Cela peut également suggérer que les acteurs de la menace adaptent les charges utiles pour chaque campagne afin d’éviter de révéler toutes les fonctionnalités d’un logiciel malveillant aux chercheurs en une seule fois. Après avoir analysé plusieurs types de logiciels malveillants, nous avons décidé de nous concentrer sur la famille de logiciels malveillants Gafgyt, qui est connue pour cibler les appareils IoT, tels que les routeurs, pour lancer des attaques par déni de service (DoS).

Cela demande un certain effort pour que les chercheurs en sécurité restent au fait des derniers développements des botnets et de leurs changements. C’est pourquoi Nozomi Networks se concentre sur la détection de serveurs malveillants sur Internet, afin de mieux comprendre le comportement des logiciels malveillants et d’améliorer la protection de nos clients. Dans ce blog, nous présentons la première et la deuxième étape du logiciel malveillant Gafgyt, ses variantes/modifications, et fournissons des indicateurs de compromission (IoC) pour détecter les activités malveillantes.

Le nombre de familles de logiciels malveillants liés aux botnets a considérablement augmenté.

Première étape – Accès initial

L’une des techniques d’accès initial les plus répandues que les chercheurs de Nozomi Networks Labs suivent est l’utilisation abusive de comptes valides. Les logiciels malveillants tentent d’accéder aux informations d’identification en forçant brutalement les informations d’identification SSH et telnet. En cas de succès, l’attaquant peut exécuter du code et déployer la première étape du logiciel malveillant sur les appareils vulnérables. Notre chaîne de pots de miel a pu capturer les principales informations d’identification utilisées à mauvais escient par les attaquants au cours de la dernière semaine de septembre 2022 (Figure 1) :

Fig 1 Principales informations d'identification utilisées à mauvais escient
Figure 1. Principales informations d’identification utilisées à mauvais escient par les attaquants au cours de la dernière semaine de septembre 2022

La plupart de ces entrées (par exemple, admin:admin, root:root, admin:1234, etc.) sont les noms d’utilisateur et mots de passe par défaut utilisés pour accéder à divers appareils de l’Internet des objets (IoT). Ces informations d’identification sont utilisées par plusieurs botnets ; certains sont même accessibles dans le code source accessible au public du logiciel malveillant Mirai. Les meilleures entrées changent avec le temps, de sorte que les résultats peuvent varier d’un mois à l’autre. Vous pouvez trouver un tableau des principales informations d’identification que nos pots de miel ont capturées au cours du premier semestre 2022 dans notre rapport sur la sécurité OT/IoT.

Lire aussi  Kevin Spacey acquitté dans une affaire civile de harcèlement sexuel

Une fois que les acteurs malveillants ont eu accès à l’appareil, ils exécutent ensuite un script bash qui leur permet de livrer et d’exécuter la charge utile de deuxième étape. L’approche classique consiste à télécharger de manière itérative plusieurs charges utiles ELF (Executable and Linkable Format) adaptées à différentes architectures (généralement à l’aide d’outils standard tels que curl ou wget). Les architectures informatiques les plus courantes sont x86, ARM, MIPS/MIPSEL, PowerPC, SH-4, SPARC et m68k, cela variera donc en fonction de l’appareil. L’auteur de la menace tentera alors d’exécuter chacun d’eux sur l’appareil de la victime.

Fig 2 Script bash de la première étape
Figure 2. Un exemple du script bash de la première étape

Maintenant, concentrons-nous sur les charges utiles binaires fournies dans la deuxième étape et sur le type d’informations qui peuvent être utilisées pour aider les chercheurs dans l’attribution et la clusterisation.

Charge utile du deuxième étage

Traditionnellement, la première étape d’une attaque par force brute est initiée par d’autres appareils compromis, tandis que des serveurs de commande et de contrôle (C2) malveillants sont utilisés pour fournir des charges utiles de deuxième étape et émettre des commandes aux bots. Pour compliquer davantage cette attaque, un nom de fichier différent est généralement associé à chaque serveur C2. En raison du grand nombre d’adresses IP différentes utilisées pour mener à bien ces attaques, le taux de détection des adresses IP malveillantes sur Virus Total est assez faible. Dans l’exemple suivant (Figure 3), Nozomi Networks est l’un des huit seuls fournisseurs, sur un total de 94, capables de détecter les indicateurs malveillants qui ont été modifiés.

Fig 3 Détections malveillantes de C2
Figure 3. Faible nombre de détections C2 malveillantes

Il existe plusieurs types de charges utiles de deuxième étage :

  • échantillons non emballés
  • échantillons emballés avec des versions publiques d’Ultimate Packer for Executables (UPX)
  • échantillons emballés avec des versions inédites d’UPX
  • échantillons emballés avec n’importe quelle version d’UPX et corrompus par la suite

Si vous êtes intéressé par la répartition exacte des packers utilisés, vous pouvez en savoir plus dans l’un de nos précédents blogs consacrés aux techniques d’ingénierie anti-rétro. Concernant la corruption UPX, Nozomi Networks Labs a récemment publié un outil open-source qui restaure automatiquement ces modifications.

Exemples de logiciels malveillants Gafgyt (alias Qbot)

Découvrons maintenant le malware Gafgyt et ses variantes. Le code source de Gafgyt a été publié il y a plus de cinq ans et est accessible au public sur GitHub pour que tout le monde puisse le réutiliser. Par conséquent, de nombreux échantillons analysés implémentent une ou plusieurs fonctionnalités de Gafgyt. Au début, les fichiers analysés peuvent sembler appartenir à la même famille, mais ils contiennent certaines différences de capacités et de fonctionnalités principales.

Lire aussi  15 mises en examen après un coup de filet anti-drogue dans le quartier Pissevin, à Nîmes

Échantillon commun

L’objectif commun du malware Gafgyt est de générer des attaques DDoS via l’un des rares protocoles pris en charge. La figure 4 montre à quoi ressemblent les commandes correspondantes à l’intérieur du logiciel malveillant :

Fig 4 commandes prises en charge
Figure 4. Une vérification de routine des commandes prises en charge qui ont été émises

Ces commandes permettent aux pirates d’effectuer des attaques DDoS en utilisant plusieurs protocoles et méthodes (par exemple, UDP, TCP, ICMP et HTTP).

Dans ce cas, nous voyons l’utilisation de:

  • Inondation UDP
  • Inondation ICMP
  • Inondation TCP SYN
  • Inondation TCP ACK
  • Inondation brute TCP
  • Inondation HTTP

D’autres fonctionnalités courantes permettent aux acteurs malveillants de vérifier l’état du bot, d’exécuter des commandes arbitraires sur celui-ci ou de tuer le processus malveillant. Les fonctionnalités supplémentaires utilisées par l’un des échantillons analysés incluent :

  1. scanner et rechercher d’autres appareils à la demande et tenter de les pénétrer (Figure 5)
  2. en utilisant une liste d’informations d’identification codées en dur (similaire à celle utilisée par le botnet Mirai)

Cette capacité est également présente sur le code source Gafgyt sur GitHub :

char *usernames[] = {"root", "", "admin", "user", "login", "guest"};

char *passwords[] = {"root", "", "toor", "admin", "user", "guest", "login", "changeme", "1234", "12345", "123456", "default", "pass", "password"}

Cependant, dans les échantillons analysés, la liste des informations d’identification a été étendue pour inclure certaines informations d’identification répertoriées dans Code source Mirai.

Fig 5 informations d'identification du scanner
Figure 5. Informations d’identification utilisées par le scanner dans l’échantillon analysé

Échantillon unique

L’échantillon de Gafgyt que nous avons analysé utilise quelques techniques d’évasion défensives pour se dissimuler et prolonger l’infection. Voici quelques-unes des fonctionnalités uniques les plus courantes :

  • Surveillance des processus en cours d’exécution sur le système : L’une des techniques utilisées par cet échantillon malveillant consiste à répertorier et à surveiller en permanence tous les processus en cours d’exécution sur la machine et à tuer tout processus en cours d’exécution qui n’est pas stocké sur un chemin spécifique.

    Pour chaque processus, l’exemple obtient le chemin des exécutables résolvant le lien symbolique dans /proc/PID/exe. Une fois obtenu, le chemin du fichier vérifie s’il contient les sous-chaînes bin/ ou lib/.

    Fait intéressant, cette fonctionnalité correspond à la commande “stop” dans l’exemple étendu, tandis que dans l’exemple léger, il est toujours exécuté.

  • Masquer le nom du processus : Au tout début de l’exécution et juste après la mise en place d’un socket écoutant les commandes entrantes du serveur C2, le malware renomme son processus (par exemple, en /bin/bash). Pour y parvenir, il utilise prctl syscall avec une argumentation PR_SET_NAMEce qui lui permet de définir le nom du processus appelant sur les valeurs passées en second argument.
Logiciel malveillant Fig 6 utilisant prctl
Figure 6. Logiciels malveillants utilisant prctl pour changer son nom de processus
  • Utilisation active des fourches : Pour pouvoir séparer ses fonctionnalités, les logiciels malveillants exécuteront des parties du code dans de nombreux forks distincts, ce qui peut compliquer le débogage. Comme le montre la figure 7, l’un d’eux crée 15 instances différentes
Fig 7 utilisation active des fourches
Figure 7. Utilisation active des fourches dans les logiciels malveillants IoT

Échantillon léger

Au cours de notre analyse, nous avons découvert un échantillon Gafgyt avec des quantités minimales de capacités Gafgyt. Il ne prend en charge que trois commandes, alors que les exemples décrits précédemment ont 12 fonctionnalités différentes.

Lire aussi  Nimi ; la princesse aux yeux de biche-Entertainment News , Firstpost

L’une des fonctionnalités de base de cet exemple est que le serveur C2 peut vérifier si le bot est actif. Le C2 envoie la commande “PING” au bot, et le bot répondra par “PONG” s’il est opérationnel, comme indiqué ici :

if (!strcmp(argv[0], "PING"))

{

sockprintf(mainCommSock, "PONG!");

return;

}

La figure 8 montre les deuxième et troisième fonctionnalités de la fonction appelée botkill_and_udp_flood.

Fig 8 gafgyt léger
Figure 8. Trois fonctionnalités dans la version allégée de Gafgyt : ping, botkill et UDP flood attack.

La fonctionnalité botkill permet au C2 d’envoyer une commande pour tuer le processus malveillant sur l’appareil infecté, comme dans l’exemple riche en fonctionnalités décrit ci-dessus. Si le bot reçoit la commande “botkill” il sort simplement.

Fig 9 fonctionnalité botkill
Figure 9. Fonctionnalité Botkill

Cette fonctionnalité est également mise en œuvre en émettant un kill -9 PID commande, comme illustré à la Figure 10 :

Fig 10 commande botkill
Figure 10. Une autre implémentation de la commande botkill

L’attaque UDP flood, exactement comme dans le code de l’autre exemple, contient une boucle infinie qui appelle sys_sendto qui continue d’envoyer des paquets UDP jusqu’à ce que ce programme malveillant soit tué.

Fig 11 Attaque par inondation UDP
Figure 11. Attaque d’inondation UDP à l’intérieur de l’exemple de code malveillant

Conclusion

Selon cette recherche, les acteurs de la menace peuvent avoir diverses variantes mises à niveau et déclassées de leurs logiciels malveillants. Cela pourrait signifier qu’ils modifient leurs tactiques et échappent à la détection, ou cela pourrait faire partie d’un stratagème de cybercriminalité sur le Web sombre pour réaliser des bénéfices supplémentaires en modulant le logiciel malveillant ; des fonctionnalités supplémentaires étant ajoutées à la carte. Les modifications incluent l’utilisation de noms de fichiers et d’adresses IP différents pour échapper à la détection et augmenter la longévité d’une attaque.

Chez Nozomi Networks, nous distinguons les fonctionnalités statiques et changeantes pour créer des détections robustes qui peuvent vous aider à suivre les différentes campagnes. Pour protéger votre réseau et vos systèmes, il est nécessaire de surveiller ces changements et d’intégrer des tactiques qui contrent ces attaques dans votre stratégie de défense. Vous trouverez ci-dessous des indicateurs associés au botnet malveillant dont il est question dans ce blog :

IoC

  • 62.197.136.231
  • 80.76.51.244
  • 2b1cc052f78141d91e1bc40db25418359a05c4ad28d2cd55f6e503e4f78c1010
  • 05e586d03dfb2c4a79372d46f2f4a8a91bf24d303017a0ce9f223263b28752a5

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.