Duqu je zákerná matrioška

Úvod

Dňa 1. septembra 2011 bol na webovú stránku VirusTotal z Maďarska odoslaný súbor s názvom ~DN1.tmp. V tom čase bol súbor detegovaný ako škodlivý iba dvoma antivírusovými motormi - BitDefender a AVIRA. Takto sa začal príbeh Duqu. Pri pohľade do budúcnosti treba povedať, že rodina malvéru Duqu bola pomenovaná podľa názvu tohto súboru. Tento súbor je však úplne nezávislý spywarový modul s funkciami keylogger, nainštalovaný pravdepodobne pomocou škodlivého downloader-droppera a možno ho považovať iba za „úžitkovú záťaž“ načítanú malvérom Duqu počas jeho prevádzky, a nie za komponent ( modul) Duqu . Jedna z komponentov Duqu bola odoslaná do služby Virustotal až 9. septembra. Jeho charakteristickým znakom je ovládač digitálne podpísaný spoločnosťou C-Media. Niektorí odborníci okamžite začali kresliť analógie s ďalším slávnym príkladom malvéru - Stuxnet, ktorý tiež používal podpísané ovládače. Celkový počet počítačov infikovaných Duqu detekovaných rôznymi antivírusovými spoločnosťami po celom svete sa pohybuje v desiatkach. Mnoho spoločností tvrdí, že hlavným cieľom je opäť Irán, ale súdiac podľa geografického rozloženia infekcií sa to nedá s istotou povedať.
Duqu je zákerná matrioška
V tomto prípade by ste mali s istotou hovoriť iba o inej spoločnosti s novým slovom APT (pokročilá pretrvávajúca hrozba).

Postup implementácie systému

Vyšetrovanie, ktoré viedli špecialisti z maďarskej organizácie CrySyS (Maďarské laboratórium kryptografie a systémovej bezpečnosti na Budapeštianskej technickej a ekonomickej univerzite), viedlo k odhaleniu inštalátora (kvapkadla), cez ktorý bol systém infikovaný. Išlo o súbor Microsoft Word s exploitom pre zraniteľnosť ovládača win32k.sys (MS11-087, popísaná Microsoftom 13. novembra 2011), ktorý je zodpovedný za mechanizmus vykresľovania fontov TTF. Shell kód exploitu používa font s názvom 'Dexter Regular' vložený do dokumentu, pričom ako tvorca fontu je uvedený Showtime Inc. Ako môžete vidieť, tvorcom Duqu nie je cudzí zmysel pre humor: Dexter je sériový vrah, hrdina rovnomenného televízneho seriálu z produkcie Showtime. Dexter zabíja iba (ak je to možné) zločincov, to znamená, že porušuje zákon v mene zákonnosti. Pravdepodobne týmto spôsobom vývojári Duqu ironizujú, že sa zapájajú do nezákonných aktivít na dobré účely. Odosielanie emailov bolo robené účelovo. Zásielka s najväčšou pravdepodobnosťou používala kompromitované (hacknuté) počítače ako sprostredkovateľa na sťaženie sledovania.
Dokument programu Word teda obsahoval nasledujúce komponenty:

  • textový obsah;
  • vstavané písmo;
  • využívať shell kód;
  • vodič;
  • inštalačný program (DLL knižnica).

Ak je úspešný, exploit shell kód vykonal nasledujúce operácie (v režime jadra):

  • bola vykonaná kontrola na opätovnú infekciu, prítomnosť kľúča 'CF4D' bola skontrolovaná v registri na adrese 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1', ak to bolo správne, shell kód dokončil svoje vykonanie;
  • boli dešifrované dva súbory - ovládač (sys) a inštalačný program (dll);
  • ovládač bol vložený do procesu services.exe a spustený inštalačný program;
  • Nakoniec sa kód shellu vymazal s nulami v pamäti.

Vzhľadom na to, že win32k.sys je spúšťaný pod privilegovaným používateľom 'System', vývojári Duqu elegantne vyriešili problém neoprávneného spustenia a eskalácie práv (beží pod užívateľským účtom s obmedzenými právami).
Po prijatí kontroly inštalačný program dešifroval tri bloky údajov, ktoré sa v ňom nachádzajú v pamäti, obsahujúce:

  • podpísaný ovládač (sys);
  • hlavný modul (dll);
  • konfiguračné údaje inštalátora (pnf).

