Ang Drovorub malware complex ay nakakahawa sa Linux OS

National Security Agency at US Federal Bureau of Investigation naglathala ng ulat, ayon sa kung saan ang ika-85 pangunahing sentro ng espesyal na serbisyo Pangunahing Direktor ng Pangkalahatang Staff ng Armed Forces ng Russia (85 GCSS GRU) isang malware complex na tinatawag na "Drovorub" ang ginagamit. Kasama sa Drovorub ang isang rootkit sa anyo ng isang Linux kernel module, isang tool para sa paglilipat ng mga file at pag-redirect ng mga port ng network, at isang control server. Ang bahagi ng kliyente ay maaaring mag-download at mag-upload ng mga file, magsagawa ng mga arbitrary na utos bilang root user, at mag-redirect ng mga port ng network sa iba pang mga node ng network.

Ang Drovorub control center ay tumatanggap ng path sa configuration file sa JSON format bilang isang command line argument:

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

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

"priv_key_file" : " ",
"parirala" : " »
}

Ginagamit ang MySQL DBMS bilang backend. Ang WebSocket protocol ay ginagamit upang ikonekta ang mga kliyente.

Ang kliyente ay may built-in na configuration, kabilang ang URL ng server, ang RSA public key nito, username at password. Pagkatapos i-install ang rootkit, ang configuration ay nai-save bilang isang text file sa JSON format, na nakatago mula sa system ng Drovoruba kernel module:

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

Narito ang "id" ay isang natatanging identifier na ibinigay ng server, kung saan ang huling 48 bit ay tumutugma sa MAC address ng interface ng network ng server. Ang default na parameter na "key" ay isang base64 na naka-encode na string na "clientkey" na ginagamit ng server sa paunang handshake. Bilang karagdagan, ang configuration file ay maaaring maglaman ng impormasyon tungkol sa mga nakatagong file, module at network port:

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

Ang isa pang bahagi ng Drovorub ay ang ahente; ang configuration file nito ay naglalaman ng impormasyon para sa pagkonekta sa server:

{
"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"
}

Ang mga patlang na "clientid" at "clientkey_base64" ay unang nawawala; idinagdag ang mga ito pagkatapos ng paunang pagpaparehistro sa server.

Pagkatapos ng pag-install, ang mga sumusunod na operasyon ay isinasagawa:

  • ang kernel module ay na-load, na nagrerehistro ng mga kawit para sa mga tawag sa system;
  • ang kliyente ay nagrerehistro sa kernel module;
  • Itinatago ng kernel module ang tumatakbong proseso ng kliyente at ang maipapatupad na file nito sa disk.

Ang isang pseudo-device, halimbawa /dev/zero, ay ginagamit upang makipag-usap sa pagitan ng client at ng kernel module. Pina-parse ng kernel module ang lahat ng data na nakasulat sa device, at para sa transmission sa tapat na direksyon ipinapadala nito ang SIGUSR1 signal sa client, pagkatapos nito ay nagbabasa ito ng data mula sa parehong device.

Upang matukoy ang Lumberjack, maaari mong gamitin ang pagsusuri sa trapiko ng network gamit ang NIDS (hindi matukoy ang malisyosong aktibidad ng network sa mismong nahawaang system, dahil itinatago ng kernel module ang mga socket ng network na ginagamit nito, mga panuntunan sa netfilter, at mga packet na maaaring ma-intercept ng mga raw socket) . Sa system kung saan naka-install ang Drovorub, maaari mong makita ang kernel module sa pamamagitan ng pagpapadala dito ng command upang itago ang file:

pindutin ang test file
echo “ASDFZXCV:hf:testfile” > /dev/zero
ls

Ang ginawang "testfile" na file ay nagiging invisible.

Kasama sa iba pang paraan ng pagtuklas ang memorya at pagsusuri sa nilalaman ng disk. Upang maiwasan ang impeksyon, inirerekumenda na gumamit ng mandatoryong signature verification ng kernel at mga module, na magagamit simula sa Linux kernel version 3.7.

Ang ulat ay naglalaman ng mga panuntunan ng Snort para sa pag-detect sa aktibidad ng network ng mga panuntunan ng Drovorub at Yara para sa pag-detect ng mga bahagi nito.

Alalahanin natin na ang 85th GTSSS GRU (military unit 26165) ay nauugnay sa grupo APT28 (Fancy Bear), responsable para sa maraming pag-atake sa cyber.

Pinagmulan: opennet.ru