Duqu ir ļaunprātīga matrjoŔka

Ievads

1. gada 2011. septembrÄ« no Ungārijas uz VirusTotal vietni tika nosÅ«tÄ«ts fails ar nosaukumu ~DN1.tmp. TobrÄ«d failu kā ļaunprātÄ«gu atklāja tikai divi pretvÄ«rusu dzinēji ā€“ BitDefender un AVIRA. Tā sākās Duku stāsts. Raugoties nākotnē, jāsaka, ka Duqu ļaunprogrammatÅ«ras saime tika nosaukta pēc Ŕī faila nosaukuma. Tomēr Å”is fails ir pilnÄ«gi neatkarÄ«gs spiegprogrammatÅ«ras modulis ar taustiņu bloÄ·Ä“Å”anas funkcijām, kas instalēts, iespējams, izmantojot ļaunprātÄ«gu lejupielādētāju-pilinātāju, un to var uzskatÄ«t tikai par ā€œlietderÄ«go slodziā€, ko Duqu ļaunprātÄ«ga programmatÅ«ra ielādējusi tās darbÄ«bas laikā, nevis kā komponentu ( modulis) no Duqu . Viens no Duqu komponentiem Virustotal servisam tika nosÅ«tÄ«ts tikai 9.septembrÄ«. Tā atŔķirÄ«gā iezÄ«me ir C-Media digitāli parakstÄ«ts draiveris. Daži eksperti nekavējoties sāka zÄ«mēt analoÄ£ijas ar citu slavenu ļaunprātÄ«gas programmatÅ«ras piemēru - Stuxnet, kas arÄ« izmantoja parakstÄ«tus draiverus. Kopējais ar Duqu inficēto datoru skaits, ko atklāj dažādas antivÄ«rusu kompānijas visā pasaulē, ir vairāki desmiti. Daudzi uzņēmumi apgalvo, ka Irāna atkal ir galvenais mērÄ·is, taču, spriežot pēc infekciju Ä£eogrāfiskā izplatÄ«bas, to nevar droÅ”i apgalvot.
Duqu ir ļaunprātīga matrjoŔka
Å ajā gadÄ«jumā jums vajadzētu pārliecinoÅ”i runāt tikai par citu uzņēmumu ar jaunu vārdu APT (uzlabots pastāvÄ«gs drauds).

Sistēmas ievieÅ”anas procedÅ«ra

Ungārijas organizācijas CrySyS (BudapeÅ”tas TehnoloÄ£iju un ekonomikas universitātes Ungārijas kriptogrāfijas un sistēmu droŔības laboratorija) speciālistu veiktās izmeklÄ“Å”anas rezultātā tika atklāts uzstādÄ«tājs (pilinātājs), caur kuru sistēma tika inficēta. Tas bija Microsoft Word fails ar win32k.sys draivera ievainojamÄ«bas izmantoÅ”anu (MS11-087, ko Microsoft aprakstÄ«ja 13. gada 2011. novembrÄ«), kas ir atbildÄ«gs par TTF fontu renderÄ“Å”anas mehānismu. Ekspluatācijas čaulas kodā tiek izmantots dokumentā iegults fonts ar nosaukumu "Dexter Regular", kurā kā fonta veidotājs ir norādÄ«ts Showtime Inc.. Kā redzat, Duqu radÄ«tājiem humora izjÅ«ta nav sveÅ”a: Deksters ir sērijveida slepkava, tāda paÅ”a nosaukuma televÄ«zijas seriāla varonis, ko veido Showtime. Deksters nogalina tikai (ja iespējams) noziedzniekus, tas ir, pārkāpj likumu likumÄ«bas vārdā. Iespējams, Ŕādā veidā Duqu izstrādātāji ironizē, ka nodarbojas ar nelegālām darbÄ«bām labiem mērÄ·iem. E-pastu sÅ«tÄ«Å”ana tika veikta mērÄ·tiecÄ«gi. SÅ«tÄ«jums, visticamāk, izmantoja kompromitētus (uzlauztus) datorus kā starpnieku, lai apgrÅ«tinātu izsekoÅ”anu.
Tādējādi Word dokumentā bija Ŕādi komponenti:

  • teksta saturs;
  • iebÅ«vēts fonts;
  • izmantot čaulas kodu;
  • vadÄ«tājs;
  • instalētājs (DLL bibliotēka).