V konfiguračných údajoch inštalátora bol zadaný rozsah dátumov (vo forme dvoch časových pečiatok – začiatok a koniec). Inštalátor skontroloval, či je v ňom zahrnutý aktuálny dátum, a ak nie, dokončil jeho vykonanie. V konfiguračných údajoch inštalátora boli aj názvy, pod ktorými bol uložený ovládač a hlavný modul. V tomto prípade bol hlavný modul uložený na disk v zašifrovanej podobe.

Duqu je zákerná matrioška

Na automatické spustenie Duqu bola vytvorená služba pomocou súboru ovládača, ktorý dešifroval hlavný modul za behu pomocou kľúčov uložených v registri. Hlavný modul obsahuje vlastný blok konfiguračných údajov. Pri prvom spustení bol dešifrovaný, bol do neho zadaný dátum inštalácie, po ktorom bol opäť zašifrovaný a uložený hlavným modulom. V dotknutom systéme sa teda po úspešnej inštalácii uložili tri súbory – ovládač, hlavný modul a jeho konfiguračný dátový súbor, pričom posledné dva súbory boli uložené na disku v zašifrovanej podobe. Všetky dekódovacie procedúry boli vykonané iba v pamäti. Tento zložitý inštalačný postup bol použitý na minimalizáciu možnosti detekcie antivírusovým softvérom.

Hlavný modul

Hlavný modul (zdroj 302), podľa informácie spoločnosti Kaspersky Lab, napísaný pomocou MSVC 2008 v čistom C, ale s použitím objektovo orientovaného prístupu. Tento prístup je pri vývoji škodlivého kódu netypický. Spravidla je takýto kód napísaný v C, aby sa zmenšila veľkosť a zbavili sa implicitných volaní, ktoré sú vlastné C++. Je tu určitá symbióza. Navyše bola použitá architektúra riadená udalosťami. Zamestnanci spoločnosti Kaspersky Lab sa prikláňajú k teórii, že hlavný modul bol napísaný pomocou predprocesorového doplnku, ktorý umožňuje písať kód C v objektovom štýle.
Hlavný modul je zodpovedný za postup prijímania príkazov od operátorov. Duqu poskytuje niekoľko spôsobov interakcie: pomocou protokolov HTTP a HTTPS, ako aj pomocou pomenovaných kanálov. Pre HTTP(S) boli špecifikované názvy domén príkazových centier a bola poskytnutá schopnosť pracovať cez proxy server - bolo pre ne špecifikované používateľské meno a heslo. Pre kanál je zadaná IP adresa a jej názov. Zadané údaje sú uložené v hlavnom konfiguračnom dátovom bloku modulu (v zašifrovanej forme).
Aby sme mohli používať pomenované kanály, spustili sme vlastnú implementáciu servera RPC. Podporuje nasledujúcich sedem funkcií:

  • vrátiť nainštalovanú verziu;
  • vložiť dll do zadaného procesu a zavolať zadanú funkciu;
  • načítať dll;
  • spustiť proces volaním CreateProcess();
  • čítať obsah daného súboru;
  • zapisovať údaje do určeného súboru;
  • odstráňte zadaný súbor.

Pomenované kanály by sa mohli použiť v rámci lokálnej siete na distribúciu aktualizovaných modulov a konfiguračných údajov medzi počítačmi infikovanými Duqu. Okrem toho mohol Duqu fungovať ako proxy server pre iné infikované počítače (ktoré nemali prístup na internet kvôli nastaveniam brány firewall na bráne). Niektoré verzie Duqu nemali funkciu RPC.

Známe "užitočné zaťaženia"

Symantec objavil najmenej štyri typy užitočných dát stiahnutých pod velením z riadiaceho centra Duqu.
Navyše iba jeden z nich bol rezidentný a skompilovaný ako spustiteľný súbor (exe), ktorý bol uložený na disk. Zvyšné tri boli implementované ako dll knižnice. Boli načítané dynamicky a spustené v pamäti bez uloženia na disk.

Rezidentným „užitočným zaťažením“ bol špionážny modul (infokrader) s funkciami keylogger. Práve jeho odoslaním do VirusTotal sa začala práca na výskume Duqu. Hlavná špionážna funkcia bola v zdroji, z ktorého prvých 8 kilobajtov obsahovalo časť fotografie galaxie NGC 6745 (na maskovanie). Tu treba pripomenúť, že v apríli 2012 niektoré médiá zverejnili informácie (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), že Irán bol vystavený nejakému škodlivému softvéru „Hviezdy“, zatiaľ čo podrobnosti o incident nebol zverejnený. Možno to bola len taká vzorka „užitočného zaťaženia“ Duqu, ktorá bola objavená vtedy v Iráne, odtiaľ názov „Hviezdy“.
Špionážny modul zhromaždil nasledujúce informácie:

  • zoznam spustených procesov, informácie o aktuálnom používateľovi a doméne;
  • zoznam logických jednotiek vrátane sieťových jednotiek;
  • snímky obrazovky;
  • adresy sieťového rozhrania, smerovacie tabuľky;
  • log súbor stlačení klávesov na klávesnici;
  • názvy otvorených okien aplikácií;
  • zoznam dostupných sieťových zdrojov (zdieľanie zdrojov);
  • úplný zoznam súborov na všetkých diskoch vrátane vymeniteľných;
  • zoznam počítačov v „sieťovom prostredí“.

