Duqu - zlonamjerna lutka za gniježđenje

Uvod

Dana 1. septembra 2011., datoteka pod nazivom ~DN1.tmp je poslana na web stranicu VirusTotal iz Mađarske. U to vrijeme, samo dva antivirusna mehanizma - BitDefender i AVIRA, otkrila su datoteku kao zlonamjernu. Ovako je počela priča o Duquu. Gledajući unaprijed, mora se reći da je porodica malvera Duqu dobila ime po imenu ove datoteke. Međutim, ova datoteka je potpuno nezavisan modul špijunskog softvera sa funkcijama keyloggera, instaliran, vjerovatno, pomoću zlonamjernog downloader-droppera, i može se smatrati samo "korisnim opterećenjem" koji je učitao Duqu malware tokom svog rada, a ne kao komponenta ( modul) Duqu . Jedna od Duqu komponenti poslata je Virustotal servisu tek 9. septembra. Njegova karakteristična karakteristika je drajver digitalno potpisan od strane C-Media. Neki stručnjaci su odmah počeli da povlače analogije sa drugim poznatim primerom zlonamernog softvera - Stuxnetom, koji je takođe koristio potpisane drajvere. Ukupan broj Duqu-inficiranih računara koje su otkrile različite antivirusne kompanije širom svijeta kreće se na desetine. Mnoge kompanije tvrde da je Iran opet glavna meta, ali sudeći po geografskoj distribuciji zaraza, to se ne može sa sigurnošću tvrditi.
Duqu - zlonamjerna lutka za gniježđenje
U ovom slučaju, trebali biste samouvjereno govoriti samo o drugoj kompaniji novom riječju APT (napredna trajna prijetnja).

Procedura implementacije sistema

Istraga koju su sproveli stručnjaci iz mađarske organizacije CrySyS (Mađarska laboratorija za kriptografiju i sigurnost sistema na Univerzitetu za tehnologiju i ekonomiju u Budimpešti) dovela je do otkrića instalatera (dropper) preko kojeg je sistem zaražen. Bio je to Microsoft Word fajl sa eksploatacijom za ranjivost drajvera win32k.sys (MS11-087, koju je Microsoft opisao 13. novembra 2011.), koja je odgovorna za mehanizam za prikazivanje TTF fontova. Shellcode eksploatacije koristi font pod nazivom 'Dexter Regular' koji je ugrađen u dokument, a Showtime Inc. je naveden kao kreator fonta. Kao što vidite, tvorcima Duqua smisao za humor nije stranac: Dexter je serijski ubica, junak istoimene televizijske serije u produkciji Showtimea. Dexter ubija samo (ako je moguće) kriminalce, odnosno krši zakon u ime zakonitosti. Vjerovatno su na ovaj način programeri Duqua ironični da se bave ilegalnim aktivnostima u dobre svrhe. Slanje e-pošte je urađeno namjerno. Pošiljka je najvjerovatnije koristila kompromitovane (hakovane) računare kao posrednika da oteža praćenje.
Word dokument je stoga sadržavao sljedeće komponente:

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

Ako je uspješan, eksploatacijski shellcode je izvršio sljedeće operacije (u kernel modu):

  • izvršena je provjera za ponovnu infekciju; za to je provjereno prisustvo ključa 'CF4D' u registru na adresi 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; ako je to bilo ispravno, shellcode je završio svoje izvršavanje;
  • dva fajla su dešifrovana - drajver (sys) i instalater (dll);
  • drajver je ubačen u proces services.exe i pokrenut instalater;
  • Konačno, shellcode se izbrisao sa nulama u memoriji.

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

  • potpisani drajver (sys);
  • glavni modul (dll);
  • konfiguracijski podaci instalatera (pnf).

U konfiguracijskim podacima instalatera naveden je raspon datuma (u obliku dvije vremenske oznake - početak i kraj). Instalater je provjerio da li je trenutni datum uključen u njega, a ako nije, završio je njegovo izvršenje. Također u konfiguracijskim podacima instalatera bila su imena pod kojima su pohranjeni drajver i glavni modul. U ovom slučaju, glavni modul je sačuvan na disku u šifriranom obliku.