Ja tas bija veiksmīgs, ekspluatācijas čaulas kods veica Ŕādas darbības (kodola režīmā):

  • tika veikta atkārtotas inficÄ“Å”anās pārbaude; Å”im nolÅ«kam reÄ£istrā tika pārbaudÄ«ta atslēgas ā€œCF4Dā€ klātbÅ«tne adresē ā€œHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1ā€; ja tas bija pareizi, čaulas kods pabeidza tā izpildi;
  • tika atÅ”ifrēti divi faili - draiveris (sys) un instalētājs (dll);
  • draiveris tika ievadÄ«ts procesā services.exe un palaists instalÄ“Å”anas programma;
  • Visbeidzot, čaulas kods izdzēsa sevi ar nullēm atmiņā.

Sakarā ar to, ka win32k.sys tiek izpildÄ«ts zem priviliģētā lietotāja 'Sistēmas', Duqu izstrādātāji ir eleganti atrisinājuÅ”i gan nesankcionētas palaiÅ”anas, gan tiesÄ«bu eskalācijas problēmu (darboÅ”anos ar lietotāja kontu ar ierobežotām tiesÄ«bām).
Pēc kontroles saņemÅ”anas instalētājs atÅ”ifrēja trÄ«s tajā esoÅ”os datu blokus atmiņā, kas satur:

  • parakstÄ«ts draiveris (sys);
  • galvenais modulis (dll);
  • instalētāja konfigurācijas dati (pnf).

InstalÄ“Å”anas programmas konfigurācijas datos tika norādÄ«ts datumu diapazons (divu laikspiedolu veidā - sākums un beigas). Instalētājs pārbaudÄ«ja, vai tajā ir iekļauts paÅ”reizējais datums, un, ja nē, tas pabeidza tā izpildi. ArÄ« instalētāja konfigurācijas datos bija nosaukumi, ar kuriem tika saglabāts draiveris un galvenais modulis. Å ajā gadÄ«jumā galvenais modulis tika saglabāts diskā Å”ifrētā veidā.

Duqu ir ļaunprātīga matrjoŔka

Lai automātiski palaistu Duqu, tika izveidots pakalpojums, izmantojot draivera failu, kas lidojuma laikā atÅ”ifrēja galveno moduli, izmantojot reÄ£istrā saglabātās atslēgas. Galvenais modulis satur savu konfigurācijas datu bloku. Pirmoreiz palaižot, tas tika atÅ”ifrēts, tajā tika ievadÄ«ts instalÄ“Å”anas datums, pēc tam tas tika atkārtoti Å”ifrēts un saglabāts galvenajā modulÄ«. Tādējādi ietekmētajā sistēmā pēc veiksmÄ«gas instalÄ“Å”anas tika saglabāti trÄ«s faili - draiveris, galvenais modulis un tā konfigurācijas datu fails, savukārt pēdējie divi faili tika saglabāti diskā Å”ifrētā veidā. Visas dekodÄ“Å”anas procedÅ«ras tika veiktas tikai atmiņā. Å Ä« sarežģītā instalÄ“Å”anas procedÅ«ra tika izmantota, lai samazinātu pretvÄ«rusu programmatÅ«ras atklāŔanas iespēju.

Galvenais modulis

