Le complexe de logiciels malveillants « Woodcutter » infecte les systèmes d'exploitation Linux.

L'Agence de sécurité nationale et le Federal Bureau of Investigation des États-Unis ont publié un rapport, selon lequel le 85ème centre principal de services spéciaux GU GSH des Forces armées russes (85 GЦCС ГРУ) utilise un ensemble de logiciels malveillants appelé «Drovonub». Drovonub comprend un rootkit sous la forme d'un module du noyau Linux, un outil pour la transmission de fichiers et le redirectionnement de ports réseau ainsi qu'un serveur de commande. La partie client peut télécharger et uploader des fichiers, exécuter des commandes arbitraires au nom de l'utilisateur root et rediriger des ports réseau vers d'autres nœuds du réseau.

Le centre de contrôle «Drovonub» reçoit en argument de ligne de commande le chemin du fichier de configuration au format JSON :

{
«db_host» : «»,
«db_port» : «»,
«db_db» : «»,
«db_user» : «»,
«db_password» : «»,

«lport» : «»,
«lhost» : «»,
«ping_sec» : «»,

«priv_key_file» : «»,
«phrase» : «»
}

Un SGBD MySQL est utilisé en tant que backend. Le protocole WebSocket est utilisé pour connecter les clients.

Le client a une configuration intégrée, y compris l'URL du serveur, sa clé publique RSA, son nom d'utilisateur et son mot de passe. Après l'installation du rootkit, la configuration est enregistrée sous forme de fichier texte au format JSON, qui est caché du système par le module noyau «Drovonub» :

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
«key»: «Y2xpZW50a2V5»
}

Ici, «id» est un identifiant unique attribué par le serveur, dont les 48 derniers bits correspondent à l'adresse MAC de l'interface réseau du serveur. Le paramètre «key» par défaut est une chaîne «clientkey» codée en base64, qui est utilisée par le serveur lors de la première négociation. En outre, le fichier de configuration peut contenir des informations sur les fichiers cachés, les modules et les ports réseau :

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
«key»: «Y2xpZW50a2V5»,
«monitor» : {
«file» : [
{
«active» : «true»,
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
«mask» : «testfile1»
}
],
«module» : [
{
«active» : «true»,
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
«mask» : «testmodule1»
}
],
«net» : [
{
«active» : «true»,
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
«port» : «12345»,
«protocol» : «tcp»
}
]
}
}

Un autre composant du «Drovonub» est un agent, dont le fichier de configuration contient des informations pour se connecter au serveur :

{
«client_login» : «user123»,
«client_pass» : «pass4567»,
«clientid» : «e391847c-bae7-11ea-b4bc-000c29130b71»,
«clientkey_base64» : «Y2xpZW50a2V5»,
«pub_key_file» :»public_key»,
«server_host» : «192.168.57.100»,
«server_port» :»45122»
«server_uri» :»/ws»
}

Les champs «clientid» et «clientkey_base64» sont initialement absents, ils sont ajoutés après l'enregistrement initial sur le serveur.

Après l'installation, les opérations suivantes sont effectuées :

  • le module du noyau est chargé, il enregistre des hooks pour les appels système ;
  • le client s'enregistre dans le module du noyau ;
  • le module du noyau masque le processus client en cours et son fichier exécutable sur le disque.

Pour interagir avec le module du noyau, le client utilise un dispositif pseudo, par exemple /dev/zero. Le module du noyau analyse toutes les données écrites sur le dispositif et, pour la transmission dans le sens inverse, envoie au client un signal SIGUSR1, après quoi celui-ci lit les données à partir de ce même dispositif.

Pour détecter « le Bûcheron », on peut utiliser l'analyse du trafic réseau avec des outils NIDS (il est impossible de détecter l'activité réseau malveillante sur le système infecté, car le module du noyau masque les sockets réseau qu'il utilise, ainsi que les règles netfilter et les paquets pouvant être interceptés par des sockets bruts). Dans un système où « le Bûcheron » est installé, on peut détecter le module du noyau en lui envoyant la commande de masquage de fichier :

touch testfile
echo “ASDFZXCV:hf:testfile” > /dev/zero
ls

Le fichier « testfile » créé devient alors invisible.

D'autres méthodes de détection incluent l'analyse de la mémoire et du contenu du disque. Pour prévenir l'infection, il est recommandé d'utiliser la vérification obligatoire de la signature du noyau et des modules, disponible à partir de la version 3.7 du noyau linux.

Le rapport contient des règles Snort pour détecter l'activité réseau du « Bûcheron » et des règles Yara pour détecter ses composants.

Rappelons que le 85 GCSS GRU (en unité 26165) est associé au groupe APT28 (Fancy Bear), responsable de nombreuses cyberattaques.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster