Il complesso malware Drovorub infetta il sistema operativo Linux

Agenzia per la sicurezza nazionale e Federal Bureau of Investigation degli Stati Uniti ha pubblicato un rapporto, secondo il quale l'85esimo centro principale di servizi speciali Direzione principale dello Stato maggiore generale delle forze armate russe (85 GCSS GRU) viene utilizzato un complesso di malware chiamato “Drovorub”. Drovorub include un rootkit sotto forma di modulo del kernel Linux, uno strumento per trasferire file e reindirizzare le porte di rete e un server di controllo. La parte client può scaricare e caricare file, eseguire comandi arbitrari come utente root e reindirizzare le porte di rete su altri nodi di rete.

Il centro di controllo Drovorub riceve il percorso del file di configurazione in formato JSON come argomento della riga di comando:

{
"host_db" : " ",
"porta_db" : " ",
"db_db" : " ",
"db_utente" : " ",
"db_password" : " ",

"lport" : " ",
"lhost" : " ",
"ping_sec" : " ",

"file_chiave_priv" : " ",
"frase" : " »
}

MySQL DBMS viene utilizzato come backend. Il protocollo WebSocket viene utilizzato per connettere i client.

Il client ha una configurazione integrata, incluso l'URL del server, la sua chiave pubblica RSA, nome utente e password. Dopo aver installato il rootkit, la configurazione viene salvata come file di testo in formato JSON, che viene nascosto al sistema dal modulo del kernel Drovoruba:

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

Qui "id" è un identificatore univoco emesso dal server, in cui gli ultimi 48 bit corrispondono all'indirizzo MAC dell'interfaccia di rete del server. Il parametro "key" predefinito è una stringa "clientkey" codificata base64 utilizzata dal server durante l'handshake iniziale. Inoltre, il file di configurazione può contenere informazioni su file nascosti, moduli e porte di rete:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"chiave": "Y2xpZW50a2V5",
"tenere sotto controllo" : {
"file" : [
{
"attivo": "vero"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"maschera": "filetest1"
}
],
"modulo" : [
{
"attivo": "vero"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"maschera": "modulotest1"
}
],
"netto" : [
{
"attivo": "vero"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"porto": "12345",
"protocollo": "tcp"
}
] }
}

Un altro componente di Drovorub è l'agente; il suo file di configurazione contiene informazioni per la connessione al server:

{
"login_cliente": "utente123",
"pass_cliente": "pass4567",
"idcliente": "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file":"chiave_pubblica",
"host_server": "192.168.57.100",
"porta_server":"45122″,
"server_uri":"/ws"
}

Inizialmente mancano i campi “clientid” e “clientkey_base64” che vengono aggiunti dopo la prima registrazione sul server.

Dopo l'installazione vengono eseguite le seguenti operazioni:

  • viene caricato il modulo del kernel, che registra gli hook per le chiamate di sistema;
  • il client si registra con un modulo del kernel;
  • Il modulo del kernel nasconde il processo client in esecuzione e il relativo file eseguibile su disco.

Uno pseudo-dispositivo, ad esempio /dev/zero, viene utilizzato per comunicare tra il client e il modulo del kernel. Il modulo kernel analizza tutti i dati scritti sul dispositivo e per la trasmissione nella direzione opposta invia il segnale SIGUSR1 al client, dopodiché legge i dati dallo stesso dispositivo.

Per rilevare il Lumberjack, è possibile utilizzare l'analisi del traffico di rete utilizzando NIDS (l'attività di rete dannosa nel sistema infetto non può essere rilevata, poiché il modulo del kernel nasconde i socket di rete che utilizza, le regole di netfilter e i pacchetti che potrebbero essere intercettati dai socket grezzi) . Sul sistema in cui è installato Drovorub, puoi rilevare il modulo del kernel inviandogli il comando per nascondere il file:

toccare il file di prova
echo “ASDFZXCV:hf:testfile” > /dev/zero
ls

Il file "testfile" creato diventa invisibile.

Altri metodi di rilevamento includono l'analisi della memoria e del contenuto del disco. Per prevenire l'infezione, si consiglia di utilizzare la verifica obbligatoria della firma del kernel e dei moduli, disponibile a partire dalla versione 3.7 del kernel Linux.

Il rapporto contiene le regole Snort per rilevare l'attività di rete di Drovorub e le regole Yara per rilevare i suoi componenti.

Ricordiamo che al gruppo è associato l'85° GTSSS GRU (unità militare 26165) APT28 (Orsetto fantasia), responsabile di numerosi attacchi informatici.

Fonte: opennet.ru