Galvenais modulis (resurss 302), saskaņā ar informācija uzņēmums Kaspersky Lab, kas rakstÄ«ts, izmantojot MSVC 2008 tÄ«rā C valodā, bet izmantojot objektorientētu pieeju. Å Ä« pieeja nav raksturÄ«ga, izstrādājot ļaunprātÄ«gu kodu. Parasti Ŕāds kods tiek rakstÄ«ts C valodā, lai samazinātu izmēru un atbrÄ«votos no netieÅ”ajiem izsaukumiem, kas raksturÄ«gi C++. Å eit ir zināma simbioze. Turklāt tika izmantota uz notikumiem balstÄ«ta arhitektÅ«ra. Kaspersky Lab darbinieki sliecas uz teoriju, ka galvenais modulis tika uzrakstÄ«ts, izmantojot pirmsprocesora pievienojumprogrammu, kas ļauj rakstÄ«t C kodu objekta stilā.
Galvenais modulis ir atbildÄ«gs par operatoru komandu saņemÅ”anas procedÅ«ru. Duqu nodroÅ”ina vairākas mijiedarbÄ«bas metodes: izmantojot HTTP un HTTPS protokolus, kā arÄ« izmantojot nosauktas caurules. HTTP(S) tika norādÄ«ti komandcentru domēnu nosaukumi un nodroÅ”ināta iespēja strādāt caur starpniekserveri - tiem tika norādÄ«ts lietotājvārds un parole. Kanālam ir norādÄ«ta IP adrese un tās nosaukums. NorādÄ«tie dati tiek glabāti galvenā moduļa konfigurācijas datu blokā (Å”ifrētā veidā).
Lai izmantotu nosauktās caurules, mēs uzsākām savu RPC servera ievieÅ”anu. Tas atbalstÄ«ja Ŕādas septiņas funkcijas:

  • atgriezt instalēto versiju;
  • ievadiet norādÄ«tajā procesā dll un izsauciet norādÄ«to funkciju;
  • ielādēt dll;
  • sākt procesu, izsaucot CreateProcess();
  • lasÄ«t dotā faila saturu;
  • ierakstÄ«t datus norādÄ«tajā failā;
  • dzēst norādÄ«to failu.

Nosauktās caurules var izmantot vietējā tīklā, lai izplatītu atjauninātus moduļus un konfigurācijas datus starp Duqu inficētiem datoriem. Turklāt Duqu varētu darboties kā starpniekserveris citiem inficētiem datoriem (kuriem vārtejas ugunsmūra iestatījumu dēļ nebija piekļuves internetam). Dažām Duqu versijām nebija RPC funkcionalitātes.

Zināmās "lietderīgās slodzes"

Symantec atklāja vismaz četru veidu kravnesības, kas tika lejupielādētas saskaņā ar komandu no Duqu vadības centra.
Turklāt tikai viens no tiem bija rezidents un tika kompilēts kā izpildāms fails (exe), kas tika saglabāts diskā. AtlikuŔās trÄ«s tika ieviestas kā dll bibliotēkas. Tie tika ielādēti dinamiski un izpildÄ«ti atmiņā, nesaglabājot diskā.

Rezidenta "lietderÄ«gā krava" bija spiegoÅ”anas modulis (infostealer) ar taustiņu bloÄ·Ä“Å”anas funkcijām. TieÅ”i nosÅ«tot to VirusTotal, sākās darbs pie Duqu izpētes. Galvenā spiegu funkcionalitāte bija resursā, kura pirmajos 8 kilobaitos bija daļa no galaktikas NGC 6745 fotoattēla (maskÄ“Å”anai). Å eit jāatgādina, ka 2012. gada aprÄ«lÄ« daži plaÅ”saziņas lÄ«dzekļi publicēja informāciju (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), ka Irāna bija pakļauta kādai ļaunprātÄ«gai programmatÅ«rai ā€œStarsā€, savukārt informācija par incidents netika atklāts. VarbÅ«t tieÅ”i Ŕāds Duqu ā€œderÄ«gās kravasā€ paraugs tika atklāts Irānā, tāpēc arÄ« nosaukums ā€œStarsā€.
Spiegu modulis apkopoja Ŕādu informāciju:

  • darbojoÅ”os procesu saraksts, informācija par paÅ”reizējo lietotāju un domēnu;
  • loÄ£isko disku saraksts, ieskaitot tÄ«kla diskus;
  • ekrānŔāviņi;
  • tÄ«kla interfeisa adreses, marÅ”rutÄ“Å”anas tabulas;
  • tastatÅ«ras taustiņu nospieÅ”anas žurnālfails;
  • atvērto lietojumprogrammu logu nosaukumi;
  • pieejamo tÄ«kla resursu saraksts (koplietoÅ”anas resursi);
  • pilns failu saraksts visos diskos, ieskaitot noņemamos;
  • datoru saraksts ā€œtÄ«kla vidēā€.

