Ransomware – „policejní virus“ na pitevním stole

10. 6. 2013
Doba čtení: 11 minut

Sdílet

Tvůrci malwaru kvůli zisku neúnavně vymýšlejí stále nové finty. Jednou z nich je opustit komplikované obchodní modely s prodejem ukradených informací a získat od uživatelů peníze přímo. A pěkně automaticky, ať s tím není mnoho práce. Podívejme se do útrob jednoho konkrétního vyděračského malware.

Setkání s ransomware

Bezpečnostní tým CESNET-CERTS začal v roce 2011 budovat vlastní forenzní laboratoř (FLAB), aby měl možnost podrobně analyzovat závažné bezpečnostní incidenty. Zájem o tuto službu občas projeví i někdo mimo síť spravovanou sdružením CESNET, z.s.p.o., takže v laboratoři skončil také jeden případ vyděračského malware (ransomware). Ransomware se aktuálně vyskytuje na platformě Microsoft Windows, takže úplně nezapadá do zaměření serveru Root.cz, ale i tak jde o poměrně zajímavý kousek malware, který si zasluhuje pozornost.

O existenci tohoto malware, který se zaštiťoval Policií ČR, bylo již popsáno mnoho elektronů. Pěkný popis naleznete například v edukativním varování od CSIRT-MU a pozornost si mimo jiné zasloužil i na webech Bezpecne-online.cz, Windroid.cz nebo Technet.cz.

Ve zkratce, napadený počítač po zapnutí zobrazí přes celou obrazovku výzvu Policie ČR, která uživatele informuje, že se dopustil trestného činu a proto byl jeho počítač zablokován. Samozřejmě mu hrozí vysoký trest, ale pokud do 48 hodin zaplatí dva tisíce Kč pomocí kupónu Ukash nebo PaySafeCard, bude to považováno za vyřízené. Uživatel nevidí svou plochu, nemůže vyvolat správce úloh a začne přemýšlet, co teď bude dělat. Zaplatit? Zajít na policejní služebnu? Zkusit to obejít?

Nechme uživatele řešit své dilema a podívejme se raději na technické pozadí, jak mohl dospět do této nezáviděníhodné pozice.

Seriál vznikl za přispění Národního CSIRT týmu České republiky CSIRT.CZ, který provozuje sdružení CZ.NIC, správce české národní domény. CSIRT.CZ je bezpečnostní tým pro koordinaci řešení bezpečnostních incidentů v počítačových sítích provozovaných v České republice. Cílem jeho členů je pomáhat provozovatelům internetových sítí v České republice zřizovat jejich vlastní bezpečnostní týmy a bezpečnostní infrastrukturu, řešit bezpečnostní incidenty a tím zlepšovat bezpečnost jejich sítí i globálního Internetu.

Způsob analýzy

Analýza malware proběhla na základě zajištěných stop – obrazu disku napadeného počítače, obrazu operační paměti napadeného počítače s aktivním malwarem a odchyceného síťového provozu zachycujícího průběh zadání platebního kódu. Všechna tato data byla dodána zákazníkem forenzní laboratoře.

Zásadní informace byly získány reverzní analýzou malware, který bylo nejprve třeba dekódovat, protože byl použit packer Morphine. Vlastní analýza probíhala s pomocí specializovaných nástrojů pro reverzní inženýrství OllyDbg a IDA Pro. Druhý zmiňovaný nástroj je schopen instrukce a jejich návaznosti zobrazovat v grafické podobě, což zásadně ulehčuje práci. Navíc díky moulu FLIRT (Fast Library Identification and Recognition Technology) umí rozpoznat standardní knihovní funkce běžných kompilerů a urychlit analýzu.

Bylo zjištěno, že malware se skládá ze dvou nezávislých částí. První částí je klient botnetu, který napadený počítač zapojí do příslušné sítě a očekává pokyny z C&C serveru. Druhou částí je pak vlastní aplikace, kterou uživatel vidí a která po něm vyžaduje platbu. 

Zapojení do botnetu

V první fázi dojde k nakažení systému malwarem, který počítač přemění v zombie a připojí jej do botnetu. Takto napadený počítač pak lze využít ke spuštění ransomwarové aplikace, ale teoreticky i k čemukoliv jinému.

Nakažení systému

Mechanismus infekce může být obecně různý, od viru v závadné příloze e-mailu nebo na výměnném médiu přes síťové červy a napadené webové stránky zneužívající zranitelností systému či aplikací až po sociální inženýrství. Často jde o kombinaci uvedeného.

