Tecniche di evasione C2: Comprendere la randomizzazione JA3/S e il Cipher Stunting

28 gennaio 2021
Joshua St. Hilaire
Director of Security Research
Tecniche di evasione C2: Comprendere la randomizzazione JA3/S e il Cipher Stunting

JA3 ha guadagnato una certa popolarità all'interno della comunità della sicurezza per segnalare facilmente strumenti noti o malware utilizzando una firma che può essere generata facilmente dai valori Transport Layer Security (TLS) utilizzati durante le comunicazioni che impiegano tale crittografia. Sebbene le firme JA3 siano facili da usare e sembrino un modo semplice con cui i difensori possono rilevare le comunicazioni dannose, possono essere altrettanto facilmente manomesse per eludere il rilevamento e confondersi con il normale traffico TLS/SSL.

In questo post, inizieremo a scoprire alcuni dei metodi implementati in natura da server e agenti di comando e controllo (C2) per eludere il rilevamento. La nostra attenzione si concentrerà sulle tecniche di elusione utilizzate da noti framework C2 che utilizzano diverse tecniche per eludere il rilevamento. Per quanto riguarda specificamente le firme JA3, gli sviluppatori di questi strumenti hanno compiuto alcuni sforzi per evitare il rilevamento. Inoltre, esistono prove evidenti che queste stesse tecniche di evasione vengono utilizzate attivamente dal malware per eludere il rilevamento.

Svelare JA3/S: un primo passo

Innanzitutto, riassumiamo brevemente cos'è JA3 e perché può essere utilizzato per rilevare il traffico dannoso. JA3 è un metodo di fingerprinting dell'handshake TLS pubblicato per la prima volta nel 2017 da John Althouse, Jeff Atkinson e Josh Atkins di Salesforce. Il traffico Internet che implementa TLS si trasmette reciprocamente dei valori nel tentativo di stabilire una connessione sicura. I seguenti valori sono utilizzati per formare un hash JA3 (SSLVersion, Cipher, SSLExtension, EllipticCurve, EllipticCurvePointFormat) e per l'hash JA3S(SSLVersion,Cipher,SSLExtension). Questi valori vengono trasmessi in chiaro prima della crittografia, in modo che il client e il server sappiano quale tipo di cifratura è possibile utilizzare. Sono la base di ciò che viene utilizzato per formare un hash JA3/S. Questi valori possono essere utilizzati per identificare alcuni tipi di traffico dannoso quando sono affidabili. Per una spiegazione più approfondita è possibile consultare il post originale di SalesForce.

Comprensione della randomizzazione JA3/S e del Cipher-Stunting

Come già accennato, parte della firma JA3/S deriva dal cifrario. L'elenco dei cifrari viene trasmesso durante la negoziazione del client/server. Un esempio di ciò è visibile nell'immagine della cattura di un pacchetto qui sotto.

Figura 1: Elenco di cifratura trasmesso durante il client TLS hello

Durante questo processo, il server sceglierà il più alto cifrario disponibile supportato da entrambe le estremità della connessione. Questo significa che per ogni connessione effettuata tra un endpoint e un server, la firma JA3/S dovrebbe essere la stessa e risultare nella stessa firma JA3/S. Tuttavia, utilizzando la randomizzazione JA3/S, il server sceglierà un cifrario casuale dall'elenco dei cifrari supportati. Utilizzando un cifrario diverso, l'hash JA3/S derivato da questi valori risulterà diverso.

Per eludere il rilevamento, gli autori malware dovranno manomettere i valori TLS utilizzati che sono alla base della firma JA3. In questo modo possono eludere il rilevamento. Un modo semplice per farlo è scegliere casualmente una suite di cifratura. Questa tecnica è nota come randomizzazione JA3/S.

Una tendenza in crescita: JA3/S nei quadri C2

Il team di ricerca di Akamai ha condiviso degli approfondimenti in merito. In sintesi, i risultati della ricerca mostrano che le impronte digitali TLS sono passate da 18.652 impronte distinte a livello globale nell'agosto 2018 a oltre 1,3 miliardi alla fine di febbraio 2019. Ciò suggerisce che, in seguito alla ricerca e all'interesse per il fingerprinting JA3/S da parte della comunità della sicurezza, gli autori malware e i controllori di bot hanno implementato tecniche per aggirare le firme TLS.

La randomizzazione JA3/S/Cipher-Stunting ha iniziato a insinuarsi anche nei framework C2 come Empire a partire dalla versione 3.0 master, secondo il changelog di Github. L'immagine sottostante mostra il codice sorgente di Empire GitHub, che evidenzia un esempio di come si possa ottenere la randomizzazione JA3.

Figura 2: Randomizzazione della firma JA3 mediante scelta casuale da un elenco di cifrari

Eludere il rilevamento: Più di un approccio

Come per tutte le nuove tecniche utilizzate dalla comunità della sicurezza per identificare le minacce, gli aggressori sono sempre stati pronti a cambiare tattica per aggirare le strategie di rilevamento. Sebbene abbiamo visto strumenti della squadra rossa utilizzare la randomizzazione JA3 per eludere il rilevamento, esistono altri metodi per fare lo stesso. Come dice l'adagio, "c'è più di un modo per scuoiare un gatto". Ad esempio, l'impersonificazione di JA3 può essere effettuata imitando i valori TLS dei browser più comuni o addirittura utilizzando il client HTTPS del sistema operativo sottostante per aggirare il rilevamento.

Conclusione: La sfida del rilevamento

