Sean Deuby

All'interno dell'infrastruttura IT, Active Directory (AD) è l'hub centrale per controllare l'accesso alle risorse e mantenere l'azienda operativa. Tuttavia, l'importanza di Active Directory per l'organizzazione la mette nel mirino delle minacce. Se Active Directory viene violata con successo, gli aggressori possono mettere le mani su credenziali privilegiate e potenzialmente compromettere la sicurezza dei dati aziendali o influenzare le applicazioni. L'implementazione delle best practice di sicurezza di Active Directory è quindi una parte importante della pianificazione di una politica di sicurezza digitale.

Quali sono le best practice di sicurezza di Active Directory?

Proteggere Active Directory significa rendere la vita il più difficile possibile ai cyberattaccanti. Queste 12 best practice per la sicurezza di Active Directory possono contribuire a ridurre il rischio di violazione della sicurezza e ad aumentare la resilienza informatica. L'obiettivo: ridurre la superficie di attacco per proteggere e rendere più solido l'ambiente Active Directory.

  1. Mantenere un numero minimo di utenti privilegiati.
  2. Usare i gruppi per assegnare i privilegi.
  3. Protezione degli account con privilegi di amministratore.
  4. Applicare criteri moderni per le password.
  5. Imporre password forti agli account di servizio.
  6. Eseguire valutazioni periodiche per rilevare le violazioni dei criteri delle password.
  7. Disattivare il servizio Print Spooler.
  8. Disattivare Server Message Block v1 (SMBv1) e limitare New Technology LAN Manager (NTLM).
  9. Limitare l'accesso ai controller di dominio (DC).
  10. Pianificare il ripristino di Active Directory.
  11. Utilizzare il filtraggio SID per tutti i trust della foresta.
  12. Monitorare Active Directory per individuare attività sospette e configurazioni non sicure.

Siete pronti per iniziare?

1. Mantenere un numero minimo di utenti privilegiati

Gli utenti con privilegi eccessivi mettono direttamente in discussione i requisiti di sicurezza e di conformità alle normative. Se compromessi, questi account consentono agli aggressori di acquisire una posizione di maggior rilievo nell'ambiente. La gestione degli utenti privilegiati è una parte fondamentale della gestione complessiva di Active Directory, ma può anche richiedere molto tempo. Le grandi aziende possono avere centinaia di account in gruppi privilegiati.

Ad alcuni account potrebbero essere concessi permessi eccessivi per far funzionare rapidamente le nuove applicazioni. Altri potrebbero aver ereditato permessi di cui non hanno più bisogno. Se siete responsabili della concessione degli accessi, per risolvere questa sfida dovete comprendere il principio del minimo privilegio e usarlo per determinare quali permessi sono necessari a ciascun utente o gruppo per svolgere efficacemente il proprio lavoro.

Iniziate a esaminare i seguenti gruppi per verificare che ogni membro abbia un motivo legittimo per essere incluso:

  • Amministratori aziendali
  • Amministratori di schemi
  • Amministratori di dominio
  • Operatori del conto (se applicabile)
  • Operatori di server (se applicabile)
  • Operatori di stampa (se applicabile)
  • Amministratori DHCP
  • DNSAdmins

2. Utilizzare i gruppi per assegnare i privilegi

L'uso dei gruppi semplifica il processo di distribuzione dei permessi agli utenti. Invece di gestire le autorizzazioni individualmente (cosa che può portare a errori), organizzate gli utenti in gruppi e poi assegnate le autorizzazioni appropriate a questi gruppi.

Un insieme di utenti può rappresentare un'unità aziendale o un team interno in cui gli utenti hanno esigenze identiche per quanto riguarda i diritti di accesso. Per determinare chi debba appartenere a ciascun gruppo (ad esempio, chi funge da amministratore di dominio o da amministratore di schema) e quali diritti debbano avere tali gruppi è necessaria la comunicazione tra il team di gestione di Active Directory e gli stakeholder aziendali.

3. Protezione degli account con privilegi di amministratore

Quando viene creato un dominio in Active Directory, l'account Administrator locale diventa l'account di dominio Administrator e un membro predefinito dei gruppi Domain Admins e Administrators del dominio. Se il dominio è il dominio radice della foresta, l'account diventa anche membro del gruppo Enterprise Admins.