Analyzovaný ransomware má poměrně dobře fungující infekční mechanismus. Nejprve jsou ovládnuty vytipované stránky – typicky s obsahem pro dospělé s nestandardním zaměřením – které pak slouží jako vstupní bod. Při prvním přístupu z daného počítače (identifikace na základě cookies) dojde k přesměrování na jinou stránku obsahující exploit(y), umožňující následné získání přístupu do systému. Přičemž aktuálnost byla pravděpodobně zajištěna používáním „komerční“ sady exploitů. Při analýze byly identifikovány tři různé druhy: zavirovaný PDF soubor, zneužití zranitelnosti prohlížeče Internet Explorer při používání externích fontů a zranitelnost JVM. Výsledkem je pak zahnízdění malware v systému, jeho připojení k botnetu a vyčkávání na další pokyny.

Už výběrem stránek sloužících jako vstupní body prokazuje útočník pokročilé znalosti sociálního inženýrství, protože jde o další aspekt, jak uživatele přimět raději k zaplacení než přivolání odborné pomoci. Jistě by při tom totiž vyšlo najevo, co na internetu dělal a jaké stránky navštěvoval. Což u některých typů stránek není uživateli úplně příjemné. Ačkoli infekce ransomwarem převažovala na stránkách s obsahem „pro náročné“, možnost infekce hrozila i v případě stránek s běžným obsahem. V takovém případě postačí kompromitovat poskytovatele reklamy, a k banneru připojit exploit.

Mechanismy persistence

Slabým místem každého malware je nutnost zajistit své spuštění po restartu systému. V poslední době lze pozorovat trend převážně user-space virů, jež se primárně nesnaží ovládnout celý systém, ale kterým postačí přístup v kontextu práv daného uživatele. Dále uvedeme příklady nejčastějších mechanismů, jimiž si malware zajišťuje přežití restartu.

Při každém startu systému jsou spouštěny aplikace uvedené v příslušných registrových klíčích, které se mohou nacházet jak v uživatelské tak systémové části registru. Méně známé, avšak používané jsou také hodnoty Shell a Userinit v registrovém klíči  HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon.

Kromě registrů existuje také složka „Po spuštění“, přičemž systém a každý uživatel má svůj vlastní adresář obsahující odkazy na spouštěné aplikace a jejich parametry. Spuštění lze zajistit i s pomocí plánovače úloh, který obsahuje množství aktivačních událostí, nejen přihlášení uživatele do systému. Každá úloha má svůj vlastní XML soubor v příslušném adresáři.

Kromě výše uvedených standardních možností může malware disponující administrátorskými právy také vytvořit novou službu, driver nebo hook do kernelu. Tyto varianty lze analyzovat obtížněji.

Konkrétní analyzovaný vzorek využíval registrové klíče, jmenovitě byl spouštěn zástupce, který pomocí komponenty rundll32.exe aktivoval vstupní bod v knihovně malware wlsidten.dll. Novější verze malware kromě registrů využívají také složku „po spuštění“.

Mechanismy ochrany proti odstranění

Dalším zájmem malware je zůstat v systému co nejdéle a současně zkomplikovat své odstranění. Prvním soupeřem jsou automatické prostředky, typicky antivirový software (AV). Nepoznány mohou zůstat jen viry, pro který AV ještě nemá definice, tj. viry zcela nové nebo v čase se měnící. Další možností ochrany je AV vypnout nebo dokonce odinstalovat – přeci jde jen o software, byť specifický. Poměrně jednoduchou leč účinnou ochranou je také úprava práv souborového systému NTFS, kdy pak AV nemá práva virus smazat. Druhým soupeřem je pak samotný člověk, tedy ten s patřičnými znalostmi. Zde se může virus snažit uživateli blokovat spouštění diagnostických nástrojů, blokovat spouštění nových procesů, případně skrýt plochu apod.

Analyzovaný vzorek malware měl v arzenálu schopnost blokovat správce úloh – každých 500 ms bylo zkontrolováno, zda je příslušné okno zobrazeno, a pokud ano, správce ukončil. Dále byl každých 500 ms obnoven zápis v registrových klíčích  jako ochrana proti smazání. Ochrana proti běžnému antivirovému skenu je realizována zakódováním knihovny malware uložené na disku.

Komunikace

