Un cybercriminale può scalare i privilegi in un dominio (ossia, può passare dall'essere un semplice utente all'essere amministratore del dominio) in molti modi, ma sapere come può farlo è già un passo avanti nell'eterna lotta tra guardie e ladri della sicurezza informatica. Se l'attaccante ha accesso a un computer collegato al dominio o ha accesso alla rete, infatti, ha diverse opzioni per tentare di aumentare i suoi privilegi e prendere il controllo di singoli computer connessi o dell'intera rete.
Per questo motivo è molto importante sapere come è possibile difendersi da questa eventualità ed evitare che la rete locale che gestiamo diventi preda di un attacco hacker. I dispositivi che utilizzano Windows connessi in rete con Active Directory possono sfruttare alcuni strumenti che possono tornare utili in queste occasioni. Vediamo come è possibile utilizzare i tool di difesa prendendo in considerazione i due casi più frequenti: il tentativo di attaccare un account di sistema locale e quello di attaccare un account amministratore.
Account di sistema locale
L'escalation dei privilegi per l'account di sistema locale sul computer è di solito la prima cosa che un aggressore tenta di fare. L'attaccante può utilizzare una vasta gamma di tecniche, ma avrà metà del lavoro già fatto se è l'amministratore locale su uno degli altri computer connessi alla rete locale.
Per ottenere i privilegi di sistema, l'attaccante spesso esegue la scansione dei servizi in esecuzione sul computer attaccato, cercando quelli che siano stati avviati da un account di sistema. Dopo averli trovati, tenta di sostituirli con file opportunamente modificati con una backdoor che permette all'attaccante di scalare i privilegi fino a quelli di sistema. E il gioco è fatto.
Per difendersi da un attacco del genere è necessario monitorare costantemente le autorizzazioni su file eseguibili, script e DLL utilizzati dai servizi e dalle attività pianificate. Ma serve anche tenere sempre aggiornato il sistema operativo con le ultime patch di sicurezza, visto che la maggior parte dei metodi utili per attaccare le DLL o gli altri servizi in esecuzione deriva dallo sfruttamento di una falla di sicurezza non prevista durante la scrittura del sistema operativo. Cioè le cosiddette falle "zero-day".
C'è poi un altro scenario da considerare: quello in cui un account locale ha privilegi che non dovrebbe avere. L'aggressore può eseguire la scansione della rete e di Active Directory con uno strumento chiamato BloodHound per trovare percorsi di attacco estremamente difficili da scoprire in casi normali. BloodHound utilizza un particolare database, chiamato Neo4j, utile per scoprire relazioni nascoste tra utenti e computer connessi alla rete locale tramite l'applicazione della teoria dei grafi. In questo modo l'attaccante può persino scoprire a quale account corrisponde l'amministratore locale e quali sono le sessioni attive sui computer della rete. Non è raro che un utente (in teoria) non privilegiato possa leggere, scrivere o modificare la password in di un utente con più privilegi.
Per difendersi da un attacco del genere è utile usare lo stesso strumento del nemico: fare una scansione con BloodHound per scoprire se ci sono account con privilegi anomali e, dopo averli trovati, procedere a rimuoverli o bonificarli.
Account amministratore
Gli account amministratore sono più esposti agli attacchi rispetto agli altri e non è raro che vengano presi di mira da un hacker che, molto spesso, non ha grossi problemi a trovare le password e ad eseguire l'escalation ai permessi superiori una volta entrato all'interno di un account non privilegiato di un amministratore. È chiaro, quindi, che per proteggere questo tipo account bisogna stare molto attenti ai tentativi di phishing (utili all'attaccante per ottenere i dati di login all'account, e trovarsi col lavoro mezzo fatto), implementare un modello di sicurezza a strati, l'autenticazione a più fattori e, se possibile, anche quella tramite smart card fisica.
Attenzione alle vulnerabilità
Tutto quanto detto fino ad ora, però, potrebbe non bastare a garantire la sicurezza della rete: un utente malintenzionato potrebbe anche cercare l'eventuale presenza di software vulnerabile in esecuzione sulla rete, se non è in grado di aumentare i suoi privilegi con i metodi precedenti. Questo di solito viene fatto con strumenti specifici, come Striker o Metasploit, ed è un metodo efficace per scalare i privilegi di un account in ambienti in cui la sicurezza non è gestita al meglio (e lo conferma il fatto che viene eseguito software non sicuro), o ci sono ancora computer con sistemi operativi per i quali il supporto ufficiale di Microsoft, Apple, Linux, ecc. (e le relative patch di sicurezza) è scaduto.
Per mitigare il rischio di subire attacchi del genere è fondamentale implementare una routine di patching per tutti i software installati e non solo per il sistema operativo, mettendo fuori servizio le macchine con sistemi operativi o software obsoleti e non aggiornabili. Ossia, è necessario prevedere dei processi di aggiornamento periodico, che permettano di avere software sempre protetti da possibili minacce.