Les acteurs de la menace ciblent activement les instances exposées de SSH et du magasin de données open source Redis Redis avec un ver auto-répliquant peer-to-peer avec des versions pour Windows et Linux que les auteurs de logiciels malveillants ont nommées P2Pinfect.

Écrit en Rust, le malware s’appuie sur au moins deux méthodes pour s’implanter : une vulnérabilité critique révélée et corrigée l’année dernière, et une fonctionnalité qui permet de répliquer la base de données principale pour une haute disponibilité et de contrer les scénarios de basculement.

Exploitation de la fonctionnalité de réplication Redis
P2PInfect a été initialement documenté par des chercheurs de l’unité 42 de Palo Alto Networks, qui ont découvert qu’il exploitait la vulnérabilité de gravité maximale identifiée comme CVE-2022-0543.

Le problème de sécurité est une vulnérabilité d’échappement du bac à sable LUA spécifique à Debian en raison d’un problème d’empaquetage qui permet l’exécution de code à distance, avec un score de gravité critique de 10 sur 10.

Après avoir compromis une instance Redis vulnérable avec une charge utile initiale, P2PInfect télécharge de nouveaux scripts spécifiques au système d’exploitation et des binaires malveillants et ajoute le serveur à sa liste de systèmes infectés.

Le logiciel malveillant ajoute ensuite le serveur infecté à son réseau peer-to-peer afin que les futurs serveurs Redis compromis puissent accéder au paquet de charges utiles malveillantes.

Les chercheurs de la société de criminalistique cloud et de réponse aux incidents Cado Security ont également trouvé sur leur pot de miel un échantillon P2PInfect, qui comprenait à la fois des binaires Portable Executable (PE) et ELF, ce qui indique une compatibilité multiplateforme entre Windows et Linux.

L’échantillon qu’ils ont analysé utilisait également une route d’accès initiale différente en exploitant la fonctionnalité de réplication Redis qui permet la création de répliques exactes de l’instance Redis principale/principale.

« Un schéma d’attaque courant contre Redis dans les environnements cloud consiste à exploiter cette fonctionnalité à l’aide d’une instance malveillante pour permettre la réplication » – Cado Security

Un acteur malveillant peut y parvenir en se connectant à une instance Redis exposée et en émettant une commande spécifique et documentée ; la méthode date de 2018 et a été utilisée dans plusieurs campagnes.

P2PInfect prenant le contrôle via la fonction de réplication Redis

Se préparer à l’assimilation des botnets
Selon Cado Security, la charge utile principale est un binaire ELF « écrit dans une combinaison de C et Rust » qui exécute finalement le composant Rust de la charge utile.

Après exécution, le binaire met à jour la configuration SSH de l’hôte et modifie la configuration du serveur OpenSSH « à un état proche de la valeur par défaut » qui permet à l’attaquant de se connecter au serveur via le protocole Secure Shell (SSH) et permet l’authentification par mot de passe.

Cado Security indique que l’acteur de la menace redémarre alors le service SSH et ajoute une clé SSH à la liste des clés autorisées pour l’utilisateur actuel.

À l’étape suivante, l’attaquant utilise un script bash pour modifier les noms des binaires wget et curl, vérifie la présence d’utilitaires spécifiques et les installe s’ils ne sont pas disponibles.

