Drovorubi pahavarakompleks nakatab Linuxi operatsioonisüsteemi

Riiklik Julgeolekuagentuur ja USA Föderaalne Juurdlusbüroo avaldas raporti, mille kohaselt eriteenistuse 85. peakeskus Venemaa relvajõudude peastaabi peadirektoraat (85 GCSS GRU) kasutatakse pahavara kompleksi nimega "Drovorub". Drovorub sisaldab juurkomplekti Linuxi kerneli mooduli kujul, tööriista failide edastamiseks ja võrguportide ümbersuunamiseks ning juhtserverit. Kliendiosa saab faile alla laadida ja üles laadida, juurkasutajana käivitada suvalisi käske ja suunata võrgupordid ümber teistele võrgusõlmedele.

Drovorubi juhtimiskeskus saab konfiguratsioonifaili tee JSON-vormingus käsureaargumendina:

{
"db_host": " ",
"db_port" : " ",
"db_db" : " ",
"db_user": " ",
"db_password" : " ",

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

"priv_key_file": " ",
"fraas": " »
}

MySQL DBMS-i kasutatakse taustaprogrammina. Klientide ühendamiseks kasutatakse WebSocketi protokolli.

Kliendil on sisseehitatud konfiguratsioon, sealhulgas serveri URL, selle avalik RSA võti, kasutajanimi ja parool. Pärast juurkomplekti installimist salvestatakse konfiguratsioon tekstifailina JSON-vormingus, mille Drovoruba kerneli moodul varjab süsteemi eest:

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

Siin on "id" serveri poolt väljastatud kordumatu identifikaator, milles viimased 48 bitti vastavad serveri võrguliidese MAC-aadressile. Vaikimisi "võtme" parameeter on base64 kodeeritud string "kliendivõti", mida server kasutab esialgse käepigistuse ajal. Lisaks võib konfiguratsioonifail sisaldada teavet peidetud failide, moodulite ja võrguportide kohta:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"võti": "Y2xpZW50a2V5",
"ekraan" : {
"fail": [
{
"aktiivne" : "tõene"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask": "testfile1"
}
],
"moodul" : [
{
"aktiivne" : "tõene"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask" : "testmoodul1"
}
],
"net" : [
{
"aktiivne" : "tõene"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"port" : "12345",
"protokoll": "tcp"
}
] }
}

Veel üks Drovorubi komponent on agent, selle konfiguratsioonifail sisaldab teavet serveriga ühenduse loomiseks:

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

Algselt puuduvad väljad “clientid” ja “clientkey_base64”, need lisatakse pärast esmast registreerimist serveris.

Pärast paigaldamist tehakse järgmised toimingud:

  • laaditakse kerneli moodul, mis registreerib süsteemikutsete jaoks konksud;
  • klient registreerub kerneli moodulis;
  • Kerneli moodul peidab töötava kliendiprotsessi ja selle käivitatava faili kettal.

Kliendi ja kerneli mooduli vaheliseks suhtlemiseks kasutatakse pseudoseadet, näiteks /dev/zero. Kerneli moodul parsib kõik seadmesse kirjutatud andmed ning vastassuunas edastamiseks saadab kliendile SIGUSR1 signaali, misjärel loeb andmeid samast seadmest.

Lumberjacki tuvastamiseks saate kasutada võrguliikluse analüüsi, kasutades NIDS-i (nakatunud süsteemis endas pahatahtlikku võrgutegevust ei saa tuvastada, kuna kerneli moodul peidab kasutatavad võrgupesad, võrgufiltri reeglid ja paketid, mida töötlemata pistikupesad võivad kinni püüda) . Süsteemis, kuhu Drovorub on installitud, saate tuumamooduli tuvastada, saates sellele käsu faili peitmiseks:

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

Loodud "testfile" fail muutub nähtamatuks.

Muud tuvastamismeetodid hõlmavad mälu ja ketta sisu analüüsi. Nakatumise vältimiseks on soovitatav kasutada tuuma ja moodulite kohustuslikku allkirja kontrollimist, mis on saadaval alates Linuxi kerneli versioonist 3.7.

Aruanne sisaldab Snorti reegleid Drovorubi võrgutegevuse tuvastamiseks ja Yara reegleid selle komponentide tuvastamiseks.

Tuletagem meelde, et grupiga on seotud 85. GTSSS GRU (sõjaväeüksus 26165). APT28 (Fancy Bear), vastutab arvukate küberrünnakute eest.

Allikas: opennet.ru