Duqu - zlonamjerna lutka za gniježđenje

Uvod

Dana 1. rujna 2011. datoteka pod nazivom ~DN1.tmp poslana je na web stranicu VirusTotal iz Mađarske. U to vrijeme datoteku su kao zlonamjernu detektirala samo dva antivirusna motora - BitDefender i AVIRA. Tako je počela priča o Duqu. Gledajući unaprijed, mora se reći da je obitelj Duqu malwarea dobila ime po nazivu ove datoteke. Međutim, ova je datoteka potpuno neovisan modul špijunskog softvera s funkcijama keyloggera, instaliran, vjerojatno, korištenjem zlonamjernog programa za preuzimanje-dropper, i može se smatrati samo "korisnim teretom" koji je učitao Duqu malware tijekom svog rada, a ne kao komponenta ( modul) od Duqu . Jedna od Duqu komponenti poslana je Virustotal servisu tek 9. rujna. Njegova posebnost je upravljački program digitalno potpisan od strane C-Media. Neki su stručnjaci odmah počeli povlačiti analogije s još jednim poznatim primjerom malwarea - Stuxnetom, koji je također koristio potpisane upravljačke programe. Ukupan broj računala zaraženih Duquom koje su otkrile razne antivirusne tvrtke diljem svijeta broji se u desecima. Mnoge tvrtke tvrde da je Iran opet glavna meta, no sudeći po geografskoj distribuciji infekcija, to se ne može sa sigurnošću reći.
Duqu - zlonamjerna lutka za gniježđenje
U ovom slučaju, trebali biste s povjerenjem govoriti samo o drugoj tvrtki s novom riječju APT (napredna trajna prijetnja).

Postupak implementacije sustava

Istraga koju su proveli stručnjaci iz mađarske organizacije CrySyS (Mađarski laboratorij za kriptografiju i sigurnost sustava na Sveučilištu za tehnologiju i ekonomiju u Budimpešti) dovela je do otkrića instalatera (droppera) putem kojeg je sustav zaražen. Bila je to Microsoft Word datoteka s eksploatacijom za ranjivost upravljačkog programa win32k.sys (MS11-087, opisao Microsoft 13. studenog 2011.), koja je odgovorna za mehanizam renderiranja TTF fonta. Shellcode eksploatacije koristi font pod nazivom 'Dexter Regular' ugrađen u dokument, a Showtime Inc. je naveden kao kreator fonta. Kao što možete vidjeti, kreatorima Duqua smisao za humor nije stran: Dexter je serijski ubojica, junak istoimene televizijske serije u produkciji Showtimea. Dexter ubija samo (ako je moguće) kriminalce, odnosno krši zakon u ime zakonitosti. Vjerojatno su na ovaj način Duqu programeri ironični da se bave ilegalnim aktivnostima u dobre svrhe. Slanje e-pošte je napravljeno ciljano. Pošiljka je najvjerojatnije koristila kompromitirana (hakirana) računala kao posrednika kako bi otežala praćenje.
Word dokument je stoga sadržavao sljedeće komponente:

  • sadržaj teksta;
  • ugrađeni font;
  • iskoristiti shellcode;
  • vozač;
  • instalater (DLL biblioteka).

Ako je uspješan, shellcode iskorištavanja izvodi sljedeće operacije (u načinu rada jezgre):

  • napravljena je provjera za ponovnu infekciju; za to je provjerena prisutnost ključa 'CF4D' u registru na adresi 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; ako je to bilo točno, shellcode je završio svoje izvršenje;
  • dvije datoteke su dekriptirane - upravljački program (sys) i instalacijski program (dll);
  • upravljački program je ubačen u proces services.exe i pokrenut je instalacijski program;
  • Konačno, shellcode se izbrisao s nulama u memoriji.

Zbog činjenice da se win32k.sys izvršava pod privilegiranim korisnikom 'System', Duqu programeri su elegantno riješili problem i neovlaštenog pokretanja i eskalacije prava (pokretanje pod korisničkim računom s ograničenim pravima).
Nakon što je primio kontrolu, instalater je u memoriji dekriptirao tri bloka podataka sadržanih u njemu, koji sadrže:

  • potpisani upravljački program (sys);
  • glavni modul (dll);
  • konfiguracijski podaci instalatera (pnf).

Datumski raspon naveden je u konfiguracijskim podacima instalatera (u obliku dvije vremenske oznake - početak i kraj). Instalater je provjerio je li trenutni datum uključen u njega, a ako nije, dovršio je njegovo izvršenje. Također u konfiguracijskim podacima instalatera bila su imena pod kojima su spremljeni upravljački program i glavni modul. U ovom slučaju, glavni modul je spremljen na disk u šifriranom obliku.

