Le ver FritzFrog a été identifié, infectant les serveurs via SSH et créant un botnet décentralisé

Société Guardicore, spécialisée dans la protection des centres de données et des systèmes cloud, révélé FritzFrog, un nouveau malware de haute technologie qui attaque les serveurs basés sur Linux. FritzFrog combine un ver qui se propage via une attaque par force brute sur des serveurs dotés d'un port SSH ouvert et des composants pour créer un botnet décentralisé qui fonctionne sans nœuds de contrôle et n'a aucun point de défaillance unique.

Pour créer un botnet, un protocole P2P propriétaire est utilisé, dans lequel les nœuds interagissent les uns avec les autres, coordonnent l’organisation des attaques, soutiennent le fonctionnement du réseau et surveillent l’état de chacun. De nouvelles victimes sont découvertes en effectuant une attaque par force brute sur des serveurs acceptant les requêtes via SSH. Lorsqu'un nouveau serveur est détecté, un dictionnaire de combinaisons typiques de connexions et de mots de passe est recherché. Le contrôle peut être effectué via n’importe quel nœud, ce qui rend difficile l’identification et le blocage des opérateurs de réseaux de zombies.

Selon les chercheurs, le botnet compte déjà environ 500 nœuds, dont les serveurs de plusieurs universités et d’une grande compagnie ferroviaire. Il est à noter que les principales cibles de l'attaque sont les réseaux d'établissements d'enseignement, de centres médicaux, d'agences gouvernementales, de banques et d'entreprises de télécommunications. Une fois le serveur compromis, le processus d'extraction de la crypto-monnaie Monero y est organisé. L’activité du malware en question est retracée depuis janvier 2020.

La particularité de FritzFrog est qu'il conserve toutes les données et le code exécutable uniquement en mémoire. Les modifications sur le disque consistent uniquement à ajouter une nouvelle clé SSH au fichierauthorized_keys, qui est ensuite utilisée pour accéder au serveur. Les fichiers système ne sont pas modifiés, ce qui rend le ver invisible aux systèmes qui vérifient leur intégrité à l'aide de sommes de contrôle. La mémoire stocke également des dictionnaires pour les mots de passe par force brute et les données destinées au minage, qui sont synchronisées entre les nœuds à l'aide du protocole P2P.

Les composants malveillants sont camouflés en processus ifconfig, libexec, php-fpm et nginx. Les nœuds botnet surveillent l'état de leurs voisins et, si le serveur est redémarré ou même le système d'exploitation est réinstallé (si un fichier authorised_keys modifié a été transféré vers le nouveau système), ils réactivent les composants malveillants sur l'hôte. Pour la communication, le SSH standard est utilisé - le malware lance en outre un « netcat » local qui se lie à l'interface localhost et écoute le trafic sur le port 1234, auquel les hôtes externes accèdent via un tunnel SSH, en utilisant une clé de authorised_keys pour se connecter.

Le ver FritzFrog a été identifié, infectant les serveurs via SSH et créant un botnet décentralisé

Le code du composant FritzFrog est écrit en Go et s'exécute en mode multithread. Le malware comprend plusieurs modules qui s'exécutent dans différents threads :

  • Cracker - recherche les mots de passe sur les serveurs attaqués.
  • CryptoComm + Parser - organise une connexion P2P cryptée.
  • CastVotes est un mécanisme permettant de sélectionner conjointement les hôtes cibles pour l'attaque.
  • TargetFeed - Reçoit une liste de nœuds à attaquer des nœuds voisins.
  • DeployMgmt est une implémentation d'un ver qui distribue du code malveillant sur un serveur compromis.
  • Propriété - responsable de la connexion aux serveurs qui exécutent déjà du code malveillant.
  • Assembler - assemble un fichier en mémoire à partir de blocs transférés séparément.
  • Antivir - un module pour supprimer les logiciels malveillants concurrents, identifie et termine les processus avec la chaîne « xmr » qui consomment des ressources CPU.
  • Libexec est un module permettant de miner la crypto-monnaie Monero.

Le protocole P2P utilisé dans FritzFrog prend en charge environ 30 commandes responsables du transfert de données entre les nœuds, de l'exécution de scripts, du transfert de composants malveillants, de l'état d'interrogation, de l'échange de journaux, du lancement de proxys, etc. Les informations sont transmises sur un canal crypté distinct avec sérialisation au format JSON. Le chiffrement utilise le chiffrement AES asymétrique et le codage Base64. Le protocole DH est utilisé pour l'échange de clés (Diffie-Hellman). Pour déterminer l'état, les nœuds échangent constamment des requêtes ping.

Tous les nœuds du botnet maintiennent une base de données distribuée contenant des informations sur les systèmes attaqués et compromis. Les cibles d'attaque sont synchronisées dans tout le botnet - chaque nœud attaque une cible distincte, c'est-à-dire deux nœuds de botnet différents n'attaqueront pas le même hôte. Les nœuds collectent et transmettent également des statistiques locales aux voisins, telles que la taille de la mémoire libre, la disponibilité, la charge du processeur et l'activité de connexion SSH. Ces informations sont utilisées pour décider s'il faut démarrer le processus d'exploration de données ou utiliser le nœud uniquement pour attaquer d'autres systèmes (par exemple, l'exploration de données ne démarre pas sur les systèmes chargés ou sur les systèmes avec des connexions administrateur fréquentes).

Pour identifier FritzFrog, les chercheurs ont proposé un simple script shell. Pour déterminer les dommages au système
des signes tels que la présence d'une connexion d'écoute sur le port 1234, la présence clé malveillante dans les clés_autorisées (la même clé SSH est installée sur tous les nœuds) et la présence en mémoire des processus en cours d'exécution « ifconfig », « libexec », « php-fpm » et « nginx » qui n'ont pas de fichiers exécutables associés (« /proc/ /exe" pointe vers un fichier distant). Un signe peut également être la présence de trafic sur le port réseau 5555, qui se produit lorsqu'un logiciel malveillant accède au pool typique web.xmrpool.eu lors du minage de la crypto-monnaie Monero.

Source: opennet.ru

Ajouter un commentaire