Vēl viens spiegu modulis (infostealer) bija jau aprakstÄ«tā variācija, bet kompilēta kā dll bibliotēka; no tā tika izņemtas keyloggera funkcijas, failu saraksta sastādÄ«Å”ana un domēnā iekļauto datoru uzskaitÄ«Å”ana.
Nākamais modulis (izlÅ«koÅ”ana) apkopotā sistēmas informācija:

  • vai dators ir daļa no domēna;
  • ceļi uz Windows sistēmas direktorijiem;
  • operētājsistēmas versija;
  • paÅ”reizējais lietotājvārds;
  • tÄ«kla adapteru saraksts;
  • sistēma un vietējais laiks, kā arÄ« laika josla.

Pēdējais modulis (mūža pagarinātājs) ieviesa funkciju, lai palielinātu lÄ«dz darba pabeigÅ”anai atlikuÅ”o dienu skaita vērtÄ«bu (glabājas galvenā moduļa konfigurācijas datu failā). Pēc noklusējuma Ŕī vērtÄ«ba tika iestatÄ«ta uz 30 vai 36 dienām atkarÄ«bā no Duqu modifikācijas un katru dienu tika samazināta par vienu.

Komandcentri

20. gada 2011. oktobrÄ« (trÄ«s dienas pēc informācijas par atklājumu izplatÄ«Å”anas) Duqu operatori veica procedÅ«ru, lai iznÄ«cinātu komandcentru darbÄ«bas pēdas. Komandcentri atradās uz uzlauztiem serveriem visā pasaulē ā€“ Vjetnamā, Indijā, Vācijā, SingapÅ«rā, Å veicē, Lielbritānijā, Holandē, Dienvidkorejā. Interesanti, ka visos identificētajos serveros darbojās CentOS versijas 5.2, 5.4 vai 5.5. OS bija gan 32 bitu, gan 64 bitu. Neskatoties uz to, ka visi ar komandcentru darbÄ«bu saistÄ«tie faili tika izdzēsti, Kaspersky Lab speciālistiem izdevās atgÅ«t daļu informācijas no LOG failiem no brÄ«vas vietas. Interesantākais fakts ir tas, ka uzbrucēji serveros vienmēr aizstāja OpenSSH 4.3 noklusējuma pakotni ar versiju 5.8. Tas var norādÄ«t, ka serveru uzlauÅ”anai tika izmantota nezināma OpenSSH 4.3 ievainojamÄ«ba. Ne visas sistēmas tika izmantotas kā komandcentri. Daži, spriežot pēc kļūdām sshd žurnālos, mēģinot novirzÄ«t trafiku uz portiem 80 un 443, tika izmantoti kā starpniekserveris, lai izveidotu savienojumu ar gala komandu centriem.

Datumi un moduļi

2011. gada aprÄ«lÄ« izplatÄ«tajā Word dokumentā, kuru pārbaudÄ«ja Kaspersky Lab, bija instalÄ“Å”anas programmas lejupielādes draiveris, kura apkopoÅ”anas datums ir 31. gada 2007. augusts. LÄ«dzÄ«ga draivera (izmērs - 20608 baiti, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) CrySys laboratorijās atrastā dokumentā kompilācijas datums bija 21. gada 2008. februāris. Turklāt Kaspersky Lab eksperti atrada automātiskās palaiÅ”anas draiveri rndismpc.sys (izmērs - 19968 baiti, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) ar datumu 20. gada 2008. janvāris. Netika atrasta neviena sastāvdaļa, kas apzÄ«mēta ar 2009. gadu. Pamatojoties uz Duqu atseviŔķu daļu apkopojuma laikspiedoliem, tā izstrāde varētu bÅ«t datēta ar 2007. gada sākumu. Tā agrākā izpausme ir saistÄ«ta ar ~DO tipa pagaidu failu noteikÅ”anu (iespējams, tos izveidojis kāds no spiegprogrammatÅ«ras moduļiem), kuru izveides datums ir 28. gada 2008. novembris (raksts "Duqu & Stuxnet: interesantu notikumu laika skala"). Pēdējais datums, kas saistÄ«ts ar Duqu, bija 23. gada 2012. februāris, kas ietverts instalÄ“Å”anas programmas lejupielādes draiverÄ«, ko Symantec atklāja 2012. gada martā.

Izmantotie informācijas avoti:

rakstu sērija par Duqu no Kaspersky Lab;
Symantec analÄ«tiskais ziņojums "W32.Duqu Nākamā Stuxnet priekÅ”tecis", versija 1.4, 2011. gada novembris (pdf).

Avots: www.habr.com

Pievieno komentāru