Per proteggere questo account, Microsoft consiglia di impostare il flag "L'account è sensibile e non può essere delegato". Verificate inoltre che gli oggetti Criteri di gruppo (GPO) siano configurati in modo da limitare l'uso degli account Amministratore di dominio e Amministratore integrato sui sistemi uniti al dominio. In particolare, bloccate questi account da:

  • Accesso ai server e alle stazioni di lavoro dei membri
  • Accesso come lavoro batch
  • Accesso come servizio
  • Accesso ai server e alle postazioni di lavoro dei membri utilizzando i servizi desktop remoti.

4. Applicare criteri moderni per le password

Al centro di ogni attacco aziendale o violazione della sicurezza, spesso c'è una credenziale di password rubata. Oltre a utilizzare tali credenziali per l'accesso iniziale, gli attori delle minacce possono usarle per spostarsi lateralmente nell'ambiente compromesso.

Per questo motivo, la sicurezza delle password è fondamentale. Tuttavia, l'esperienza dei grandi fornitori di servizi cloud ha dimostrato che i criteri tradizionali per le password sono inadeguati contro gli attacchi moderni. Il NIST e altre grandi organizzazioni hanno aggiornato le loro politiche sulle password per riconoscere questa realtà.

Gli attacchi di forza bruta contro i servizi rivolti a Internet sono diminuiti. Sono stati sostituiti da attacchi di tipo spray alle password, in cui vengono tentate password comuni e ben conosciute contro molti utenti di un'organizzazione. Questi attacchi sono ormai comuni e spesso hanno successo. Gli attacchi spray alle password sfruttano la tendenza degli utenti a creare password facili da ricordare e da indovinare.

Una strategia migliore consiste nel concentrarsi innanzitutto sull'eliminazione delle password più comuni da Active Directory. Questo può essere realizzato con filtri per password di terze parti o con Microsoft Azure AD Password Protection.

Il secondo passo verso una politica di password forte consiste nel riconoscere che l'imposizione della complessità può portare a password che gli utenti non riescono a ricordare e a schemi facilmente riconoscibili che gli aggressori possono rapidamente decifrare. Incoraggiate invece la lunghezza delle password o delle passphrase, con l'aggiunta di numeri e caratteri speciali, che consentano di ottenere password facili da ricordare per gli utenti ma difficili da indovinare per gli aggressori.

Ad esempio, la password Implicate-Research1-Uncooked può essere ricordata facilmente ma (secondo lo strumento di forza delle password di Bitwarden) ci vorrebbero secoli per decifrarla. Sia le fonti online che i principali gestori di password contengono utility per generare passphrase. L'utente può semplicemente continuare a generare finché non trova una password che riesce a ricordare.

Infine, è sconsigliato richiedere la scadenza delle password. L'esperienza ha dimostrato che la rotazione costringe gli utenti a modelli di password facilmente decifrabili. Se un'organizzazione è stata violata o le credenziali di un utente sono state compromesse, le password devono essere aggiornate. Altrimenti, lasciatele stare.

Implementate contemporaneamente tutti questi controlli: divieto di password comuni, riduzione della complessità, aumento della lunghezza e disabilitazione della scadenza delle password. Altrimenti, si rischia di creare password facilmente craccabili.

Un'altra buona pratica: Sfruttare la funzione dei criteri di password a grana fine. Sebbene gli amministratori possano utilizzare il criterio di dominio predefinito per impostare un unico criterio di password per tutti i membri del dominio, i criteri di password a grana fine consentono agli amministratori di impostare password più rigorose per singoli utenti e gruppi globali.

5. Imporre password forti agli account di servizio

Kerberoasting è il modo più comune per compromettere un account privilegiato e ottenere il controllo di un server Active Directory. Gli attacchi Kerberoasting sono in aumento, secondo alcune stime sono cresciuti di oltre il 500% dall'inizio del 2022.

In questa tecnica, l'attore della minaccia inizia ottenendo l'accesso di un utente regolare attraverso il phishing o un altro metodo. Con questo accesso, l'aggressore può facilmente ottenere un elenco di account di servizio enumerando i nomi dei principali servizi (SPN) in Active Directory.

