Duqu – pahatahtlik pesitsusnukk

Sissejuhatus

1. septembril 2011 saadeti Ungarist VirusTotali veebisaidile fail nimega ~DN1.tmp. Sel ajal tuvastasid faili pahatahtlikuna vaid kaks viirusetõrjemootorit – BitDefender ja AVIRA. Nii sai Duqu lugu alguse. Tulevikku vaadates peab ütlema, et Duqu pahavaraperekond sai nime selle faili nime järgi. See fail on aga täiesti iseseisev nuhkvaramoodul, millel on klahvilogimise funktsioonid ja mis on tõenäoliselt installitud pahatahtliku allalaadija-tilgutaja abil ja seda saab pidada ainult Duqu pahavara poolt selle töö ajal laaditud kasulikuks koormaks, mitte komponendiks ( moodul) Duqu . Üks Duqu komponentidest saadeti Virustotali teenindusse alles 9. septembril. Selle eripäraks on C-Media digitaalselt allkirjastatud draiver. Mõned eksperdid hakkasid kohe analoogiat tõmbama teise kuulsa pahavara näitega – Stuxnetiga, mis kasutas samuti allkirjastatud draivereid. Erinevate viirusetõrjefirmade poolt üle maailma tuvastatud Duquga nakatunud arvutite koguarv ulatub kümnetesse. Paljud ettevõtted väidavad, et Iraan on taas peamine sihtmärk, kuid nakkuste geograafilise leviku järgi otsustades ei saa seda kindlalt väita.
Duqu – pahatahtlik pesitsusnukk
Sel juhul peaksite enesekindlalt rääkima ainult mõnest teisest ettevõttest uue sõnaga APT (arenenud püsiv oht).

Süsteemi juurutamise protseduur

Ungari organisatsiooni CrySyS (Budapesti Tehnika- ja Majandusülikooli Ungari krüptograafia ja süsteemiturbe labor) spetsialistide poolt läbi viidud uurimine viis installeri (tilguti) avastamiseni, mille kaudu süsteem nakatus. See oli Microsoft Wordi fail, milles kasutati win32k.sys draiveri haavatavust (MS11-087, mida Microsoft kirjeldas 13. novembril 2011), mis vastutab TTF-fondide renderdusmehhanismi eest. Exploiti shellkood kasutab dokumenti manustatud fonti nimega "Dexter Regular", mille loojana on loetletud Showtime Inc. Nagu näete, pole Duqu loojatele huumorimeel võõras: Dexter on sarimõrvar, Showtime’i toodetud samanimelise teleseriaali kangelane. Dexter tapab ainult (võimalusel) kurjategijaid ehk rikub seadust seaduslikkuse nimel. Tõenäoliselt on Duqu arendajad sel moel iroonilised, et tegelevad ebaseadusliku tegevusega headel eesmärkidel. Meilide saatmine toimus sihipäraselt. Tõenäoliselt kasutas saadetis jälgimise keeruliseks muutmiseks vahendajana ohustatud (häkitud) arvuteid.
Wordi dokument sisaldas seega järgmisi komponente:

  • teksti sisu;
  • sisseehitatud font;
  • kasutada shellkoodi;
  • autojuht;
  • installer (DLL-teek).

Kui see õnnestus, teostas exploit shellcode järgmised toimingud (tuumarežiimis):

  • kontrolliti uuesti nakatumist; selleks kontrolliti registris võtme 'CF4D' olemasolu aadressil 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; kui see oli õige, lõpetas shellkood selle täitmise;
  • kaks faili dekrüpteeriti - draiver (sys) ja installiprogramm (dll);
  • draiver sisestati services.exe protsessi ja käivitati installiprogramm;
  • Lõpuks kustutas shellkood end mällu nullidega.

Tänu sellele, et win32k.sys käivitatakse privilegeeritud kasutaja 'System' all, on Duqu'i arendajad elegantselt lahendanud nii volitamata käivitamise kui ka õiguste eskaleerimise (töötab piiratud õigustega kasutajakonto all) probleemi.
Pärast kontrolli saamist dekrüpteeris installija mälus kolm selles sisalduvat andmeplokki, mis sisaldasid:

  • allkirjastatud draiver (sys);
  • põhimoodul (dll);
  • paigaldaja konfiguratsiooniandmed (pnf).

Installeri konfiguratsiooniandmetes määrati kuupäevavahemik (kahe ajatempli kujul - algus ja lõpp). Paigaldaja kontrollis, kas praegune kuupäev on selles, ja kui ei, siis lõpetas selle täitmise. Paigaldaja konfiguratsiooniandmetes olid ka nimed, mille alla draiver ja põhimoodul salvestati. Sel juhul salvestati põhimoodul kettale krüpteeritud kujul.

