Duqu - zákeřná hnízdící panenka

úvod

1. září 2011 byl na web VirusTotal z Maďarska odeslán soubor s názvem ~DN1.tmp. V té době byl soubor detekován jako škodlivý pouze dvěma antivirovými motory - BitDefender a AVIRA. Tak začal příběh Duqu. Při pohledu do budoucna je třeba říci, že rodina malwaru Duqu byla pojmenována podle názvu tohoto souboru. Tento soubor je však zcela nezávislý spywarový modul s funkcemi keyloggeru, nainstalovaný pravděpodobně pomocí škodlivého downloader-dropperu a lze jej považovat pouze za „užitnou zátěž“ načtenou malwarem Duqu během jeho provozu, nikoli za součást ( modul) Duqu. Jedna z komponent Duqu byla odeslána do služby Virustotal teprve 9. září. Jeho charakteristickým rysem je ovladač digitálně podepsaný společností C-Media. Někteří experti okamžitě začali kreslit analogie s dalším slavným příkladem malwaru – Stuxnetem, který také používal podepsané ovladače. Celkový počet počítačů infikovaných Duqu detekovaných různými antivirovými společnostmi po celém světě se pohybuje v desítkách. Mnoho společností tvrdí, že hlavním cílem je opět Írán, ale soudě podle geografického rozložení infekcí to nelze s jistotou říci.
Duqu - zákeřná hnízdící panenka
V tomto případě byste měli s jistotou mluvit pouze o jiné společnosti s novým slovem APT (pokročilá trvalá hrozba).

Postup implementace systému

Šetření, které provedli specialisté z maďarské organizace CrySyS (Maďarská laboratoř kryptografie a systémové bezpečnosti na Budapešťské technické a ekonomické univerzitě), vedlo k odhalení instalátoru (kapky), přes který byl systém infikován. Jednalo se o soubor Microsoft Word s exploitem pro zranitelnost ovladače win32k.sys (MS11-087, popsaný Microsoftem 13. listopadu 2011), který je zodpovědný za mechanismus vykreslování písem TTF. Shell kód exploitu používá font nazvaný 'Dexter Regular' vložený do dokumentu, přičemž jako tvůrce fontu je uvedena Showtime Inc. Jak vidíte, tvůrcům Duqu není cizí smysl pro humor: Dexter je sériový vrah, hrdina stejnojmenného televizního seriálu produkovaného společností Showtime. Dexter zabíjí pouze (pokud možno) zločince, to znamená, že porušuje zákon ve jménu zákonnosti. Pravděpodobně tímto způsobem vývojáři Duqu ironizují, že se zabývají nezákonnými činnostmi pro dobré účely. Odesílání emailů probíhalo účelově. Zásilka s největší pravděpodobností používala kompromitované (hacknuté) počítače jako prostředníka ke ztížení sledování.
Dokument aplikace Word tedy obsahoval následující součásti:

  • textový obsah;
  • vestavěné písmo;
  • využívat shell kód;
  • Řidič;
  • instalační program (DLL knihovna).

V případě úspěchu provedl shell kód exploitu následující operace (v režimu jádra):

  • byla provedena kontrola opětovné infekce, za tímto účelem byla zkontrolována přítomnost klíče 'CF4D' v registru na adrese 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1', pokud to bylo správné, shell kód dokončil své provedení;
  • byly dešifrovány dva soubory - ovladač (sys) a instalační program (dll);
  • ovladač byl vložen do procesu services.exe a spuštěn instalační program;
  • Nakonec se kód shellu vymazal s nulami v paměti.

Vzhledem k tomu, že win32k.sys je spouštěn pod privilegovaným uživatelem 'System', vývojáři Duqu elegantně vyřešili problém jak neoprávněného spuštění, tak eskalace práv (běh pod uživatelským účtem s omezenými právy).
Po obdržení kontroly instalační program dešifroval tři bloky dat obsažených v paměti, které obsahují:

  • podepsaný ovladač (sys);
  • hlavní modul (dll);
  • konfigurační data instalačního programu (pnf).