Successivamente, l'aggressore mette in relazione questi account con le appartenenze a gruppi privilegiati per ottenere un elenco di account di servizio privilegiati. L'attore della minaccia richiede quindi un ticket di servizio Kerberos da uno di questi account privilegiati. Il ticket è crittografato con l'hash della password dell'account di servizio, che l'aggressore può in genere decifrare offline.

Con l'hash della password dell'account di servizio crackato, l'attore della minaccia può ottenere rapidamente il controllo di Active Directory. Un attacco Kerberoasting riuscito può compromettere una foresta Active Directory in pochi minuti.

L'unico modo per contrastare un attacco Kerberoasting è rendere le password degli account di servizio estremamente difficili da decifrare:

  • Utilizzare un minimo di 25 caratteri.
  • Utilizzate un generatore di password per creare una password lunga, complessa e altamente entropica e conservatela in un archivio di password.
  • Considerate l'utilizzo di un account di servizio gestito da un gruppo (gMSA) che ruota automaticamente le password complesse. (Prima, però, assicuratevi di conoscere le potenziali vulnerabilità legate ai gMSA).

6. Eseguire valutazioni regolari per rilevare le violazioni dei criteri delle password.

Una revisione regolare dei criteri e delle impostazioni delle password può aiutare a individuare i problemi che possono esporre Active Directory a un attacco. Ad esempio, è opportuno esaminare tutti gli account con il flag PASSWD_NOTREQD impostato. Inoltre, è opportuno esaminare gli account impostati per abilitare l'accesso anonimo ad Active Directory, che consente agli utenti non autenticati di interrogare Active Directory.

7. Disattivare il servizio Print Spooler

Il servizio Print Spooler gestisce i processi di stampa ed è eseguito per impostazione predefinita su client e server Windows. Anche se all'apparenza sembra corretto, qualsiasi utente autenticato può connettersi in remoto al servizio, richiedere un aggiornamento sui nuovi lavori e dire al DC di inviare la notifica al sistema con una delega non vincolata. Questo espone le credenziali dell'account del computer del DC. A causa del rischio, la prassi migliore è quella di disabilitare il servizio su tutti i DC.

8. Disabilitare SMBv1 e limitare NTLM

Anche i DC che abilitano il protocollo SMBv1 sono a rischio. Microsoft ha deprecato SMBv1, che è vulnerabile a diversi attacchi, nel 2014 e consiglia di disabilitarlo.

Allo stesso modo, limitate l'uso di NTLM. Molte organizzazioni tardano a disabilitare NTLM a causa dell'impatto che questa azione può avere. Tuttavia, i responsabili IT dovrebbero considerare di limitarne il più possibile l'uso.

9. Limitare l'accesso ai controller di dominio

Le organizzazioni devono limitare l'accesso ai controller di dominio per limitare la minaccia di compromissione del DC da parte di malware:

  • Il DC non deve consentire la navigazione sul web.
  • Le GPO collegate a tutte le unità organizzative DC di una foresta devono essere impostate solo per consentire le connessioni al Remote Desktop Protocol (RDP) da parte di utenti e sistemi autorizzati.

10. Pianificare il ripristino di Active Directory

Stabilire un piano di ripristino di Active Directory completo e dettagliato è una parte fondamentale della costruzione della resilienza informatica. Le organizzazioni dovrebbero eseguire il backup di almeno due DC per dominio, compreso il dominio principale. Questi backup devono essere mantenuti offline per evitare che vengano infettati da malware.

11. Utilizzare il filtraggio SID in tutti i trust della foresta.

Per comprendere l'importanza del filtraggio SID per la sicurezza, si consideri il modo in cui il controllo degli accessi di Active Directory viene gestito tra le foreste.

Un forest trust collega due foreste di Active Directory per consentire agli utenti di una foresta di accedere alle risorse dell'altra. I forest trust sono essenziali per mantenere l'accesso in un'organizzazione con più foreste. In uno scenario comune, gli utenti di una foresta di account centralizzata accedono ad applicazioni (come file server o server SharePoint) in una o più foreste di risorse.

Ogni utente, gruppo o computer (noti come presidi di sicurezza) in un dominio e in una foresta di Active Directory ha un identificatore di sicurezza (SID) unico. Questo identificatore viene utilizzato nel token di accesso dell'utente per concedere l'accesso alle risorse in tutta la foresta utilizzando le liste di controllo degli accessi (ACL).

