Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

Shellcode subdolo: le fibre di Windows offrono un'esecuzione del codice a prova di EDR

Data:

Le fibre di Windows, componenti poco conosciuti del sistema operativo Windows, rappresentano un percorso di esecuzione del codice in gran parte non documentato che esiste esclusivamente in modalità utente ed è quindi ampiamente trascurato da piattaforme di rilevamento e risposta degli endpoint (EDR).. Pertanto, è possibile che gli aggressori li sfruttino per atterrare furtivamente sui PC e distribuire payload dannosi.

Questo è quanto sostiene Daniel Jary, un ricercatore di sicurezza indipendente, che ha delineato due nuovi attacchi Proof-of-Concept (PoC) utilizzando fibre in una sessione al Black Hat Asia il Giovedi.

Le fibre sono un'alternativa ai "thread" standard utilizzati da Windows per eseguire il codice dal sistema operativo o da un'applicazione, spiega.

"I thread sono essenzialmente come lavoratori, all'interno di un processo o di un'applicazione Windows e, tradizionalmente, sono sempre stati il ​​modo in cui eseguivi il codice e portavi a termine le cose", dice a Dark Reading. "Ma c'è un modo più di nicchia per farlo, attraverso le fibre."

Fibre: un percorso del sistema operativo Windows dimenticato e trascurato

Le fibre, quando utilizzate, esistono all'interno dei fili: sono essenzialmente versioni più piccole e leggere del concetto di filo più grande. Inizialmente furono sviluppate le fibre in un momento in cui le CPU avevano meno core a disposizione e potevano ospitare solo un certo numero di thread. Ad alto livello, i più piccoli erano un modo per espandere la capacità, consentendo agli sviluppatori di suddividere i carichi di lavoro all'interno di un singolo thread e rendere i processi più efficienti.

"Ma quando i computer sono diventati più potenti, con più memoria con cui giocare, le fibre sono diventate in qualche modo ridondanti nella stragrande maggioranza degli scenari", spiega Jary. "Ed è per questo che molte persone non ne hanno mai sentito parlare e sono un po' oscuri, ma servono ad alcuni scopi per alcune vecchie applicazioni legacy e un modo per trasferire programmi da altri sistemi operativi su Windows. E alcuni processi Windows stessi utilizzano ancora le fibre.

Pertanto, le fibre godono del dubbio onore di essere sia una funzione fondamentale di Windows, sia una funzione trascurata dai team di sicurezza. E per giunta, Jary nota che i tradizionali meccanismi di rilevamento nelle piattaforme EDR e nei motori antivirus tendono a ignorarli, rendendoli una perfetta via furtiva per eseguire codice dannoso.

"I thread sono attentamente monitorati dagli agenti EDR, che esaminano le chiamate di sistema e i callback in modalità kernel per acquisire i dati di telemetria e inviarli a un motore di regole per generare il rilevamento", spiega Jary. “Ma le fibre esistono esclusivamente in modalità utente e non vengono visualizzate nella raccolta del kernel; quindi la loro telemetria non viene effettivamente registrata dagli EDR.

Esistono già alcune tecniche open source per sfruttare lo stato nascosto delle fibre. Un PoC del 2022, ad esempio, descrive in dettaglio un metodo per nascondere codice shell dannoso all'interno di una fibra, eludendo così la maggior parte dei motori AV.  

Altri hanno creato metodi per mascheramento dello stack di chiamate, che consente agli aggressori di nascondere un percorso di esecuzione dannoso all'interno di un thread, in questo caso una fibra, dietro una fibra diversa, dormiente e benigna, evitando inoltre il rilevamento. La tecnica sfrutta il fatto che se le fibre sono in uso, c'è sempre una fibra attiva, poi una fibra dormiente con cui si spegne. Questa capacità di mascheramento è stata aggiunta al kit artefatto di Cobalt Strike nel 2022.

Nuove frontiere nell'esecuzione di fibre dannose

Jary ha iniziato a esplorare se fosse possibile migliorare le tecniche di fibra dannose esistenti e ha ideato due nuovi PoC, soprannominati Phantom Thread e Poison Fiber.

I metodi in fibra avversaria esistenti presentano alcuni svantaggi per gli aggressori: alcuni indicatori potrebbero ancora essere utilizzati per il rilevamento EDR; e la pericolosità non è nascosta dalla raccolta di stack di chiamate basata su eventi in linea. Inoltre, qualsiasi raccolta di fibre dormienti, per la quale esistono diverse tecniche, rimuoverebbe il mascheramento dello stack di chiamate.

Phantom Thread è un approccio di mascheramento dello stack di chiamate di nuova generazione che rimuove la capacità delle scansioni di memoria di prendere di mira le fibre, facendo sì che tali fibre si mascherino da thread. Ciò comporta la creazione di una fibra, quindi il patching in modo che si identifichi come un thread. Quindi, diventa possibile rimuovere eventuali indicatori dello stack di chiamate in fibra e sostanzialmente nascondere del tutto le fibre da qualsiasi scansione.

Il secondo PoC, Poison Fiber, enumera tutti i processi Windows in esecuzione, esaminando i thread in uso e quindi se qualcuno di questi thread utilizza fibre. Quindi, "ti offre l'opportunità di iniettare il tuo carico utile o il tuo shellcode in una fibra dormiente", spiega Jary.

"È possibile eseguire solo una fibra per thread alla volta, il che significa che hai sempre un'altra fibra dormiente parcheggiata da qualche altra parte nello stack", afferma. “Quando eseguiamo il nostro codice utilizzando Poison Fiber, questo inserisce il nostro codice in una fibra dormiente, quindi non dobbiamo sospendere il thread per iniettare lo shellcode, che è un enorme indicatore di attività dannose. E, poiché abbiamo iniettato il carico utile in una fibra dormiente, l'applicazione avvia l'esecuzione per noi e non siamo noi ad avviarla." La tecnica ha l'ulteriore vantaggio di consentire anche l'esecuzione remota del codice (RCE).

Svegliati al potenziale antagonista della fibra

Sebbene rimangano piuttosto oscure, le fibre dovrebbero essere nell'elenco dei vettori di attacco dei team di sicurezza, avverte Jary, che non ha ancora rilasciato pubblicamente i suoi PoC evoluti o dettagli granulari sui metodi. Secondo lui è solo questione di tempo prima che altri trovino il modo di superare gli inconvenienti dei metodi di esecuzione della fibra open source esistenti.  

"Il metodo di esecuzione alternativo di Fiber è prezioso per gli aggressori perché ci aiuta a eludere le tradizionali fonti di telemetria che otteniamo con i thread, in particolare i callback del kernel", afferma. “Le fibre non sono una tattica di escalation di privilegi; e non sono un bypass di controllo dell'accesso utente (UAC). Ma consente una consegna del carico utile che riceve molti meno riflettori e attenzione da parte della comunità della sicurezza. Le fibre sono davvero semplici da implementare, ma sono più difficili da rilevare. Ciò li rende perfetti per qualsiasi script kiddie da utilizzare per attaccare le aziende.

Jary consiglia l'implementazione prodotti EDR maturi che possono essere continuamente testati rispetto a tecniche emergenti come queste.

"Parla con i tuoi collaboratori rossi dei metodi di fibra open source che vengono utilizzati in natura", afferma. “Fai qualche ricerca per vedere cosa piace agli aggressori, cosa è popolare in circolazione, quindi forniscilo al tuo team di ricerca e agli sviluppatori di prodotti EDR. Ciò contribuirà a costruire difese migliori e probabilmente renderà anche la vita dei cacciatori di minacce un po' più semplice."

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?