Duqu – pahatahtlik pesitsusnukk

Duqu automaatseks käivitamiseks loodi draiverifaili kasutades teenus, mis dekrüpteeris põhimooduli käigult, kasutades registrisse salvestatud võtmeid. Põhimoodul sisaldab oma konfiguratsiooni andmeplokki. Esmakordsel käivitamisel see dekrüpteeriti, sellesse sisestati installimise kuupäev, misjärel see krüpteeriti uuesti ja salvestati põhimooduli poolt. Seega salvestati mõjutatud süsteemis pärast edukat installimist kolm faili - draiver, põhimoodul ja selle konfiguratsiooniandmete fail, viimased kaks faili aga salvestati kettale krüpteeritud kujul. Kõik dekodeerimisprotseduurid viidi läbi ainult mälus. Seda keerulist installiprotseduuri kasutati viirusetõrjetarkvara tuvastamise võimaluse minimeerimiseks.

Peamine moodul

Põhimoodul (ressurss 302), vastavalt teave ettevõte Kaspersky Lab, mis on kirjutatud kasutades MSVC 2008 puhtas C-s, kuid kasutades objektorienteeritud lähenemist. See lähenemisviis on pahatahtliku koodi väljatöötamisel ebatüüpiline. Reeglina kirjutatakse selline kood C-keeles, et vähendada suurust ja vabaneda C++-ile omastest kaudsetest kõnedest. Siin on teatud sümbioos. Lisaks kasutati sündmustepõhist arhitektuuri. Kaspersky Labi töötajad kalduvad teooriale, et põhimoodul on kirjutatud eelprotsessori lisandmooduli abil, mis võimaldab kirjutada C-koodi objektistiilis.
Põhimoodul vastutab operaatoritelt käskude vastuvõtmise korra eest. Duqu pakub mitmeid interaktsioonimeetodeid: HTTP- ja HTTPS-protokolle, samuti nimega torude kasutamist. HTTP(S) jaoks määrati käsukeskuste domeeninimed ja anti võimalus töötada läbi puhverserveri - neile määrati kasutajanimi ja parool. Kanali jaoks on määratud IP-aadress ja selle nimi. Määratud andmed salvestatakse põhimooduli konfiguratsiooni andmeplokki (krüpteeritud kujul).
Nimega torude kasutamiseks käivitasime oma RPC-serveri juurutuse. See toetas järgmist seitset funktsiooni:

  • tagastage installitud versioon;
  • sisestage dll määratud protsessi ja kutsuge määratud funktsioon;
  • laadige dll;
  • käivitage protsess, kutsudes välja CreateProcess();
  • lugeda etteantud faili sisu;
  • kirjutada andmed määratud faili;
  • kustutage määratud fail.

Nimega torusid saab kasutada kohalikus võrgus värskendatud moodulite ja konfiguratsiooniandmete levitamiseks Duquga nakatunud arvutite vahel. Lisaks võis Duqu toimida puhverserverina teistele nakatunud arvutitele (millel ei olnud lüüsi tulemüüri sätete tõttu juurdepääsu Internetile). Mõnel Duqu versioonil puudus RPC-funktsioon.

Tuntud "kasulikud koormused"

Symantec avastas Duqu juhtimiskeskusest käsu all alla laaditud vähemalt nelja tüüpi kasulikke koormaid.
Pealegi oli ainult üks neist resident ja kompileeritud käivitatava failina (exe), mis salvestati kettale. Ülejäänud kolm rakendati dll-teekidena. Need laaditi dünaamiliselt ja käivitati mällu ilma kettale salvestamata.

Resident "kasutav koormus" oli spioonimoodul (infovarastaja) klahvilogija funktsioonidega. Just selle VirusTotalile saatmisega algas töö Duqu uurimistööga. Peamine spioonifunktsioon oli ressursis, mille esimesed 8 kilobaiti sisaldas osa galaktika NGC 6745 fotost (kamuflaaži jaoks). Siinkohal tuleb meenutada, et 2012. aasta aprillis avaldas mõni meedia teabe (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) selle kohta, et Iraan puutus kokku mõne pahatahtliku tarkvaraga "Stars", samas kui üksikasjad juhtunut ei avalikustatud. Võib-olla avastati toona Iraanis just selline Duqu kasuliku koorma näidis, sellest ka nimi "Tähed".
Spioonimoodul kogus järgmist teavet:

  • jooksvate protsesside loend, teave praeguse kasutaja ja domeeni kohta;
  • loogiliste draivide loend, sealhulgas võrgudraivid;
  • ekraanipildid;
  • võrguliidese aadressid, marsruutimistabelid;
  • klaviatuuri klahvivajutuste logifail;
  • avatud rakendusakende nimed;
  • saadaolevate võrguressursside loend (jagamisressursse);
  • kõigi ketaste, sealhulgas eemaldatavate ketaste failide täielik loetelu;
  • "võrgukeskkonnas" olevate arvutite loend.