In Intel mi sono imbattuto in un problema legato al SID durante il test delle versioni beta di Active Directory: Quando migravamo un utente in una nuova foresta di Active Directory, l'utente perdeva l'accesso alle risorse della foresta di origine. Questo accadeva perché il SID concesso all'utente nella nuova foresta era diverso dal SID originale dell'utente. Pertanto, l'utente ha perso l'autorizzazione ad accedere alla risorsa.

Steve Grobman (ora CTO di McAfee) propose a Microsoft l'idea di un attributo che contenesse il SID originale della foresta di origine, mantenendo così l'accesso alle risorse originali. Microsoft accettò questa richiesta di modifica del progetto e nacque l'attributo sIDHistory. Durante qualsiasi progetto di migrazione o consolidamento di Active Directory, sIDHistory è essenziale per mantenere l'accesso degli utenti alle risorse della foresta di origine quando l'utente è migrato nella foresta di destinazione, ma le risorse non lo sono.

Tuttavia, una volta completato il progetto di migrazione o consolidamento, sIDHistory deve essere rimosso. Un attore minaccioso con diritti elevati potrebbe sfruttare sIDHistory per copiare un SID da un dominio fidato (ad esempio il SID di un membro del gruppo Domain Admins) e aggiungerlo all'attributo sIDHistory di un principale di sicurezza nel dominio fidato, concedendo così all'aggressore diritti di amministrazione nel dominio fidato.

È qui che entra in gioco il filtro SID. Rimuove tutti i SID estranei (cioè non del dominio locale) dal token di accesso dell'utente, impedendo così questo attacco di escalation. Il filtro SID deve essere attivato su tutti i trust della foresta, a meno che non sia in corso un processo di migrazione o consolidamento.

Purtroppo, nella mia esperienza, la maggior parte dei progetti di migrazione e consolidamento non finisce mai. Si fermano solo durante la fase più difficile della migrazione delle applicazioni e la cronologia SID viene lasciata attiva in modo che gli utenti possano continuare ad accedere alle risorse originali.

Tenere presente che alcuni errori di configurazione possono ridurre l'efficacia del filtraggio SID. Ad esempio:

  • I trust forestali in uscita che hanno il flag TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL impostato su true trattano un trust cross-forest a un dominio come un trust esterno, attenuando il filtro più severo eseguito sui trust cross-forest.
  • I trust con l'attributo TRUST_ATTRIBUTE_ CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION o TRUST_ATTRIBUTE_ PIM_TRUST consentono di delegare un ticket Kerberos, riducendo la protezione offerta dal filtraggio SID.

12. Monitorare Active Directory per rilevare attività sospette e configurazioni non sicure.

Gli aggressori spesso sfruttano configurazioni che consentono loro di aumentare rapidamente i privilegi e di persistere inosservati nel vostro ambiente. Pertanto, verificate e monitorate regolarmente i diritti di accesso per individuare eventuali indizi di un attacco in corso o della vulnerabilità della vostra organizzazione.

Alcuni oggetti, come l'oggetto AdminSDHolder , raramente vengono modificati legittimamente. L'oggetto AdminSDHolder funge da modello di autorizzazioni per gruppi e account protetti in un dominio. Se l'ereditarietà è abilitata, un utente malintenzionato potrebbe cercare di modificare le autorizzazioni degli oggetti privilegiati controllati da AdminSDHolder.

Gli amministratori devono sapere che è stata apportata una modifica ed essere in grado di spiegarne il motivo. Se la modifica è stata involontaria, la probabilità di compromissione è elevata. Il monitoraggio di questo tipo di attività è fondamentale per individuare rapidamente gli attacchi e impedire che le impostazioni vengano sfruttate.

Come Semperis può aiutarvi a proteggere Active Directory

Semperis offre soluzioni di valutazione e ripristino della sicurezza di Active Directory per aiutarvi a concentrare i vostri sforzi.

La protezione di Active Directory può sembrare un compito monumentale. Adottando le migliori pratiche per la sicurezza di Active Directory, è possibile aumentare il livello di difficoltà per gli aggressori e migliorare la sicurezza complessiva dell'ambiente.