Jak jsme slíbili v jednom z našich předchozích blogových příspěvků o exploit kitech (Nuclear EK), podíváme se na Angler Exploit Kit podrobněji. Angler EK je pravděpodobně nejsofistikovanější exploit kit, který v současnosti používají kyberzločinci. Je průkopníkem řešení, která ostatní exploit kity začaly používat později, jako je antivirová detekce a šifrované soubory dropper. Kromě toho má Angler tendenci nejrychleji integrovat nejnovější zero days, jako je například zero day Adobe Flash (CVE-2015-0311) z doby před několika týdny, a používá pozoruhodně unikátní obfuskaci. A konečně, Angler spouští vysazený malware z paměti, aniž by musel zapisovat na pevný disk; tato unikátní technika mezi exploit kity velmi ztěžuje jeho detekci tradičním antivirovým technologiím, které se spoléhají na skenování souborového systému.
Ačkoli je Angler nejpokročilejší exploit kit v současném prostředí hrozeb, zákazníci společnosti Websense jsou před touto hrozbou chráněni pomocí ACE, našeho pokročilého klasifikačního enginu, v následujících fázích:
- Fáze 2 (Lure) – ACE má detekci napadených webových stránek.
- Stupeň 3 (Přesměrování) – ACE má detekci pro injektovaný kód, který uživatele přesměruje na stránku se zneužitím.
- Stupeň 4 (Exploit Kit) – ACE má detekci pro škodlivý kód, který se pokouší provést tento kybernetický útok.
- Stage 5 (Dropper Files) – ACE má detekci pro binární soubory spojené s tímto útokem
Obfuskace
Útočná stránka útočníka se skládá ze čtyř základních částí. Za prvé je zde viditelný anglický text, který slouží k tomu, aby se oběť exploit kitu domnívala, že přešla na legitimní stránku. Za druhé obsahuje různé deobfuskační rutiny, které deobfukují skutečné škodlivé skripty. Tyto skripty jsou umístěny v rámci značek třídy p a jsou kódovány jako base64. Dekódování řetězců base64 odhalí skutečný obfuskovaný kód exploit kitu. A konečně vstupní stránka obsahuje několik zašifrovaných řetězců, které obsahují různé adresy URL vedoucí k různým exploitům (Flash, Silverlight, Internet Explorer) obsaženým v sadě.
Ukázky z cílové stránky Angler
Deobfuskovaný kód exploitu
Po deobfuskování cílové stránky je odhalena skutečná povaha kódu. Angler, stejně jako Nuclear a různé další exploit kity, používá velmi základní druhou vrstvu obfuskace, aby ještě více ztížil detekci bezpečnostními produkty.
Kromě detekce různých virtualizačních řešení (VMWare, VirtualBox, Parallels) používá také antivirovou detekci a také webový ladicí proxy server Fiddler, který je hojně využíván bezpečnostními výzkumníky. Implementace těchto opatření velmi ztěžuje pozorování a zkoumání této sady exploitů ve volné přírodě, protože většina bezpečnostních výzkumníků na tyto nástroje často silně spoléhá.
Detekce různých souborů .sys a .dll, které patří k AV a virtualizačnímu softwaru
Detekce VMWare, VirtualBox, Parallels a také proxy server Fiddler pro ladění webu
Nejunikátnějším rysem Angleru je použití těchto šifrovaných cest URL. K šifrování a dešifrování těchto dat používá jednoduchou šifru založenou na transpozici (laicky řečeno: šifrování písmen).
Dešifrovací rutina je vložena do obfuskované části exploit kitu.
Dekódovací rutina, jak se nachází v sadě
Dekódovací rutina naformátovaná a okomentovaná
Použijeme velmi jednoduchý příklad, abychom ukázali, jak dekódování funguje. Předpokládejme, že náš šifrovaný text (zašifrovaná data) je „TEER CSURH TO PLTAOEL IX TP“ a náš dešifrovací klíč je „OBFUSCATE“. Angler udělá to, že vezme abecední pořadí písmen v klíči a na jeho základě přeuspořádá šifrový text. Například:
OBFUSCATE → 6,2,5,9,7,3,1,8,4
Tím získáme pořadí písmen v šifrovém textu. Pomocí něj jej můžeme snadno dešifrovat změnou pořadí písmen.
Příklad dešifrování
A nakonec se z dešifrovaného řetězce odstraní bílé znaky . Je zřejmé, že se jedná o extrémně primitivní formu šifrování, která by byla velmi snadno prolomitelná i bez klíče, pokud by se (jako ve výše uvedeném příkladu) otevřený text skládal ze skutečných slov. Angler však používá vysoce randomizované adresy URL, takže tento druh šifrování je více než dostatečný pro skrytí skutečné povahy těchto řetězců a skutečných cest URL před různými bezpečnostními produkty.
Zbytek deobfuskovaného kódu odpovídá obvyklým vzorům exploit kitů: jsou zde různé rutiny pro detekci zásuvných modulů a kontrolu verzí, takže exploit kit „ví“, který exploit(y) má na cíl vypálit. Je zde také poměrně málo rutin pro tvorbu shellkódu, protože Angler používá vícestupňový shellkód, kde jsou různé stupně zakódovány a dekódovány předchozími stupni. Obsahuje také pevně zakódovaný šifrovací/dešifrovací klíč pro soubor dropper.
Šifrovací klíč pro payload
Vícestupňový shellcode
Dropper
Pokud exploit uspěje, je payload Angleru vysazen v systému oběti. Při cestě po síti je užitečné zatížení stále zašifrované a později se dešifruje pomocí shellkódu v konečné fázi. Tato technika se používá ke ztížení detekce škodlivého dropperu pro tradiční systémy detekce narušení (IDS). Jak jsme již zmínili, Angler používá „bezsouborové“ droppery, což znamená, že jsou spouštěny přímo z paměti. Dropper používaný nástrojem Angler se nazývá Bedep, který je ve skutečnosti pouze downloaderem – to znamená, že sám o sobě není škodlivý, ale slouží ke stahování a spouštění různého malwaru.
Platba se skládá z kombinace shellkódu a knihovny Bedep DLL. Pokud je prvních několik bajtů payloadu „909090“ (NOP neboli No Operations v assembleru x86), DLL se načte z paměti, jinak se zapíše na disk stejně jako běžný dropper soubor. Za spuštění knihovny DLL z paměti je zodpovědný shellkód.
Chellkód řeší rozhraní API, jako jsou kernel32.dll a wininet.dll
Shrnutí
Sada Angler Exploit Kit je bezpochyby jednou z nejnebezpečnějších sad exploitů, které jsou dnes ve volné přírodě k dispozici. Ve svém arzenálu má různé techniky, které umožňují překonat tradiční metody detekce, jako například:
- Unikátní obfuskace
- Detekce antivirového/virtualizačního softwaru
- Šifrovaný payload
- Infekce bez souborů
Kromě toho Angler často jako první přebírá nejnovější exploity, mezi které čas od času patří zero days. Neustále se vyvíjející povaha Angleru také zdůrazňuje potřebu bezpečnostních řešení, která poskytují ochranu v celém řetězci útoku, místo aby se zaměřovala pouze na jednu jeho fázi
.