Le complexe malveillant Drovorub infecte le système d'exploitation Linux

National Security Agency et Bureau fédéral d'enquête des États-Unis a publié un rapport, selon lequel le 85e centre principal de service spécial Direction principale de l'état-major général des forces armées russes (85 GCSS GRU), un complexe malveillant appelé « Drovorub » est utilisé. Drovorub comprend un rootkit sous la forme d'un module du noyau Linux, un outil de transfert de fichiers et de redirection des ports réseau et un serveur de contrôle. La partie client peut télécharger et télécharger des fichiers, exécuter des commandes arbitraires en tant qu'utilisateur root et rediriger les ports réseau vers d'autres nœuds du réseau.

Le centre de contrôle Drovorub reçoit le chemin d'accès au fichier de configuration au format JSON comme argument de ligne de commande :

{
"hôte_bd": " ",
"port_bd" : " ",
"db_db" : " ",
"utilisateur_bd" : " ",
"db_password": " ",

"port" : " ",
"lhost" : " ",
"ping_sec" : " ",

"fichier_clé_privée" : " ",
"phrase" : " »
}

Le SGBD MySQL est utilisé comme backend. Le protocole WebSocket est utilisé pour connecter les clients.

Le client dispose d'une configuration intégrée, comprenant l'URL du serveur, sa clé publique RSA, son nom d'utilisateur et son mot de passe. Après avoir installé le rootkit, la configuration est enregistrée sous forme de fichier texte au format JSON, qui est masqué du système par le module du noyau Drvoruba :

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

Ici « id » est un identifiant unique émis 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 codée en base64 « clientkey » qui est utilisée par le serveur lors de la prise de contact initiale. De plus, 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»,
"clé": "Y2xpZW50a2V5",
"moniteur" : {
"déposer" : [
{
"actif" : "vrai"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"masque" : "fichiertest1"
}
],
"module" : [
{
"actif" : "vrai"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"masque" : "testmodule1"
}
],
"filet" : [
{
"actif" : "vrai"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"port" : "12345",
"protocole" : "tcp"
}
] }
}

Un autre composant de Drovorub est l'agent ; son fichier de configuration contient les informations de connexion au serveur :

{
"login_client" : "utilisateur123",
"pass_client" : "pass4567",
"ID client" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"hôte_serveur" : "192.168.57.100",
"port_serveur":"45122″,
"serveur_uri" :"/ws"
}

Les champs « clientid » et « clientkey_base64 » sont initialement manquants ; 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é, qui enregistre les hooks pour les appels système ;
  • le client s'enregistre auprès d'un module du noyau ;
  • Le module noyau masque le processus client en cours d'exécution et son fichier exécutable sur le disque.

Un pseudo-périphérique, par exemple /dev/zero, est utilisé pour communiquer entre le client et le module noyau. Le module noyau analyse toutes les données écrites sur l'appareil et, pour une transmission dans la direction opposée, envoie le signal SIGUSR1 au client, après quoi il lit les données du même appareil.

Pour détecter le Lumberjack, vous pouvez utiliser l'analyse du trafic réseau à l'aide de NIDS (une activité réseau malveillante dans le système infecté lui-même ne peut pas être détectée, car le module du noyau cache les sockets réseau qu'il utilise, les règles de filtrage réseau et les paquets qui pourraient être interceptés par les sockets bruts). . Sur le système sur lequel Drovorub est installé, vous pouvez détecter le module noyau en lui envoyant la commande pour masquer le fichier :

fichier de test tactile
echo "ASDFZXCV: hf: fichier de test" > /dev/zero
ls

Le fichier « testfile » créé devient invisible.

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

Le rapport contient les règles Snort pour détecter l'activité réseau de Drovorub et les règles Yara pour détecter ses composants.

Rappelons que le 85ème GTSSS GRU (unité militaire 26165) est associé au groupe APT28 (Ours fantaisie), responsable de nombreuses cyberattaques.

Source: opennet.ru