Botnet klient potřebuje komunikovat s řídicími centry a zároveň by tato komunikace neměla aktivovat ochranné prostředky nebo být nápadná.

Analyzovaný botnet klient to řeší vložením vlastního kódu (DLL injection) do samostatně spuštěné instance webového prohlížeče. Výsledkem je běžící proces internetového prohlížeče (podle kódu malware umí použít Internet Explorer, Mozillu Firefox, Google Chrome a Operu), který provádí komunikaci na portu 80, takže při kontrole činnosti procesů nejde o nic podezřelého. Za zmínku stojí využití pokročilé funkce virtuálních ploch, které uživateli Windows nejsou zatím dostupné (Linux je v tomto pohledu dále), kdy byl internetový prohlížeč spuštěn v nezobrazované ploše.

Komunikační proces je zcela samostatný a synchronizace s ostatními součástmi (malware) je prováděna pomocí odkládacího souboru, u konkrétního analyzovaného vzorku šlo o soubor %allusersprofile%/Data aplikaci/netdislw.pad. Ostatní součásti sem umisťují informace určené k odeslání C&C a současně odsud přebírají zaslaná data a pokyny.

Malware má v sobě napevno zakódovánu jednu IP adresu C&C serveru a jedno doménové jméno zaručující flexibilitu díky možné změně v DNS. Dále pak byly v odkládacím souboru nalezeny další tři IP adresy. Při komunikaci je dávána přednost aktuálním IP adresám z odkládacího souboru, v případě neúspěchu následuje pokus s pevně zakódovanou IP adresou a nakonec zkouší použít doménové jméno.

Aplikace ransomware

Vlastní vyděračská obrazovka, kterou uživatel vidí, je samostatná aplikace, vytvořená v Borland Delphi. Na počítač je stažena klientem botnetu a následně uložena do odkládacího souboru. Případná aktualizace zmíněné aplikace je tak velmi snadná. Malware je spouštěn klientem botnetu, tj. při každém spuštění operačního systému, kdy je ransomware již stažen do počítače.

Aplikace je spuštěna v celoobrazovkovém režimu a má nastavenu vlastnost „vždy navrchu“ (always-on-top). Vezmeme-li v potaz také ukrývání správce úloh, které má na svědomí ochranná vrstva klienta botnetu, běžný uživatel nemá žádnou možnost tuto aplikaci ukončit.

Následující obrázek ukazuje hlavní komponenty identifikované při podrobné analýze dialogu.

Časovače zajišťují vytvoření okna pro webkameru, snímání obrázků z webové kamery a generování šumu pro případ, že webová kamera není přítomna. V popiscích je uvedena IP adresa napadeného počítače, odpovídající hostname a také geolokační údaje načítané z odkládacího souboru.

Zadávací pole slouží k zadání platebního kódu služby Ukash nebo PaySafeCard a odpovídající tlačítka, resp. obrázky s funkcí tlačítka, spouštějí validaci a odesílání zadaného kódu. Malware lokálně testuje validitu formátu zadaných kódů. Pro Ukash je validní kód dlouhý 19 znaků, obsahuje pouze číslice a vždy začíná „633718“. Kód PaySafeCard má délku 10 číslic a počáteční znak „0“. Získaná čísla jsou následně odeslána pomocí botnet klienta, přičemž jejich platnost je později ještě znovu ověřena, tentokrát přímo dotazem na poskytovatele služby.

Celkové schéma spojení obou částí – klienta botnetu a vyděračské aplikace je znázorněno na následujícím obrázku.

Obchodní model

Nutno uznat, že z psychologické stránky je na uživatele působeno vpravdě profesionálně. Vidí své geolokační údaje (odvozené z IP adresy), vidí svůj obrázek (má-li webkameru), vidí logo Policie ČR, vidí, jak o něm policie všechno ví… a vidí se za mřížemi. V takovou chvíli se pokuta ve výši dva tisíce korun jeví jako velmi malé zlo. Rozhodnutí zaplatit je na spadnutí.

Vlastní platba je realizována pomocí platebních kuponů služeb Ukash nebo PaySafeCard, které uživatel může zakoupit například na čerpacích stanicích. Zadáním unikátního čísla (platebního kódu) uvedeném na kuponu je transakce realizována, protože na základě znalosti tohoto kódu pak centrála dané služby vyplatí odpovídající finanční částku.

Platné kupony pak lze využít například v kasinech, přes která dochází ke špatně kontrolovatelnému přesunu prostředků a následně k jejich výběru.