Ďalší špionážny modul (infokrader) bola variáciou toho, čo už bolo opísané, ale skompilovaná ako knižnica dll, funkcie keyloggeru, zostavujúceho zoznam súborov a zoznam počítačov zahrnutých v doméne, boli z neho odstránené.
Ďalší modul (prieskum) zhromaždené systémové informácie:

  • či je počítač súčasťou domény;
  • cesty k adresárom systému Windows;
  • verzia operačného systému;
  • aktuálne používateľské meno;
  • zoznam sieťových adaptérov;
  • systémový a miestny čas, ako aj časové pásmo.

Posledný modul (predlžovač životnosti) implementovala funkciu na zvýšenie hodnoty (uloženej v súbore konfiguračných údajov hlavného modulu) počtu dní zostávajúcich do dokončenia úlohy. Štandardne bola táto hodnota nastavená na 30 alebo 36 dní v závislosti od modifikácie Duqu a každý deň sa znížila o jeden.

Veliteľské centrá

20. októbra 2011 (tri dni po šírení informácie o objave) operátori Duqu vykonali postup na zničenie stôp po fungovaní veliteľských centier. Veliteľské centrá boli umiestnené na napadnutých serveroch po celom svete – vo Vietname, Indii, Nemecku, Singapure, Švajčiarsku, Veľkej Británii, Holandsku a Južnej Kórei. Je zaujímavé, že všetky identifikované servery používali CentOS verzie 5.2, 5.4 alebo 5.5. Operačné systémy boli 32-bitové aj 64-bitové. Napriek tomu, že všetky súbory súvisiace s prevádzkou príkazových centier boli vymazané, špecialisti Kaspersky Lab dokázali obnoviť niektoré informácie zo súborov LOG z nevyužitého priestoru. Najzaujímavejším faktom je, že útočníci na serveroch vždy nahradili predvolený balík OpenSSH 4.3 verziou 5.8. To môže naznačovať, že na hacknutie serverov bola použitá neznáma zraniteľnosť v OpenSSH 4.3. Nie všetky systémy sa používali ako veliteľské centrá. Niektoré, súdiac podľa chýb v protokoloch sshd pri pokuse o presmerovanie prevádzky pre porty 80 a 443, boli použité ako proxy server na pripojenie ku koncovým riadiacim centrám.

Termíny a moduly

Dokument programu Word distribuovaný v apríli 2011, ktorý preskúmala spoločnosť Kaspersky Lab, obsahoval ovládač na stiahnutie inštalátora s dátumom kompilácie 31. augusta 2007. Podobný ovládač (veľkosť - 20608 bajtov, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) v dokumente nájdenom v laboratóriách CrySys mal dátum kompilácie 21. februára 2008. Okrem toho odborníci spoločnosti Kaspersky Lab našli ovládač automatického spustenia rndismpc.sys (veľkosť - 19968 bajtov, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) s dátumom 20. januára 2008. Nenašli sa žiadne komponenty s označením 2009. Na základe časových pečiatok zostavovania jednotlivých častí Duqu by sa jeho vývoj mohol datovať začiatkom roku 2007. Jeho najskorší prejav je spojený s detekciou dočasných súborov typu ~DO (pravdepodobne vytvorených niektorým zo spywarových modulov), ktorých dátum vytvorenia je 28. november 2008 (článok „Duqu & Stuxnet: Časová os zaujímavých udalostí“). Najnovší dátum spojený s Duqu bol 23. február 2012, ktorý sa nachádzal v ovládači na stiahnutie inštalačného programu, ktorý spoločnosť Symantec objavila v marci 2012.

Použité zdroje informácií:

séria článkov o Duqu z Kaspersky Lab;
Analytická správa spoločnosti Symantec "W32.Duqu Predchodca ďalšieho Stuxnetu", verzia 1.4, november 2011 (pdf).

Zdroj: hab.com

Pridať komentár