È chiaro che con qualsiasi tecnica che possa essere utilizzata per catturare la "cattiveria" da parte dei professionisti della sicurezza, gli aggressori si adatteranno rapidamente per continuare a operare senza essere individuati. L'identificazione dei framework C2 con firme JA3 diventa difficile quando il framework implementa la randomizzazione JA3/S o un'altra tecnica. Gli strumenti e le tecniche di sicurezza utilizzati dai difensori devono essere molto flessibili e in grado di adattarsi rapidamente ai cambiamenti. In caso contrario, C2 continuerà a eludere il rilevamento e a operare sotto il radar dei professionisti della sicurezza informatica. Le firme JA3, anche senza manomissioni, sono un indicatore a bassa fedeltà di attività dannose e le tecniche descritte nel post le rendono ancora meno affidabili a causa della facilità con cui possono essere manipolate.

Per questo motivo, le firme JA3 possono essere utilizzate come indicatore supplementare di compromissione, ma non si dovrebbe fare molto affidamento su di esse a causa della bassa fedeltà e della facilità con cui possono essere manomesse. I rilevamenti basati sulle firme sono validi solo nella misura in cui ci si può fidare dei dati sottostanti e della loro manutenzione. Idealmente, il rilevamento di C2 deve utilizzare una strategia di rilevamento della rete multi-sfaccettata, agile e in grado di generalizzare. Naturalmente, questo approccio richiede un investimento molto più consistente, ma darà ottimi frutti nel lungo periodo.

Date un'occhiata al il mio secondo blog in cui esamino un metodo noto come profili C2 malleabili.

DOMANDE FREQUENTI

Che cos'è JA3 e come aiuta a rilevare il traffico dannoso?

JA3 è un metodo di fingerprinting dell'handshake TLS che prevede la cattura e l'hashing di valori specifici trasmessi durante l'handshake (SSLVersion, Cipher, SSLExtension, EllipticCurve e EllipticCurvePointFormat). Questo hash può aiutare a identificare strumenti dannosi o malware noti, confrontandolo con un database di firme JA3 note.

Che cos'è JA3S e come si differenzia da JA3?

JA3S è simile a JA3, ma si concentra sulla risposta del server durante l'handshake TLS. Utilizza valori come SSLVersion, Cipher e SSLExtension per creare il suo hash. Sia JA3 che JA3S sono utilizzati per identificare il traffico dannoso, ma JA3S cattura la prospettiva del server.

Perché il fingerprinting JA3/S è considerato un indicatore a bassa fedeltà di attività dannose?

Il fingerprinting JA3/S è considerato a bassa fedeltà perché le firme possono essere facilmente manipolate. Gli aggressori possono alterare i valori TLS per eludere il rilevamento, rendendo inaffidabile la dipendenza dalle impronte digitali JA3/S per l'identificazione di attività dannose.

Quali sono i limiti dell'utilizzo delle firme JA3/S per il rilevamento delle minacce?

Le principali limitazioni includono la facilità con cui gli aggressori possono randomizzare o imitare i valori JA3/S, rendendo difficile affidarsi a queste firme per un rilevamento accurato. Le firme JA3/S dovrebbero essere utilizzate come indicatori supplementari piuttosto che come metodi di rilevamento primari.

Perché è importante che gli strumenti di rilevazione siano agili e adattabili?

Gli aggressori evolvono continuamente le loro tecniche per eludere il rilevamento. Se gli strumenti di rilevamento non sono agili e adattabili, diventeranno rapidamente obsoleti e inefficaci, permettendo alle attività dannose di passare inosservate.

In che modo la randomizzazione JA3 aiuta malware a eludere il rilevamento?

La randomizzazione JA3 comporta la modifica della suite di cifratura utilizzata durante l'handshake TLS. Selezionando un cifrario casuale dall'elenco dei cifrari supportati, l'hash JA3 cambia per ogni connessione, rendendo difficile per gli strumenti di sicurezza rilevare e segnalare in modo coerente il traffico dannoso basato su una firma JA3 statica.

Quali sono alcune tecniche comuni utilizzate dai framework C2 per eludere il rilevamento?

Le tecniche comuni includono la randomizzazione JA3/S, il cipher stunting (selezione casuale di un cifrario) e l'impersonificazione JA3 (imitazione dei valori TLS di browser o sistemi operativi comuni). Questi metodi aiutano i framework C2 a evitare il rilevamento alterando le loro impronte digitali TLS.

Come si è evoluta l'adozione della randomizzazione JA3/S nei framework di malware e C2?

Una ricerca di Akamai ha mostrato un aumento significativo delle impronte digitali TLS distinte da agosto 2018 a febbraio 2019, indicando che gli autori malware hanno rapidamente adottato tecniche di randomizzazione JA3/S per aggirare i metodi di rilevamento che si basano su firme JA3/S statiche.

Quali sono i limiti dell'utilizzo delle firme JA3/S per il rilevamento delle minacce?

Una strategia di rilevamento della rete multiforme che includa l'analisi comportamentale, il rilevamento delle anomalie e i metodi basati sulle firme può migliorare il rilevamento delle comunicazioni C2. Questo approccio richiede strumenti flessibili e adattivi in grado di rispondere all'evoluzione delle tecniche di evasione.

Che ruolo svolge una piattaforma di rilevamento e risposta alle minacce in un centro operativo di sicurezza (SOC)?

Una piattaforma di rilevamento e risposta alle minacce è fondamentale in un SOC in quanto integra vari metodi di rilevamento, fornisce analisi in tempo reale e facilita una risposta rapida alle minacce. Tali piattaforme migliorano la capacità del SOC di rilevare e mitigare le tecniche di evasione avanzate come la randomizzazione JA3/S.