V konfiguračních datech instalačního programu bylo zadáno časové období (ve formě dvou časových razítek – začátek a konec). Instalační program zkontroloval, zda je v něm zahrnuto aktuální datum, a pokud ne, dokončil jeho provedení. V konfiguračních datech instalačního programu byly také názvy, pod kterými byl uložen ovladač a hlavní modul. V tomto případě byl hlavní modul uložen na disk v zašifrované podobě.

Duqu - zákeřná hnízdící panenka

Pro automatické spuštění Duqu byla vytvořena služba pomocí souboru ovladače, který dešifroval hlavní modul za běhu pomocí klíčů uložených v registru. Hlavní modul obsahuje vlastní blok konfiguračních dat. Při prvním spuštění byl dešifrován, bylo do něj zapsáno datum instalace, poté byl znovu zašifrován a uložen hlavním modulem. V postiženém systému tak byly po úspěšné instalaci uloženy tři soubory - ovladač, hlavní modul a jeho konfigurační datový soubor, přičemž poslední dva soubory byly uloženy na disku v zašifrované podobě. Všechny dekódovací procedury byly prováděny pouze v paměti. Tento složitý instalační postup byl použit k minimalizaci možnosti detekce antivirovým softwarem.

Hlavní modul

Hlavní modul (zdroj 302), podle informace společnosti Kaspersky Lab, napsaný pomocí MSVC 2008 v čistém C, ale s použitím objektově orientovaného přístupu. Tento přístup je při vývoji škodlivého kódu necharakteristický. Zpravidla je takový kód napsán v C, aby se zmenšila velikost a zbavila se implicitních volání obsažených v C++. Je zde určitá symbióza. Navíc byla použita architektura řízená událostmi. Zaměstnanci společnosti Kaspersky Lab se přiklánějí k teorii, že hlavní modul byl napsán pomocí předprocesorového doplňku, který umožňuje psát kód C v objektovém stylu.
Hlavní modul je zodpovědný za postup přijímání příkazů od operátorů. Duqu poskytuje několik metod interakce: pomocí protokolů HTTP a HTTPS a také pomocí pojmenovaných kanálů. Pro HTTP(S) byly zadány názvy domén příkazových center a byla poskytnuta možnost práce přes proxy server – bylo pro ně určeno uživatelské jméno a heslo. Pro kanál je určena IP adresa a její název. Zadaná data jsou uložena v datovém bloku konfigurace hlavního modulu (v zašifrované podobě).
Abychom mohli používat pojmenované kanály, spustili jsme vlastní implementaci serveru RPC. Podporuje následujících sedm funkcí:

  • vrátit nainstalovanou verzi;
  • vložit dll do zadaného procesu a zavolat zadanou funkci;
  • načíst dll;
  • spusťte proces voláním CreateProcess();
  • číst obsah daného souboru;
  • zapisovat data do zadaného souboru;
  • odstranit zadaný soubor.

Pojmenované kanály lze použít v rámci místní sítě k distribuci aktualizovaných modulů a konfiguračních dat mezi počítači infikovanými Duqu. Kromě toho mohl Duqu fungovat jako proxy server pro další infikované počítače (které neměly přístup k internetu kvůli nastavení brány firewall na bráně). Některé verze Duqu neměly funkci RPC.

Známé "užitečné zatížení"

Symantec objevil nejméně čtyři typy dat stažených pod velením z řídicího centra Duqu.
Navíc pouze jeden z nich byl rezidentní a zkompilovaný jako spustitelný soubor (exe), který byl uložen na disk. Zbývající tři byly implementovány jako dll knihovny. Byly načítány dynamicky a spouštěny v paměti, aniž by byly uloženy na disk.

Rezidentní „užitnou zátěží“ byl špionážní modul (infozrádce) s funkcemi keyloggeru. Právě jeho odesláním do VirusTotal začala práce na výzkumu Duqu. Hlavní špionážní funkce byla ve zdroji, jehož prvních 8 kilobajtů obsahovalo část fotografie galaxie NGC 6745 (pro kamufláž). Zde je třeba připomenout, že v dubnu 2012 některá média zveřejnila informace (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), že Írán byl vystaven nějakému škodlivému softwaru „Stars“, zatímco podrobnosti o incident nebyl zveřejněn. Možná to byl právě takový vzorek „nákladu“ Duqu, který byl tehdy objeven v Íránu, odtud název „Hvězdy“.
Špionážní modul shromáždil následující informace:

  • seznam běžících procesů, informace o aktuálním uživateli a doméně;
  • seznam logických jednotek, včetně síťových;
  • snímky obrazovky;
  • adresy síťového rozhraní, směrovací tabulky;
  • log soubor stisknutých kláves;
  • názvy otevřených oken aplikací;
  • seznam dostupných síťových zdrojů (sdílení zdrojů);
  • kompletní seznam souborů na všech discích, včetně vyměnitelných;
  • seznam počítačů v „síťovém prostředí“.

