Agenzia per la sicurezza nazionale e Federal Bureau of Investigation degli Stati Uniti
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)
Fonte: opennet.ru