Odstranění malware

Likvidace malware sestává obecně ze tří kroků. Nejprve je nutné eliminovat obranné funkce malware, poté lokalizovat jeho perzistenci spolu s používanými binárními soubory a následně provést jejich odstranění.

Na standardní instalaci Windows 7 je malware z pohledu běžného uživatele nezastavitelný. Malware infikuje primárně profil aktuálního uživatele, proto lze na víceuživatelském systému využít magického trojhmatu CTRL+ALT+DEL, přihlásit se jako jiný uživatel, ukončit relaci předchozího uživatele a pokračovat dále. Pokud není další uživatelský účet v PC aktivován, nebo je předchozí krok příliš komplikovaný, je doporučen tvrdý restart a vstup do nouzového režimu. Pokud malware nastartuje i v nouzovém režimu, lze použít LiveCD nebo disk připojit k jinému počítači.

Následně lze projít registry, složky po spuštění, plánovač úloh, seznam služeb a hledat odkazy na podezřelé binární soubory. Pod pojmem podezřelé se rozumí typicky explorer.exe v uživatelském profilu (a podobné umístění), odkaz na DLL knihovnu, neznámá služba (i služba má ve vlastnostech cestu), odkaz vede do dočasného adresáře (temp), binární soubor má podivný název (např. s87d654hs67dghs87d.exe).

Po nalezení prvních podezřelých souborů a persistence (může být vícenásobná!), lze dle času jejich modifikace dohledat další soubory, vytvořené činností malware. Dále je třeba v registrech a na disku vyhledat veškeré reference na nalezené podezřelé soubory. Poté už lze odstranit všechny odkazy v registru na tyto soubory i samotné binární soubory. Na závěr zbývá vymazat všechny dočasné složky a internetovou cache. V případě úspěchu bude po restartu a přihlášení normálně dostupná pracovní plocha a počítač se bude opět chovat normálně.

V případě, že se malware nacházel výhradně v uživatelském profilu a uživateli přístupných složkách, lze postupovat následovně: vytvořit nového uživatele, přesunout uživatelská data a smazat původního uživatele. Následně by měla proběhnout hloubková kontrola PC antivirovým programem, nejlépe na jiném počítači, ke kterému je disk z napadeného počítače dočasně připojen.

Pokud by však malware infikoval systémovou část, je bezpečnější zálohovat data pomocí LiveCD na jiný disk a systém reinstalovat. Reinstalace je samozřejmě doporučovaná „best practice“, protože nikdy není na první pohled zcela zřejmé, co všechno mohl malware v počítači změnit. Samozřejmostí jsou i další návazné kroky, jako změna všech hesel, které používali uživatelé daného počítače apod., ale to není předmětem tohoto článku.

Závěr

Z analýzy malware, který je médii označován jako „policejní virus“ vyplývá, že se jedná o kvalitně zpracovaný projekt. Počínaje nosnou myšlenkou, přes její precizní zpracování v psychologické rovině až po technickou realizaci.

Rozdělení technického řešení na klienta botnetu s mechanismem nákazy na jedné straně a vlastní aplikace na straně druhé umožňuje pružnější fungování. Zranitelnosti nutné k nákaze, případně rovnou hotové zombie lze „normálně“ nakoupit, takže se pak lze zabývat pouze vlastním ransomwarem a využitím získaných platebních kódů. Využití klienta botnetu také zajišťuje bezpečnou komunikaci a doručení požadovaných dat a současně také snadnou aktualizaci malware.

Po technické stránce je zajímavé předávání dat přes odkládací soubor a relativní jednoduchost použitých metod vedoucích ke stavu, kdy uživatel nedokáže udělat nic jiného než zadat platební kód.

Přestože již policie dopadla původní tvůrce, obchodní model dále přežívá a byl zřejmě předán nebo prodán dále, protože stále vznikají nové varianty. Liší se zejména vizuální podobou a neomezují se pouze na vydávání se za lokální policejní útvary, ale byly zachyceny varianty také s Interpolem a Europolem. V praxi se tak s „policejním virem“ budeme zřejmě setkávat i nadále.

Autor článku

Aleš Padrta pracuje ve sdružení CESNET jako vedoucí forenzní laboratoře FLAB. Vystudoval kybernetiku se zaměřením na umělou inteligenci.Kromě vedení forenzní laboratoře a řešení analýz se také věnuje výzkumné, vzdělávací a publikační činnosti.