Duqu - zlonamjerna lutka za gniježđenje

Za automatsko pokretanje Duqu-a, kreiran je servis pomoću datoteke drajvera koja je dešifrirala glavni modul u hodu koristeći ključeve pohranjene u registru. Glavni modul sadrži vlastiti blok podataka o konfiguraciji. Prilikom prvog pokretanja bio je dešifrovan, u njega je unet datum instalacije, nakon čega je ponovo šifrovan i sačuvan od strane glavnog modula. Tako su u zahvaćenom sistemu, nakon uspješne instalacije, sačuvane tri datoteke - drajver, glavni modul i njegov konfiguracijski fajl, dok su posljednja dva fajla pohranjena na disku u šifriranom obliku. Sve procedure dekodiranja provedene su samo u memoriji. Ova složena instalacijska procedura je korištena kako bi se smanjila mogućnost otkrivanja od strane antivirusnog softvera.

Glavni modul

Glavni modul (resurs 302), prema informacija kompanije Kaspersky Lab, napisan koristeći MSVC 2008 na čistom C-u, ali koristeći objektno orijentisani pristup. Ovaj pristup nije karakterističan za razvoj zlonamjernog koda. Po pravilu, takav kod je napisan u C-u kako bi se smanjila veličina i oslobodili implicitnih poziva svojstvenih C++-u. Ovdje postoji određena simbioza. Osim toga, korištena je arhitektura vođena događajima. Zaposleni u Kaspersky Lab-u skloni su teoriji da je glavni modul napisan pomoću dodatka za pretprocesor koji vam omogućava da pišete C kod u objektnom stilu.
Glavni modul je odgovoran za proceduru prijema komandi od operatera. Duqu nudi nekoliko metoda interakcije: korištenje HTTP i HTTPS protokola, kao i korištenje imenovanih cijevi. Za HTTP(S) specificirani su nazivi domena komandnih centara, a omogućena je i mogućnost rada preko proxy servera - za njih je specificirano korisničko ime i lozinka. IP adresa i njeno ime su specificirani za kanal. Navedeni podaci se pohranjuju u blok podataka o konfiguraciji glavnog modula (u šifriranom obliku).
Da bismo koristili imenovane cijevi, pokrenuli smo vlastitu implementaciju RPC servera. Podržao je sljedećih sedam funkcija:

  • vratite instaliranu verziju;
  • ubacite dll u navedeni proces i pozovite navedenu funkciju;
  • load dll;
  • pokrenuti proces pozivanjem CreateProcess();
  • čitanje sadržaja date datoteke;
  • upisati podatke u navedenu datoteku;
  • izbrišite navedenu datoteku.

Imenovane cijevi se mogu koristiti unutar lokalne mreže za distribuciju ažuriranih modula i konfiguracijskih podataka između Duqu-inficiranih računala. Osim toga, Duqu bi mogao djelovati kao proxy server za druge zaražene računare (koji nisu imali pristup Internetu zbog postavki zaštitnog zida na gateway-u). Neke verzije Duqu-a nisu imale RPC funkcionalnost.

Poznata "korisna opterećenja"

Symantec je otkrio najmanje četiri tipa korisnih tereta preuzetih pod komandom iz kontrolnog centra Duqu.
Štaviše, samo je jedan od njih bio rezidentan i kompajliran kao izvršni fajl (exe), koji je sačuvan na disku. Preostale tri su implementirane kao dll biblioteke. Učitavali su se dinamički i izvršavali u memoriji bez pohranjivanja na disk.

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

  • lista pokrenutih procesa, informacije o trenutnom korisniku i domeni;
  • popis logičkih pogona, uključujući mrežne pogone;
  • screenshots;
  • adrese mrežnog sučelja, tablice rutiranja;
  • log fajl pritiska na tastaturu;
  • nazivi otvorenih prozora aplikacija;
  • lista dostupnih mrežnih resursa (resursi za dijeljenje);
  • potpuna lista datoteka na svim diskovima, uključujući i one koje se mogu ukloniti;
  • spisak računara u „mrežnom okruženju“.