Duqu - zlonamjerna lutka za gniježđenje

Da bi se Duqu automatski pokrenuo, usluga je stvorena pomoću datoteke upravljačkog programa koja dešifrira glavni modul u hodu pomoću ključeva pohranjenih u registru. Glavni modul sadrži vlastiti konfiguracijski blok podataka. Prilikom prvog pokretanja dekriptiran je, u njega je upisan datum instalacije, nakon čega je ponovno šifriran i pohranjen od strane glavnog modula. Tako su u zahvaćenom sustavu nakon uspješne instalacije spremljene tri datoteke - upravljački program, glavni modul i njegova konfiguracijska podatkovna datoteka, dok su posljednje dvije datoteke pohranjene na disk u šifriranom obliku. Svi postupci dekodiranja provedeni su samo u memoriji. Ova složena instalacijska procedura korištena je kako bi se smanjila mogućnost otkrivanja antivirusnim softverom.

Glavni modul

Glavni modul (resurs 302), prema informacije tvrtke Kaspersky Lab, napisan pomoću MSVC 2008 u čistom C-u, ali koristeći objektno orijentirani pristup. Ovaj pristup nije karakterističan za razvoj zlonamjernog koda. U pravilu je takav kod napisan u C-u kako bi se smanjila veličina i riješili implicitnih poziva svojstvenih C++-u. Ovdje postoji određena simbioza. Osim toga, korištena je arhitektura vođena događajima. Zaposlenici Kaspersky Laba skloni su teoriji da je glavni modul napisan korištenjem predprocesorskog dodatka koji vam omogućuje pisanje C koda u objektnom stilu.
Glavni modul je odgovoran za postupak primanja naredbi od operatera. Duqu nudi nekoliko metoda interakcije: korištenje HTTP i HTTPS protokola, kao i korištenje imenovanih cijevi. Za HTTP(S) navedeni su nazivi domena naredbenih centara, te je omogućen rad preko proxy poslužitelja - za njih je navedeno korisničko ime i lozinka. IP adresa i njen naziv navedeni su za kanal. Navedeni podaci pohranjuju se u bloku podataka o konfiguraciji glavnog modula (u šifriranom obliku).
Za korištenje imenovanih cijevi pokrenuli smo vlastitu implementaciju RPC poslužitelja. Podržavao je sljedećih sedam funkcija:

  • vratiti instaliranu verziju;
  • umetnuti dll u navedeni proces i pozvati navedenu funkciju;
  • učitati dll;
  • pokrenite proces pozivom CreateProcess();
  • čitati sadržaj date datoteke;
  • pisati podatke u navedenu datoteku;
  • izbrisati navedenu datoteku.

Imenovani kanali mogu se koristiti unutar lokalne mreže za distribuciju ažuriranih modula i konfiguracijskih podataka između računala zaraženih Duqu-om. Osim toga, Duqu je mogao djelovati kao proxy poslužitelj za druga zaražena računala (koja nisu imala pristup internetu zbog postavki vatrozida na pristupniku). Neke verzije Duqua nisu imale RPC funkcionalnost.

Poznati "korisni teret"

Symantec je otkrio najmanje četiri vrste korisnih podataka preuzetih pod naredbom iz kontrolnog centra Duqu.
Štoviše, samo je jedan od njih bio rezidentni i kompajliran kao izvršna datoteka (exe), koja je bila spremljena na disk. Preostale tri implementirane su kao dll biblioteke. Učitavali su se dinamički i izvršavali u memoriji bez spremanja na disk.

Rezidentni "korisni teret" bio je špijunski modul (infostealer) s funkcijama keyloggera. Njegovim slanjem VirusTotalu započeo je rad na Duqu istraživanju. Glavna špijunska funkcija nalazila se u resursu, čijih je prvih 8 kilobajta sadržavalo dio fotografije galaksije NGC 6745 (za kamuflažu). Ovdje treba podsjetiti da su u travnju 2012. neki mediji objavili informaciju (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) da je Iran bio izložen zlonamjernom softveru “Stars”, dok su detalji o incident nije otkriven. Možda je upravo takav uzorak Duqu "korisnog tereta" otkriven tada u Iranu, otuda i naziv "Zvijezde".
Špijunski modul prikupio je sljedeće informacije:

  • popis pokrenutih procesa, informacije o trenutnom korisniku i domeni;
  • popis logičkih pogona, uključujući mrežne pogone;
  • snimke zaslona;
  • adrese mrežnih sučelja, tablice usmjeravanja;
  • log datoteka pritisaka na tipkovnici;
  • imena otvorenih prozora aplikacija;
  • popis dostupnih mrežnih resursa (dijeljenje resursa);
  • potpuni popis datoteka na svim diskovima, uključujući one koji se mogu ukloniti;
  • popis računala u “mrežnom okruženju”.

