Alessio Mercuri di Vectra AI spiega come, in alcuni casi, i cybercriminali prendono di mira una semplice debolezza nei sistemi informatici di un’organizzazione.

sistemi-informatici

In questo articolo, Alessio Mercuri, Security Engineer di Vectra AI, parte dal caso dell’attacco Kerberoasting per ricordare come i nostri sistemi informatici non sono soltanto vulnerabili, ma sempre più spesso anche fragili e abbiano quindi bisogno di buone pratiche di sicurezza e strumenti per rilevare le minacce all’interno delle reti.

Dobbiamo esserne consapevoli: di fronte al numero crescente di attacchi informatici, i sistemi informatici sono allo stesso tempo vulnerabili e fragili. Vulnerabili nella misura in cui devono affrontare attacchi esterni ricorrenti; fragili – e questo è meno noto – poiché sono essi stessi portatori di punti nevralgici che possono indebolirli in profondità e che non possono essere modificati.

Fragilità dei sistemi informatici: l’esempio dell’attacco Kerberoasting

Attualmente, sempre più sistemi informatici sono interessati per loro natura dalla fragilità. In questo caso, la dimensione fallibile proviene da alcune parti della loro stessa struttura. Il caso del Kerberoasting è eloquente a questo proposito e può servire da esempio. Kerberoasting è il nome di un attacco relativamente noto che permette di recuperare nuovi account all’interno di Active Directory per accedere a servizi (web, database, file, ecc.). Ne è interessata la stragrande maggioranza delle aziende, perché il 99% di esse ha una Active Directory.

Come funziona questo attacco? Kerberoasting prende di mira il protocollo Kerberos, dal nome del cane a tre teste della mitologia greca. Dal punto di vista informatico, Kerberos è stato creato dal Massachusetts Institute of Technology (MIT) nel 1988 e da Windows 2000 è il protocollo di identificazione predefinito.

Il modo in cui questo attacco viene messo in atto è tecnico e sfrutta il fatto che, con Kerberos, qualsiasi utente autenticato del dominio può richiedere un ticket per accedere a un servizio, anche se non ha il diritto di connettersi a esso. Questi ticket sono crittografati utilizzando l’hash NTLM della password dell’account di servizio.

RC4: un algoritmo debole

In questo modo, con un account utente di dominio compromesso, l’attaccante può richiedere un ticket di servizio al controller di dominio. Quest’ultimo risponde con un ticket di servizio criptato con la chiave segreta dell’account di servizio SPN. È qui che l’attacco può potenzialmente far male: l’attaccante può “spammare” un server Kerberos con richieste TGS, estrarre questi ticket dalla memoria e poi cercare di effettuare un crack delle password offline, cercando di “rompere” un algoritmo chiamato RC4, che è debole, senza bisogno di generare richieste o pacchetti al servizio target.

In caso di successo, l’attaccante entra in possesso delle credenziali dell’account di servizio e può ottenere un accesso illimitato a tutti i sistemi informatici e a tutte le risorse a cui l’account compromesso ha accesso. L’attacco può, quindi, continuare con un maggiore accesso al sistema informatico.

Gli attacchi Kerberoasting sfruttano una debolezza dell’architettura Kerberos. Ciò consente a un utente malintenzionato – con accesso a un account utente del dominio (con la sua password o con il ticket TGT) – di richiedere ticket di connessione a qualsiasi servizio, anche se l’utente non è autorizzato ad accedere a quel servizio.

È il ticket di servizio fornito dal controller di dominio a qualsiasi client autenticato che lo richieda, crittografato con l’hash della password dell’account di servizio, che gli attaccanti cercheranno di decifrare offline. In caso di successo, l’attaccante sarà in grado di aumentare i propri privilegi molto rapidamente e di effettuare movimenti laterali all’interno del sistema informatico dell’azienda.

Difficili da rilevare, anche perché la parte più dura dell’attacco avviene offline, questi movimenti consentono al criminale informatico di avanzare fino a prendere il controllo dei sistemi informatici.

Attacchi improvvisi contro i quali ci si può proteggere

Per proteggersi da dagli attacchi contro i sistemi informatici, è possibile mettere in atto diverse azioni. In primo luogo, è consigliabile intervenire sugli account utente privilegiati, in quanto sono un obiettivo prioritario per gli aggressori. Se possibile, è preferibile non avere account che possono eseguire servizi, se i diritti privilegiati non sono necessari. Inoltre, se l’account non è destinato a essere utilizzato al di fuori di Active Directory, è preferibile utilizzare i Managed Service Accounts (MSA), che garantiscono che la password dell’account sia efficace e sia cambiata regolarmente e in modo automatico. Se l’account viene utilizzato al di fuori di Active Directory, è necessario impostare una password di oltre 32 caratteri. Infine, l’account utente deve essere configurato per supportare l’algoritmo AES, meno vulnerabile di quello RC4.

Come dimostra l’attacco Kerberoasting, i nostri sistemi informatici sono vulnerabili ma anche fragili. La fragilità di Kerberos, lungi dall’essere una vulnerabilità, è in realtà una semplice funzionalità che non può essere estratta dal sistema informativo, come si farebbe con un agente patogeno. Tra i mezzi di protezione, l’applicazione di buone pratiche di sicurezza (per quanto riguarda gli algoritmi di crittografia dei ticket, la gestione degli account di servizio, ecc.) o la disponibilità di strumenti per rilevare le minacce all’interno delle reti è essenziale. Individuare i movimenti laterali, stabilire l’iter di un attacco in vista o l’uso sospetto di un account: la vera soluzione passa necessariamente da qui.

di Alessio Mercuri, Security Engineer di Vectra AI