Teine spioonimoodul (infovarastaja) oli juba kirjeldatud, kuid dll-teekina kompileeritud variatsioon, millest eemaldati klahvilogija funktsioonid, failide loendi koostamine ja domeenis olevate arvutite loetlemine.
Järgmine moodul (luure) kogutud süsteemiteave:

  • kas arvuti on osa domeenist;
  • Windowsi süsteemikataloogide teed;
  • operatsioonisüsteemi versioon;
  • praegune kasutajanimi;
  • võrguadapterite loend;
  • süsteem ja kohalik aeg, samuti ajavöönd.

Viimane moodul (eluea pikendaja) rakendas funktsiooni, et suurendada töö lõpetamiseni jäänud päevade arvu väärtust (salvestatud põhimooduli konfiguratsiooniandmete faili). Vaikimisi määrati selle väärtuseks olenevalt Duqu modifikatsioonist 30 või 36 päeva ja seda vähendati iga päev ühe võrra.

Käsukeskused

20. oktoobril 2011 (kolm päeva pärast avastuse kohta teabe levitamist) viisid Duqu operaatorid läbi protseduuri, et hävitada juhtimiskeskuste toimimise jäljed. Käsukeskused asusid häkitud serverites üle maailma – Vietnamis, Indias, Saksamaal, Singapuris, Šveitsis, Suurbritannias, Hollandis ja Lõuna-Koreas. Huvitaval kombel töötasid kõik tuvastatud serverid CentOS-i versioonid 5.2, 5.4 või 5.5. OS-id olid nii 32-bitised kui ka 64-bitised. Vaatamata asjaolule, et kõik käsukeskuste tööga seotud failid kustutati, suutsid Kaspersky Labi spetsialistid osa teabest LOG-failidest tühjast ruumist taastada. Kõige huvitavam on see, et serverite ründajad asendasid alati OpenSSH 4.3 vaikepaketi versiooniga 5.8. See võib viidata sellele, et serverite häkkimiseks kasutati OpenSSH 4.3 tundmatut haavatavust. Mitte kõiki süsteeme ei kasutatud juhtimiskeskustena. Mõningaid, otsustades vigade põhjal sshd logides, kui üritati liiklust pordidesse 80 ja 443 ümber suunata, kasutati lõppkäsukeskustega ühenduse loomiseks puhverserverina.

Kuupäevad ja moodulid

2011. aasta aprillis levitatud Wordi dokument, mida Kaspersky Lab uuris, sisaldas installiprogrammi allalaadimisdraiverit koostamise kuupäevaga 31. august 2007. Sarnase draiveri (suurus - 20608 baiti, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) CrySysi laborites leitud dokumendis oli koostamise kuupäev 21. veebruar 2008. Lisaks leidsid Kaspersky Labi eksperdid automaatkäivitusdraiveri rndismpc.sys (suurus - 19968 baiti, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) kuupäevaga 20. jaanuar 2008. Ühtegi 2009 märgiga komponenti ei leitud. Duqu üksikute osade koostamise ajatemplite põhjal võib selle arendus ulatuda 2007. aasta algusesse. Selle varaseim avaldumine on seotud ~DO tüüpi ajutiste failide tuvastamisega (tõenäoliselt loodud mõne nuhkvaramooduli poolt), mille loomise kuupäev on 28. november 2008 (artikkel "Duqu & Stuxnet: huvitavate sündmuste ajaskaala"). Viimane Duquga seotud kuupäev oli 23. veebruar 2012, mis sisaldub Symanteci 2012. aasta märtsis avastatud installiprogrammi allalaadimisdraiveris.

Kasutatud teabeallikad:

artiklite sari Duqu kohta Kaspersky Labist;
Symanteci analüütiline aruanne "W32.Duqu Järgmise Stuxneti eelkäija", versioon 1.4, november 2011 (pdf).

Allikas: www.habr.com

Lisa kommentaar