Další špionážní modul (infozrádce) byla variací toho, co již bylo popsáno, ale zkompilováno jako dll knihovna; byly z ní odstraněny funkce keyloggeru, sestavování seznamu souborů a výpis počítačů zahrnutých v doméně.
Další modul (průzkum) shromážděné informace o systému:

  • zda je počítač součástí domény;
  • cesty k adresářům systému Windows;
  • verze operačního systému;
  • aktuální uživatelské jméno;
  • seznam síťových adaptérů;
  • systémový a místní čas a také časové pásmo.

Poslední modul (prodlužovač životnosti) implementovala funkci pro zvýšení hodnoty (uložené v souboru konfiguračních dat hlavního modulu) počtu dní zbývajících do dokončení úlohy. Ve výchozím nastavení byla tato hodnota nastavena na 30 nebo 36 dní v závislosti na modifikaci Duqu a každý den byla snížena o jeden.

Velitelská centra

Dne 20. října 2011 (tři dny po zveřejnění informace o objevu) operátoři Duqu provedli postup ke zničení stop po fungování velitelských center. Velitelská centra byla umístěna na hacknutých serverech po celém světě – ve Vietnamu, Indii, Německu, Singapuru, Švýcarsku, Velké Británii, Holandsku a Jižní Koreji. Je zajímavé, že všechny identifikované servery používaly CentOS verze 5.2, 5.4 nebo 5.5. Operační systémy byly 32bitové i 64bitové. Navzdory skutečnosti, že byly odstraněny všechny soubory související s provozem příkazových center, specialisté společnosti Kaspersky Lab dokázali obnovit některé informace ze souborů LOG z nevyužitého prostoru. Nejzajímavější je, že útočníci na serverech vždy nahradili výchozí balíček OpenSSH 4.3 verzí 5.8. To může znamenat, že k hacknutí serverů byla použita neznámá chyba zabezpečení v OpenSSH 4.3. Ne všechny systémy byly použity jako velitelská centra. Některé, soudě podle chyb v protokolech sshd při pokusu o přesměrování provozu pro porty 80 a 443, byly použity jako proxy server pro připojení ke koncovým velitelským centrům.

Termíny a moduly

Dokument aplikace Word distribuovaný v dubnu 2011, který prověřila společnost Kaspersky Lab, obsahoval ovladač ke stažení instalačního programu s datem kompilace 31. srpna 2007. Podobný ovladač (velikost - 20608 bajtů, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) v dokumentu nalezeném v laboratořích CrySys měl datum kompilace 21. února 2008. Odborníci společnosti Kaspersky Lab navíc našli ovladač automatického spouštění rndismpc.sys (velikost - 19968 bajtů, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) s datem 20. ledna 2008. Nebyly nalezeny žádné součásti označené 2009. Na základě časových razítek kompilace jednotlivých dílů Duqu by se jeho vývoj mohl datovat na začátek roku 2007. Její nejstarší projev je spojen s detekcí dočasných souborů typu ~DO (vytvořených pravděpodobně některým ze spywarových modulů), jejichž datum vytvoření je 28. listopadu 2008 (článek „Duqu & Stuxnet: Časová osa zajímavých událostí“). Nejnovějším datem spojeným s Duqu byl 23. únor 2012 obsažený v ovladači pro stažení instalačního programu, který společnost Symantec objevila v březnu 2012.

Použité zdroje informací:

série článků o Duqu z Kaspersky Lab;
Analytická zpráva společnosti Symantec "W32.Duqu Předchůdce dalšího Stuxnetu", verze 1.4, listopad 2011 (pdf).

Zdroj: www.habr.com

Přidat komentář