Come abbiamo promesso in uno dei nostri precedenti post sul blog sugli exploit kit (Nuclear EK), stiamo per dare uno sguardo più approfondito ad Angler Exploit Kit. Angler EK è probabilmente il kit di exploit più sofisticato attualmente utilizzato dai criminali informatici. È stato pioniere di soluzioni che altri exploit kit hanno iniziato ad usare più tardi, come il rilevamento antivirus e i file dropper criptati. Inoltre, Angler tende ad essere il più veloce ad integrare gli ultimi zero day, come lo zero day di Adobe Flash (CVE-2015-0311) di qualche settimana fa, e impiega un offuscamento notevolmente unico. Infine, Angler esegue il malware caduto dalla memoria, senza mai dover scrivere sul disco rigido; questa tecnica unica tra gli exploit kit rende estremamente difficile per le tecnologie antivirus tradizionali rilevarlo, in quanto si basano sulla scansione del file system.
Mentre Angler è l’exploit kit più avanzato nell’attuale panorama delle minacce, i clienti Websense sono protetti da questa minaccia con ACE, il nostro Advanced Classification Engine, nelle seguenti fasi:
- Stage 2 (Lure) – ACE ha il rilevamento dei siti web compromessi.
- Fase 3 (Redirect) – ACE ha rilevato il codice iniettato che reindirizza l’utente alla pagina dell’exploit.
- Fase 4 (Exploit Kit) – ACE ha rilevato il codice dannoso che tenta di eseguire questo attacco informatico.
- Fase 5 (File Dropper) – ACE ha il rilevamento dei file binari associati a questo attacco
Offusione
La landing page di Angler consiste di quattro parti fondamentali. In primo luogo, c’è del testo inglese visibile, che viene utilizzato per far credere alla vittima dell’exploit kit di aver navigato su una pagina legittima. In secondo luogo, ha varie routine di deobfuscation per deobfuscare gli attuali script maligni. Questi script si trovano all’interno dei tag p class e sono codificati come base64. La decodifica delle stringhe base64 rivela l’effettivo codice del kit di exploit offuscato. Infine, la pagina di destinazione contiene diverse stringhe criptate, che contengono vari URL che portano ai vari exploit (Flash, Silverlight, Internet Explorer) inclusi nel kit.
Samples from Angler landing page
Deobfuscated Exploit Code
Una volta che la landing page è deobfuscata, la vera natura del codice è rivelata. Angler, proprio come Nuclear e vari altri exploit kit, utilizza un secondo strato di offuscamento molto semplice per rendere ancora più difficile il rilevamento da parte dei prodotti di sicurezza.
Utilizza anche il rilevamento antivirus oltre a rilevare varie soluzioni di virtualizzazione (VMWare, VirtualBox, Parallels), nonché un proxy di debug web chiamato Fiddler, che è ampiamente utilizzato dai ricercatori di sicurezza. L’implementazione di queste misure rende molto difficile osservare e indagare questo exploit kit in natura, dato che la maggior parte dei ricercatori di sicurezza spesso si affidano molto a questi strumenti.
Rilevamento di vari file .sys e .dll che appartengono a software AV e di virtualizzazione
VMWare, VirtualBox, Parallels e Fiddler web debugging proxy
La caratteristica più unica di Angler è l’uso di questi percorsi URL criptati. Utilizza un semplice cifrario basato sulla trasposizione (in termini profani: rimescola le lettere) per cifrare e decifrare questi dati.
La routine di decifrazione è incorporata nella parte offuscata del kit di exploit.
Routine di decrittazione come si trova nel kit
Routine di decrittazione formattata e commentata
Useremo un esempio molto semplice per dimostrare come funziona la decrittazione. Supponiamo che il nostro testo cifrato (dati criptati) sia “TEER CSURH TO PLTAOEL IX TP” e che la nostra chiave di decrittazione sia “OBFUSCATE”. Quello che Angler fa è prendere l’ordine alfabetico delle lettere nella chiave e riorganizzare il testo cifrato in base a questo. Per esempio:
OBFUSCATE → 6,2,5,9,7,3,1,8,4
Questo ci dà l’ordine delle lettere nel testo cifrato. Usando questo possiamo facilmente decifrarlo riordinando le lettere.
Esempio di decrittazione
E infine gli spazi bianchi vengono rimossi dalla stringa decrittata. Ovviamente, questa è una forma estremamente rudimentale di crittografia e sarebbe molto facile da decifrare anche senza la chiave se (come nell’esempio precedente) il testo in chiaro consistesse di parole reali. Tuttavia, Angler utilizza URL altamente randomizzati, quindi questo tipo di crittografia è più che sufficiente per nascondere la vera natura di queste stringhe e i percorsi URL effettivi da vari prodotti di sicurezza.
Il resto del codice deobfuscato segue i soliti schemi degli exploit kit: ci sono varie routine di rilevamento dei plugin e di controllo delle versioni in modo che l’exploit kit “sappia” quale exploit utilizzare sull’obiettivo. Ci sono anche un bel po’ di routine per la costruzione di shellcode, dato che Angler usa uno shellcode a più stadi, dove le varie fasi sono codificate e vengono decodificate dalle fasi precedenti. Include anche una chiave di cifratura/decifratura hardcoded per il file dropper.
Chiave di crittografia per il payload
Multi stadio Shellcode
Dropper
Se l’exploit ha successo, il payload di Angler viene rilasciato sul sistema della vittima. Mentre il payload viaggia attraverso la rete è ancora criptato e viene decriptato più tardi dallo shellcode dello stadio finale. Questa tecnica è utilizzata per rendere il rilevamento del maligno dropper molto difficile per i tradizionali sistemi di rilevamento delle intrusioni (IDS). Come abbiamo detto prima, Angler utilizza dropper “senza file”, il che significa che vengono eseguiti direttamente dalla memoria. Il dropper usato da Angler si chiama Bedep, che in realtà è solo un downloader – cioè, non è maligno di per sé, ma è usato per scaricare ed eseguire vari malware diversi.
Il payload consiste in una combinazione di shellcode e della DLL Bedep. Se i primi byte del payload sono “909090” (NOPs o No Operations in assembly x86) la DLL sarà caricata dalla memoria, altrimenti sarà scritta sul disco proprio come un normale file dropper. Lo shellcode è responsabile dell’esecuzione della DLL dalla memoria.
Lo shellcode risolve API come kernel32.dll e wininet.dll
Summary
Angler Exploit Kit è senza dubbio uno dei kit di exploit più pericolosi in circolazione oggi. Ha varie tecniche nel suo arsenale per sconfiggere i metodi di rilevamento tradizionali come:
- Unique Obfuscation
- Detective antivirus/virtualization software
- Encrypted payload
- Fileless infections
Inoltre Angler è spesso il primo ad adottare gli ultimi exploit, che includono di volta in volta gli zero days. La natura in costante evoluzione di Angler evidenzia anche la necessità di soluzioni di sicurezza che forniscano protezione attraverso l’intera catena di uccisione invece di concentrarsi solo su una fase di essa.