Som vi lovede i et af vores tidligere blogindlæg om exploit kits (Nuclear EK), vil vi nu se mere indgående på Angler Exploit Kit. Angler EK er muligvis det mest sofistikerede exploit kit, der i øjeblikket anvendes af cyberkriminelle. Det har været banebrydende for løsninger, som andre exploit kits begyndte at bruge senere, f.eks. antivirusdetektion og krypterede dropperfiler. Desuden har Angler tendens til at være den hurtigste til at integrere de seneste zero days, såsom Adobe Flash zero day (CVE-2015-0311) fra et par uger siden, og den anvender en bemærkelsesværdig unik obfuskering. Endelig kører Angler den tabte malware fra hukommelsen uden nogensinde at skulle skrive til harddisken; denne unikke teknik blandt exploit kits gør det ekstremt vanskeligt for traditionelle antivirusteknologier at opdage den, da de er afhængige af at scanne filsystemet.
Mens Angler er det mest avancerede exploit kit i dagens trusselslandskab, er Websense-kunder beskyttet mod denne trussel med ACE, vores Advanced Classification Engine, på følgende stadier:
- Stadie 2 (Lure) – ACE har detektion for de kompromitterede websteder.
- Stadie 3 (Redirect) – ACE har detektion for den injicerede kode, der omdirigerer brugeren til exploitsiden.
- Stadie 4 (Exploit Kit) – ACE har detektion for den ondsindede kode, der forsøger at udføre dette cyberangreb.
- Stage 5 (Dropper Files) – ACE har detektion for de binære filer, der er forbundet med dette angreb
Obfuskering
Anglers landingsside består af fire grundlæggende dele. For det første er der noget synlig engelsk tekst, som bruges til at få offeret for exploit-kittet til at tro, at de har surfet til en legitim side. For det andet har den forskellige deobfuskeringsrutiner til at deobfuske de faktiske ondsindede scripts. Disse scripts er placeret inden for p-klassetags, og de er kodet som base64. Afkodning af base64-strenge afslører den faktiske obfuscated exploit kit-kode. Og endelig indeholder landingssiden flere krypterede strenge, som indeholder forskellige URL’er, der fører til de forskellige exploits (Flash, Silverlight, Internet Explorer), der er indeholdt i sættet.
Eksempler fra Angler-landingssiden
Deobfuscated Exploit Code
Når landingssiden er deobfuscated, afsløres den sande karakter af koden. Angler bruger ligesom Nuclear og forskellige andre exploit kits en meget grundlæggende anden lag obfuskering for at gøre detektion af sikkerhedsprodukter endnu vanskeligere.
Den bruger også antivirusdetektion ud over at detektere forskellige virtualiseringsløsninger (VMWare, VirtualBox, Parallels) samt en webdebugging-proxy kaldet Fiddler, som er meget anvendt af sikkerhedsforskere. Gennemførelsen af disse foranstaltninger gør det meget vanskeligt at observere og undersøge dette exploit kit i naturen, da de fleste sikkerhedsforskere ofte er meget afhængige af disse værktøjer.
Detektering af forskellige .sys- og .dll-filer, der tilhører AV- og virtualiseringssoftware
VMWare, VirtualBox, Parallels-detektion samt Fiddler web debugging proxy
Den mest unikke egenskab ved Angler er brugen af disse krypterede URL-stier. Den bruger en simpel transpositionsbaseret ciffer (i lægmandstermer: forvrængning af bogstaverne) til at kryptere og dekryptere disse data.
Den dekrypteringsrutine er indlejret i den obfuscated del af exploit-kittet.
Dekrypteringsrutine som den findes i sættet
Dekrypteringsrutine formateret og kommenteret
Vi vil bruge et meget simpelt eksempel til at demonstrere, hvordan dekrypteringen fungerer. Lad os antage, at vores ciffertekst (krypterede data) er “TEER CSURH TO PLTAOEL IX TP”, og at vores dekrypteringsnøgle er “OBFUSCATE”. Angler tager den alfabetiske rækkefølge af bogstaverne i nøglen og omarrangerer den krypterede tekst på grundlag heraf. For eksempel:
OBFUSCATE → 6,2,5,9,7,3,1,8,4
Det giver os rækkefølgen af bogstaverne i den krypterede tekst. Ved hjælp af dette kan vi nemt dekryptere den ved at omarrangere bogstaverne.
Eksempel på dekryptering
Og endelig fjernes mellemrum fra den dekrypterede streng . Dette er naturligvis en ekstremt rudimentær form for kryptering og ville være meget let at knække, selv uden nøglen, hvis (som i ovenstående eksempel) klarteksten bestod af rigtige ord. Angler anvender imidlertid stærkt randomiserede URL’er, så denne form for kryptering er mere end tilstrækkelig til at skjule disse strenges sande natur og de faktiske URL-stier fra forskellige sikkerhedsprodukter.
Resten af den deobfuscated kode følger sædvanlige exploit kit-mønstre: der er forskellige plugin-detektions- og versionskontrolrutiner, så exploit kittet “ved”, hvilken eller hvilke exploit(s) der skal affyres på målet. Der er også en hel del shellcode builder-routiner, da Angler anvender en multistapped shellcode, hvor forskellige stadier er kodet og bliver afkodet af de foregående stadier. Den indeholder også en hårdkodet krypterings-/afkrypteringsnøgle til dropperfilen.
Krypteringsnøgle til nyttelast
Multi stage Shellcode
Dropper
Hvis udnyttelsen lykkes, droppes Anglers nyttelast på offerets system. Når nyttelasten bevæger sig gennem netværket, er den stadig krypteret og bliver senere dekrypteret af shellkoden i den sidste fase. Denne teknik bruges til at gøre det meget vanskeligt for traditionelle indbrudsdetektionssystemer (IDS) at opdage den skadelige dropper. Som vi nævnte før, anvender Angler “filløse” droppers, hvilket betyder, at de køres direkte fra hukommelsen. Den dropper, som Angler anvender, hedder Bedep, som faktisk kun er en downloader – det vil sige, at den ikke er skadelig i sig selv, men den bruges til at downloade og udføre forskellige former for malware.
Nyttelasten består af en kombination af shellkode og Bedep DLL’en. Hvis de første par bytes i nyttelasten er “90909090” (NOP’er eller No Operations i x86-assembler) vil DLL’en blive indlæst fra hukommelsen, ellers vil den blive skrevet til disken ligesom en normal dropper-fil. Shellkoden er ansvarlig for at køre DLL’en fra hukommelsen.
Shellkoden løser API’er som kernel32.dll og wininet.dll
Summary
Angler Exploit Kit er uden tvivl et af de farligste exploit kits derude i naturen i dag. Den har forskellige teknikker i sit arsenal til at besejre traditionelle detektionsmetoder såsom:
- Unique Obfuscation
- Detekterer antivirus/virtualiseringssoftware
- Krypteret nyttelast
- Fileløse infektioner
Dertil kommer, at Angler ofte er den første til at vedtage de nyeste exploits, som fra tid til anden omfatter zero days. Anglers konstante udvikling understreger også behovet for sikkerhedsløsninger, der yder beskyttelse på tværs af hele killkæden i stedet for kun at fokusere på et enkelt trin af den.