La liste ci-dessous montre certaines des actions résultant de l’exécution du script :

  • Renomme les binaires wget et curl respectivement en wgbtx et clbtx. Il s’agit probablement d’une tentative d’empêcher les intervenants en cas d’incident de les utiliser pour supprimer les outils d’investigation, ainsi que d’empêcher les solutions EDR de détecter l’utilisation de la commande. Il s’agit d’un TTP courant pour les acteurs de la menace cloud.
  • Vérifie la commande iptables et l’installe si elle n’est pas trouvée. Il a plusieurs commandes spécifiques aux gestionnaires de packages individuels, il peut donc être installé quelle que soit la distribution Linux utilisée.
  • Vérifie la commande awk et l’installe si elle n’est pas trouvée. Comme la commande précédente, elle essaiera d’utiliser plusieurs gestionnaires de packages.
  • Vérifie la commande netstat et l’installe si elle n’est pas trouvée. Comme les commandes précédentes, il essaiera d’utiliser plusieurs gestionnaires de packages.
  • Utilise netstat et awk pour collecter une liste de toutes les adresses IP actuellement connectées au serveur Redis exécuté sur l’hôte cible.
  • Ajoute une règle iptables pour autoriser le trafic de chacune de ces adresses IP vers le serveur Redis.
  • Ajoute une règle iptables pour refuser tout autre trafic vers le serveur Redis.
  • Ajoute une règle iptables pour autoriser tout le trafic vers un port choisi au hasard sur lequel la charge utile principale écoute les communications du botnet.

Les chercheurs expliquent que l’utilisation d’iptables peut être d’empêcher d’autres attaquants de compromettre le serveur Redis vulnérable. Ils ajoutent que le logiciel malveillant établit également la persistance sur l’hôte compromis.

Suite à cette étape, le serveur infecté reçoit au moins un binaire qui peut parcourir /proc et y ouvre les statistiques pour chaque processus. Il peut également surveiller le répertoire /proc pour les changements.

De plus, le binaire peut mettre à jour le binaire principal du malware et l’exécuter si sa signature ne correspond pas à celle extraite du botnet.

Les chercheurs affirment que P2PInfect traite chaque serveur Redis compromis comme un nœud, transformant le réseau en un botnet peer-to-peer qui peut recevoir des instructions sans avoir besoin d’un serveur centralisé de commande et de contrôle (C2).

« On suppose que les commandes sont émises en propageant des messages signés sur le réseau », expliquent les chercheurs de Cado Security.

Un simple serveur HTTP permet la communication entre pairs sur un port aléatoire entre 60100 et 60150, ainsi que la réception de certaines charges utiles. Cependant, la coordination du botnet se fait via HTTPS à l’aide d’un certificat codé en dur.

Sur la base de ce certificat, Cado Security évalue que la campagne a commencé « le 29 juin ou après ».

Recherche de serveurs vulnérables
L’infection d’autres hôtes est effectuée après avoir vérifié l’historique bash pour extraire les adresses IP, les utilisateurs et les clés SSH disponibles à exclure de la recherche.

Le logiciel malveillant sélectionne un préfixe réseau aléatoire /16 et commence à rechercher les serveurs SSH et Redis exposés. Il accède aux hôtes faiblement protégés à l’aide d’une liste de mots de passe pour les tentatives de force brute.

Avec les serveurs Redis, P2PInfect tentera d’exploiter CVE-2022-0543 ou la fonctionnalité de réplication pour charger des modules malveillants sur l’hôte.

Les chercheurs de Palo Alto Networks ont déclaré qu’au moment de leurs recherches, il y avait plus de 307 000 instances Redis accessibles sur l’Internet public. Bien qu’ils ne soient pas tous vulnérables, P2PInfect est susceptible de les tester pour détecter leurs faiblesses ou leurs vulnérabilités et de les compromettre.

À l’heure actuelle, le but de P2PInfect reste flou. Ni Palo Alto Networks ni les chercheurs de Cado Security n’ont été en mesure de déterminer la raison de l’infection des serveurs Redis.

Un indice potentiel de l’objectif de P2PInfect est la présence d’un binaire appelé « mineur », qui pourrait indiquer une activité d’extraction de crypto-monnaie.

Cependant, Cado Security a observé que le fichier a été exécuté puis supprimé mais aucune preuve de cryptominage. Au lieu de cela, il a juste continué à faire l’appel système de sommeil, qui ne fait rien.

Il ne s’agit peut-être que de la première étape de la campagne et des fonctionnalités supplémentaires, éventuellement de cryptominage, seront ajoutées après qu’un nombre suffisant d’instances Redis auront été compromises.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *