Cos'è Zerologon?

Zerologon è una vulnerabilità nella crittografia del processo Netlogon di Microsoft che permette un attacco contro i controller di dominio di Microsoft Active Directory. Zerologon rende possibile per un hacker impersonare qualsiasi computer, incluso il controller del dominio di root.

Zerologon

Zerologon è il nome che è stato dato a una vulnerabilità identificata in CVE-2020-1472. Deriva da un difetto nel processo di autenticazione: Il vettore di inizializzazione (IV) è impostato sempre a una sequenza di tutti zeri, mentre un IV dovrebbe essere sempre un numero casuale.

A questa pericolosa vulnerabilità è associato un livello di gravità di 10 su 10 (CVSS v3.1) da parte del Common Vulnerability Scoring System (CVSS). Sono noti exploit proof-of-concept (POC) attivi ed è molto probabile che presto si verificheranno attacchi nel mondo reale.

La Cybersecurity and Infrastructure Security Agency (CISA) ha emanato una direttiva d'emergenza che ordina alle agenzie federali civili di applicare le patch o di disattivare immediatamente tutti i server Windows interessati e ha avvertito le organizzazioni non governative di fare lo stesso. Microsoft ha rilasciato la prima di due patch nell'agosto 2020 e queste devono essere applicate a tutti i controller di dominio.

Questa vulnerabilità sfrutta un difetto crittografico nell'Active Directory Netlogon Remote Protocol (MS-NRPC) di Microsoft. Tale difetto consente agli utenti di accedere ai server che utilizzano NTLM (NT LAN Manager). 

Il problema maggiore di questa vulnerabilità è che MS-NRPC viene utilizzato anche per trasmettere specifiche modifiche dell'account, come ad esempio le password degli account dei servizi del computer. Ripensando alla sua origine, è facile capire il motivo per cui è stata aggiunta questa funzionalità. Tuttavia, la mancanza di verifica nella fonte della richiesta di modifica di tali password è diventata un problema di sicurezza rilevante.

Da qui in poi la situazione peggiora. La crittografia che è stata aggiunta a MS-NRPC non è stata scelta saggiamente. Nel 1883 il crittografo olandese Aguste Kerckhoff pubblicò 2 saggi, intitolati La Cryptographie Militaire (La crittografia militare), che delineavano i 6 principi chiave per la progettazione di sistemi crittografici. 

Il più noto di essi, il principio di Kerckhoff, afferma la necessità di mantenere segreta la chiave crittografica e che non si possa fare affidamento sulla segretezza dell'algoritmo per proteggere i dati, ma si debbano usare invece algoritmi ben noti, ben testati e ben provati.

L'algoritmo originariamente utilizzato per criptare il processo di logon in Windows NT era 2DES, che ora sappiamo avere problemi. Oggi MS-NRPC utilizza l'Advanced Encryption Standard (AES), considerato il punto di riferimento per la crittografia. 

Oltre alla scelta di un algoritmo di comprovata robustezza, è necessario selezionare ulteriori impostazioni per garantire un'adeguata resistenza. MS-NRPC utilizza un'impostazione oscura nota come AES-CFB8 (Advanced Encryption Standard - Cipher Feed Back 8 bit). AES-CFB8 è oscura perché non è ben nota e non è ben testata. 

L'utilizzo di AES-CFB8 all'interno di MS-NRPC genera un problema con il vettore di inizializzazione che dovrebbe essere un numero casuale, mentre MS-NRPC lo ha fissato a un valore di 16 byte impostati a zero. Questo valore è tutt'altro che casuale. È prevedibile. La crittografia viene spesso violata laddove è presente della prevedibilità.

Come siamo venuti a conoscenza di questa vulnerabilità

Questa vulnerabilità è stata annunciata a settembre 2020 da Tom Tervoort, un ricercatore olandese che lavora per Secura. Per la vulnerabilità sono state effettivamente rilasciate delle patch ad agosto, ma solo quando il ricercatore ha pubblicato il suo rapporto a settembre abbiamo iniziato a vedere i POC e altre attività. 

L'articolo di Tervoort descriveva in dettaglio la vulnerabilità e il processo che lo ha portato alla sua scoperta. Durante la sua ricerca ha notato una significativa mancanza di informazioni su MS-NRPC. Incuriosito, Tervoort ha cercato di ottenere maggiori informazioni. 

Anche se all'inizio Tervoort era alla ricerca della possibilità di un attacco person-in-the-middle, ha scoperto un'altra vulnerabilità dettagliata in CVE-2020-1424. Proseguendo con la sua ricerca, ha identificato quello che ora è noto come Zerologon. 

La parte critica della sua scoperta è che Microsoft ha implementato una variante unica della crittografia che è diversa da tutti gli altri protocolli RPC. Ai tempi di Windows NT, gli account assegnati a un computer non erano identificati come entità di prima classe. Ciò significava che Microsoft non poteva usare le versioni standard di Kerberos o NTLM per autenticare gli account dei computer o delle macchine. 

Di conseguenza gli sviluppatori hanno prodotto un'alternativa. È incredibilmente difficile creare codice e protocolli per la crittografia che siano inviolabili. Infatti può passare un tempo incredibilmente lungo prima che i difetti vengano scoperti, come in questo caso.

Come funziona l'attacco

Questa vulnerabilità permette a un hacker di assumere il controllo di un controller di dominio (DC), incluso il DC di root, cambiando o rimuovendo la password di un account di servizio sul controller. L'hacker può quindi semplicemente causare un malfunzionamento del servizio o prendere il controllo e accedere all'intera rete.

Per poter sfruttare questa vulnerabilità, gli aggressori devono essere in grado di impostare una sessione TCP (Transmission Control Protocol) con un DC. Se si trovano fisicamente all'interno della rete, potrebbero trovarsi alla scrivania di un utente o accedere a una porta aperta in un luogo come una sala conferenze. 

Questi exploit si qualificano come attacchi interni, gli attacchi oggi più costosi per un'azienda. Possono avere luogo anche dall'esterno della rete, a patto che riescano a trovare un punto d'appoggio per stabilire la sessione TCP verso il controller.

Utilizzando AES-CFB8 con un IV fisso di 16 byte a zero, Tervoort ha scoperto che è probabile che una ogni 256 chiavi utilizzate crei un testo cifrato con un valore di tutti zeri. Si tratta di un numero estremamente ridotto di chiavi che consentono all'aggressore di cercare di creare un testo cifrato composto da tutti zero. Ci vorranno al massimo 2-3 secondi perché il computer dell'hacker lo faccia. 

Diagramma crittografia AES-CFB8 (all-zero IV e testo in chiaro)

E allora, perché è importante?

Se la macchina che comunica con un DC appartiene a un utente che sta semplicemente facendo il suo lavoro non c'è nessun problema reale. Si verifica la generazione di questo testo mal criptato ma il processo di autenticazione della rete continuerà a funzionare. Il problema si presenta solo quando un hacker cerca di sfruttare il sistema.

Nell'attacco provato da Tervoort, l'hacker dovrebbe prima falsificare la credenziale o la password di un cliente sulla rete. A causa della non corretta implementazione dell'IV all'interno dell'MS-NRPC, sono necessari solo circa 256 tentativi per riuscire a farlo. 

Normalmente l'account di un utente viene bloccato dopo tre tentativi di indovinare una password, ma lo stesso non vale per un account associato a un computer o una macchina. Quando un computer si connette non c'è limite ai tentativi di password sbagliate, il che consente agli hacker di generare una sequenza continua di tentativi in un lasso di tempo ridotto per provare a guadagnare l'accesso. Devono trovare una delle chiavi che produce un testo cifrato composto da tutti zeri.

Cosa possono fare gli hacker una volta che hanno falsificato l'identità di un computer in rete? Una volta compiuto il primo passo di falsificazione dell'identità, l'aggressore non conoscerà la chiave di cifratura effettiva della sessione. Gli aggressori sono stati in grado di falsificare la loro identità solo indovinando alla fine una delle 256 chiavi che producono un testo cifrato composto da tutti zeri. Il passo successivo è quello di disattivare il meccanismo di "firma e sigillo".

Firma e sigillo di RPC è il meccanismo utilizzato per la cifratura del trasporto all'interno di MS-NRPC. Questo sembra un processo logico in quanto dovremmo crittografare maggiormente i dati in transito. All'interno di MS-NRPC, tuttavia, questa è una caratteristica opzionale che viene disattivata semplicemente non impostando un flag nell'intestazione di un messaggio. 

Una volta che la firma e il sigillo sono disattivati, i messaggi vengono inviati in chiaro. Gli hacker sarebbero quindi in grado di eseguire qualsiasi operazione desiderino, compresa la rimozione di una password o la sua impostazione a un valore differente. A febbraio 2021 è prevista una patch da Microsoft per imporre il meccanismo di firma e sigillo.

Il terzo passo è quello di modificare la password dell'account che è stato falsificato. Il dispositivo più utile da falsificare è un server AD, preferibilmente addirittura il server AD root. Per modificare la password, gli aggressori utilizzano il messaggio NetServerPasswordSet2 in MS-NRPC. 

È possibile modificare una password semplicemente inviando il frame con la nuova password preferita. L'approccio più semplice è quello di rimuovere la password o di impostarla a un valore vuoto, l'hacker può a questo punto effettuare il login attraverso il normale processo. 

NetrServer


Se l'attacco ha come obiettivo un computer a caso in rete, allora tale computer non è più in grado di effettuare il login. La prima conseguenza di questo attacco è quindi un semplice attacco di rifiuto del servizio contro quel computer.

Impatto globale

Sono al momento disponibili più exploit PoC pubblici. Qualora non venissero applicate le patch ai server di AD, le aziende potrebbero subire gravi danni, poiché l'attacco potrebbe essere utilizzato per iniettare ransomware in una rete. 

Esistono degli strumenti per verificare se i propri server sono vulnerabili. Tervoort e Secura hanno rilasciato uno strumento su GitHub per verificare che i controller di dominio siano dotati delle patch o scoprire se sono vulnerabili.

La patch per CVE-2020-1472

Nell'agosto 2020, Microsoft ha rilasciato una patch per CVE-2020-1472 (Zerologon). A tutti i server AD (2008 R2 e superiori) dovrebbero essere applicate le patch il prima possibile. Ma il tempo medio che passa dal rilascio della patch all'installazione è ancora troppo lungo. 

I ricercatori affermano che in un'azienda media ci vogliono dai 60 ai 150 giorni (circa 5 mesi) dopo il rilascio di una patch affinché sia finalmente installata. Questo tempo è noto come il tempo medio di applicazione della patch (Mean Time to Patch, MTTP). 

Purtroppo la patch appena rilasciata non è una soluzione definitiva al problema. Microsoft prevede di rilasciare una seconda fase della patch, che includerà le funzionalità di esecuzione forzata, all'inizio di febbraio 2021.

A quel punto, tutti i dispositivi saranno tenuti a utilizzare la modalità canale sicuro. In caso contrario sarà loro negato l'accesso. In caso di dispositivi non conformi più vecchi, questi dovranno essere aggiunti manualmente a una policy di gruppo che permette esplicitamente l'accesso ai dispositivi non conformi.

Applicazione di patch virtuali

Le misure di sicurezza tradizionali dovrebbero essere sempre applicate per controllare gli account e le reti compromesse, il traffico dannoso e altri indicatori di compromissione. I sistemi di riconoscimento delle intrusioni (IPS) e i software antimalware per la rete e i dispositivi host (tutti gli endpoint) sono essenziali per monitorare la presenza di ransomware, virus e altre minacce. 

I log degli eventi devono essere raccolti, centralizzati e analizzati da un sistema SIEM (Security Information Event Manager). Una volta che i registri degli eventi sono analizzati, dovrebbero esserci persone e processi al posto giusto, per rispondere agli indicatori di compromissione (Indicators of Compromise, IoC). A quel punto, un team di risposta agli incidenti con solide procedure e conoscenze dovrebbe prendere in mano la situazione per decidere l'entità della compromissione e lavorare per una risoluzione.

Anche con la disponibilità di una patch da parte del fornitore, molti clienti hanno comunque bisogno di tempo per applicarla e implementare misure di sicurezza aggiuntive per proteggere il proprio ambiente. Il concetto di patch virtuale attraverso strumenti come IPS offre agli amministratori e ai professionisti della sicurezza un'arma in più nel loro arsenale. 

Permette loro di guadagnare un po' di tempo che può rivelarsi critico per proteggere le reti. L'applicazione delle patch messe a disposizione dal fornitore è comunque la misura di mitigazione raccomandata. Le soluzioni di applicazione di patch virtuali aiutano a proteggere le macchine prive di patch. In molte circostanze, attraverso funzionalità come l'ispezione dei log, garantiscono anche una preziosa visibilità sui tentativi di sfruttamento delle vulnerabilità della rete a valle dell'applicazione delle patch.

I clienti di Trend Micro possono trovare maggiori informazioni sulle migliori pratiche per affrontare le vulnerabilità e su come possiamo essere d'aiuto visitando questo articolo della knowledge base: https://success.trendmicro.com/solution/000270328

Argomenti di Zerologon

Risorse correlate

Ricerche correlate