Još jedan špijunski modul (infostealer) je bila varijacija onoga što je već opisano, ali kompajlirano kao dll biblioteka; funkcije keyloggera, sastavljanje liste datoteka i listanje računara uključenih u domenu su uklonjene iz njega.
Sljedeći modul (izviđanje) prikupljene sistemske informacije:

  • da li je računar dio domene;
  • staze do Windows sistemskih direktorija;
  • verzija operativnog sistema;
  • trenutno korisničko ime;
  • lista mrežnih adaptera;
  • sistem i lokalno vrijeme, kao i vremenska zona.

Zadnji modul (produžetak životnog vijeka) implementirao funkciju za povećanje vrijednosti (pohranjene u glavnoj konfiguracijskoj datoteci s podacima modula) broja dana preostalih do završetka posla. Prema zadanim postavkama, ova vrijednost je postavljena na 30 ili 36 dana, ovisno o Duqu modifikaciji, i smanjivana za jedan svaki dan.

Komandni centri

Dana 20. oktobra 2011. godine (tri dana nakon objavljivanja informacija o otkriću), Duqu operateri su izvršili proceduru uništavanja tragova funkcionisanja komandnih centara. Komandni centri su se nalazili na hakovanim serverima širom svijeta - u Vijetnamu, Indiji, Njemačkoj, Singapuru, Švicarskoj, Velikoj Britaniji, Holandiji i Južnoj Koreji. Zanimljivo je da su svi identifikovani serveri pokretali CentOS verzije 5.2, 5.4 ili 5.5. Operativni sistemi su bili i 32-bitni i 64-bitni. Uprkos činjenici da su svi fajlovi koji se odnose na rad komandnih centara izbrisani, stručnjaci Kaspersky Lab-a uspeli su da povrate neke informacije iz LOG fajlova iz slobodnog prostora. Najzanimljivija činjenica je da su napadači na serverima uvijek zamjenjivali standardni OpenSSH 4.3 paket verzijom 5.8. Ovo može ukazivati ​​na to da je nepoznata ranjivost u OpenSSH 4.3 korištena za hakovanje servera. Nisu svi sistemi korišteni kao komandni centri. Neki su, sudeći po greškama u sshd logovima prilikom pokušaja preusmjeravanja prometa za portove 80 i 443, korišteni kao proxy server za povezivanje sa krajnjim komandnim centrima.

Datumi i moduli

Word dokument distribuiran u aprilu 2011., koji je ispitala Kaspersky Lab, sadržavao je drajver za preuzimanje instalacionog programa sa datumom kompilacije 31. avgusta 2007. Sličan drajver (veličina - 20608 bajtova, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) u dokumentu pronađenom u CrySys laboratorijama imao je datum kompilacije 21. februara 2008. Osim toga, stručnjaci Kaspersky Lab-a pronašli su upravljački program za automatsko pokretanje rndismpc.sys (veličina - 19968 bajtova, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) sa datumom 20. januar 2008. Nisu pronađene komponente označene kao 2009. Na osnovu vremenskih oznaka kompilacije pojedinih dijelova Duqu-a, njegov razvoj mogao bi datira još od početka 2007. godine. Njegova najranija manifestacija povezana je sa otkrivanjem privremenih datoteka tipa ~DO (vjerovatno kreiranih od strane jednog od špijunskih modula), čiji je datum kreiranja 28. novembar 2008. (članak "Duqu & Stuxnet: Vremenska linija zanimljivih događaja"). Najnoviji datum povezan sa Duquom bio je 23. februar 2012., sadržan u drajveru za preuzimanje instalacionog programa koji je otkrio Symantec u martu 2012. godine.

Korišteni izvori informacija:

serija članaka o Duqu-u iz Kaspersky Lab-a;
Symantec analitički izvještaj "W32.Duqu Preteča sljedećeg Stuxneta", verzija 1.4, novembar 2011. (pdf).

izvor: www.habr.com

Dodajte komentar