Još jedan špijunski modul (infostealer) bila je varijacija onoga što je već opisano, ali kompajlirana kao dll biblioteka; funkcije keyloggera, sastavljanje popisa datoteka i popis računala uključenih u domenu uklonjene su iz nje.
Sljedeći modul (izviđanje) prikupljene informacije o sustavu:

  • je li računalo dio domene;
  • staze do direktorija sustava Windows;
  • verzija operativnog sustava;
  • trenutno korisničko ime;
  • popis mrežnih adaptera;
  • sustav i lokalno vrijeme, kao i vremensku zonu.

Zadnji modul (produljivač životnog vijeka) implementirao je funkciju za povećanje vrijednosti (pohranjene u podatkovnoj datoteci konfiguracije glavnog modula) broja preostalih dana do završetka posla. Prema zadanim postavkama, ova je vrijednost postavljena na 30 ili 36 dana, ovisno o Duqu modifikaciji, i smanjena je za jedan svaki dan.

Zapovjedni centri

Dana 20. listopada 2011. (tri dana nakon objave informacije o otkriću) operateri Duqua proveli su postupak uništavanja tragova funkcioniranja zapovjednih centara. Zapovjedni centri nalazili su se na hakiranim serverima diljem svijeta – u Vijetnamu, Indiji, Njemačkoj, Singapuru, Švicarskoj, Velikoj Britaniji, Nizozemskoj, Južnoj Koreji. Zanimljivo je da su svi identificirani poslužitelji pokretali CentOS verzije 5.2, 5.4 ili 5.5. OS-ovi su bili i 32-bitni i 64-bitni. Unatoč činjenici da su izbrisane sve datoteke povezane s radom naredbenih centara, stručnjaci tvrtke Kaspersky Lab uspjeli su oporaviti neke informacije iz LOG datoteka iz slack prostora. Najzanimljivija je činjenica da su napadači na poslužitelje uvijek zamjenjivali zadani paket OpenSSH 4.3 verzijom 5.8. Ovo može značiti da je nepoznata ranjivost u OpenSSH 4.3 korištena za hakiranje poslužitelja. Nisu svi sustavi korišteni kao zapovjedni centri. Neki su, sudeći prema pogreškama u sshd zapisnicima prilikom pokušaja preusmjeravanja prometa za portove 80 i 443, korišteni kao proxy poslužitelj za povezivanje s krajnjim naredbenim centrima.

Datumi i moduli

Wordov dokument distribuiran u travnju 2011., koji je pregledao Kaspersky Lab, sadržavao je upravljački program za preuzimanje programa za instalaciju s datumom kompilacije 31. kolovoza 2007. Sličan upravljački program (veličina - 20608 bajtova, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) u dokumentu pronađenom u laboratorijima CrySys imao je datum kompilacije 21. veljače 2008. Osim toga, stručnjaci Kaspersky Laba pronašli su upravljački program za automatsko pokretanje rndismpc.sys (veličina - 19968 bajtova, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) s datumom 20. siječnja 2008. Nisu pronađene komponente s oznakom 2009. Na temelju vremenskih oznaka kompilacije pojedinih dijelova Duqua, njegov razvoj mogao bi sezati u ranu 2007. godinu. Njegova najranija manifestacija povezana je s otkrivanjem privremenih datoteka tipa ~DO (vjerojatno ih je stvorio jedan od modula špijunskog softvera), čiji je datum stvaranja 28. studenog 2008. (članak "Duqu & Stuxnet: Vremenska crta zanimljivih događaja"). Najnoviji datum povezan s Duqu bio je 23. veljače 2012., sadržan u upravljačkom programu za preuzimanje programa za instalaciju koji je otkrio Symantec u ožujku 2012.

Korišteni izvori informacija:

serija članaka o Duqu iz Kaspersky Laba;
Symantec analitičko izvješće "W32.Duqu Preteča sljedećeg Stuxneta", verzija 1.4, studeni 2011. (pdf).

Izvor: www.habr.com

Dodajte komentar