Active Directory Hardening: Best practices “from the field”
L’Active Directory (AD) è il cuore dell’infrastruttura IT di molte organizzazioni, ma spesso rappresenta anche un obiettivo primario per attaccanti sofisticati. La sua compromissione può avere conseguenze devastanti, consentendo escalation di privilegi, movimenti laterali e l’accesso a dati critici.
In questo articolo, condividiamo alcune best practice direttamente dal campo, basate su esperienze reali e scenari affrontati in ambienti aziendali. Dall’implementazione di controlli avanzati alla segmentazione dei privilegi, fino alla protezione delle credenziali e alla difesa dagli attacchi più comuni, esploreremo strategie concrete per rafforzare la sicurezza del tuo Active Directory e ridurre al minimo i rischi.
1. Sicurezza del sistema operativo del Domain Controller
Aggiornamenti e Patch
- Assicurati che il sistema operativo sia sempre aggiornato con le ultime patch di sicurezza.
- Configura Windows Update per installare automaticamente gli aggiornamenti critici. Test preliminari delle patch critiche in un ambiente di staging prima del deployment in produzione per evitare problemi di compatibilità.
Protezione dell’accesso locale
- Nessun accesso interattivo agli amministratori remoti direttamente sul DC.
- Minimizza il numero di utenti amministrativi con accesso diretto al DC. Accesso privilegiato tramite Jump Server: Per accedere al DC, utilizza server di gestione dedicati (PAW – Privileged Access Workstation) anziché consentire accessi diretti.
Configurazione delle politiche di sicurezza
- Disabilita l’account Administrator predefinito e rinominalo.
- Abilita il Credential Guard e Device Guard per prevenire attacchi Pass-the-Hash e Credential Dumping. Verifica che l’hardware supporti VBS (Virtualization-Based Security).
- Disabilita SMBv1 e altri protocolli obsoleti ed abilita SMB Signing. Esegui una scansione delle dipendenze per assicurarti che nessun vecchio sistema o applicazione lo utilizzi ancora.
- Configura il Windows Firewall per bloccare le connessioni non necessarie. Implementa regole di segmentazione per separare il traffico amministrativo da quello utente.
- Implementa il Just Enough Administration (JEA) per limitare i privilegi degli utenti amministrativi. Usa anche JIT (Just-In-Time) Administration per fornire privilegi elevati solo quando necessario e per un tempo limitato.
2. Protezione delle credenziali e del protocollo di autenticazione
NTLM e Kerberos
- Disabilita NTLMv1 e NTLMv2 e forza l’uso di Kerberos. NTLMv2 è presente fin da Windows NT 4.0 SP4 e da più di un decennio si discute sulla necessità di renderne obbligatorio l’uso. Numerosi articoli hanno analizzato il funzionamento di NTLM e le vulnerabilità di NTLMv1, evidenziandone l’insicurezza. Per approfondimento Active Directory Hardening Series – Part 1 – Disabling NTLMv1
- Configura il Kerberos Constrained Delegation per ridurre i rischi di attacchi di escalation dei privilegi. Se usi KCD con servizi che gestiscono dati sensibili, valuta Resource-Based Constrained Delegation (RBCD), che è più sicuro perché limita la delega a risorse specifiche.
- Utilizza i Protected Users Group. Gli utenti aggiunti a questo gruppo sono soggetti ad una serie di restrizioni di sicurezza che rendono più difficile per un attaccante comprometterli, anche se questi riuscisse ad ottenere l’accesso ai loro account.
- Kerberos è un protocollo chiave per l’autenticazione sicura all’interno di Active Directory. Applicando la crittografia AES per Kerberos, si migliora significativamente la sicurezza dei processi di autenticazione. Abilita PAC Validation per prevenire manomissioni nei ticket. Abilita la firma e la crittografia dei ticket Kerberos con AES256.
Limitazione dell’accesso agli account privilegiati
-
Non usare account con privilegi elevati per attività quotidiane (crea un account separato per la gestione amministrativa). Crea almeno due account per ogni amministratore:
- Account normale (senza privilegi) → Per uso quotidiano.
- Account amministrativo (senza accesso a Internet o e-mail) → Solo per la gestione del DC
- Implementa un Tier Model (Tier 0, Tier 1, Tier 2) per segmentare i privilegi amministrativi.
- Usa gMSA (Group Managed Service Accounts) per proteggere i servizi in esecuzione su AD.
Protezione delle password
- Abilita la password complexity policy e imposta una lunghezza minima di 14 caratteri. Meglio ancora: Imposta un requisito di lunghezza di 16 caratteri per ridurre i rischi di brute-force.
- Configura il Fine-Grained Password Policy per utenti e gruppi specifici.
- Implementa il Windows Defender Credential Guard per proteggere le credenziali memorizzate nella memoria. Protegge le credenziali nel processo LSASS impedendo a malware e attaccanti di accedere ai ticket Kerberos e hash NTLM. Attenzione: Prima di attivarlo, verifica la compatibilità con le applicazioni legacy!
3. Sicurezza della rete e delle comunicazioni
Hardening del protocollo LDAP
- Abilita LDAP Signing e LDAP Channel Binding per prevenire attacchi Man-in-the-Middle (MitM). Configurazione LDAP Signing via GPO: Imposta “Domain Controller: LDAP server signing requirements” su “Require Signing”. Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Domain Controller: LDAP server signing requirements → Require Signing.
- Disabilita LDAP anonimo. L’accesso anonimo a LDAP può consentire a un attaccante di elencare utenti e oggetti AD senza autenticazione. Imposta: Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Domain Controller: Allow anonymous LDAP operations → Disabled.
Protezione delle connessioni di rete
- Abilita IPSec per proteggere il traffico tra Domain Controllers. Usa IPSec con autenticazione Kerberos o certificati PKI per crittografare il traffico AD.
- Disabilita il servizio LLMNR (Link-Local Multicast Name Resolution) per prevenire attacchi di spoofing e relay (es. attacchi con Responder). Alternativa: Usa DNS sicuro con DNSSEC e blocca LLMNR.
-
Configura firewall per bloccare porte non necessarie. Restringi il traffico alle sole porte essenziali per Active Directory.
Porte essenziali per i Domain Controller:
Servizio |
Porta |
Protocollo |
LDAP |
389 |
TCP/UDP |
LDAPS |
636 |
TCP |
Global Catalog |
3268 |
TCP |
Global Catalog SSL |
3269 |
TCP |
Kerberos |
88 |
TCP/UDP |
SMB |
445 |
TCP |
RPC Endpoint Mapper |
135 |
TCP |
DNS |
53 |
TCP/UDP |
- Blocca SMB (porta 445) tra workstation per prevenire attacchi Worm/Ransomware.
- Blocca il traffico RPC su porte alte (49152-65535) se non necessario.
4. Protezione del database di Active Directory (NTDS.dit)
- Usa BitLocker per cifrare il volume dove si trova NTDS.dit.
-
Configura la Protezione degli oggetti critici di AD per prevenire eliminazioni accidentali. Abilita la protezione su account amministrativi e gruppi sensibili come:
- Domain Admins
- Enterprise Admins
- Schema Admins
- Administrators
- Backup Operators
-
Abilita il Read-Only Domain Controller (RODC) per i DC in ambienti insicuri (ad esempio sedi remote e filiali).
Blocca l’accesso amministrativo al RODC:- Evita di aggiungere amministratori locali sul RODC.
- Usa deleghe specifiche per utenti non privilegiati che devono gestirlo.
5. Monitoraggio e Logging
Abilita il Logging Avanzato
- Configura il Windows Event Forwarding (WEF) per centralizzare i log di sicurezza. Raccoglie i log di sicurezza dei Domain Controller e li centralizza, evitando che vengano cancellati da un attaccante.
- Abilita il logging avanzato di PowerShell per rilevare esecuzioni sospette di script. Rileva esecuzioni sospette di script usati per attacchi che utilizzano Mimikatz o compromissione di credenziali. Utile per individuare exploit e attacchi post-exploitation (es. Pass-the-Hash).
-
Abilita Audit degli accessi su NTDS.dit per rilevare tentativi di attacco. Rileva tentativi di furto del database AD (attacchi DCSync, DCShadow, Golden Ticket). Abilita Auditing Avanzato con GPO
- Computer Configuration > Policies > Windows Settings > Advanced Audit Policy Configuration > DS Access
- Abilita “Audit Directory Service Access” e impostalo su Success & Failure.
Monitoraggio degli accessi e delle modifiche
-
Monitora le modifiche ai gruppi privilegiati (Domain Admins, Enterprise Admins).
Eventi da monitorare:- Event ID 4728 → Aggiunta a un gruppo privilegiato
- Event ID 4729 → Rimozione da un gruppo
- Event ID 4732 → Modifica a “Domain Admins”
-
Usa Sysmon e Microsoft Defender for Identity per rilevare anomalie nelle attività di autenticazione. Sysmon fornisce dettagli granulari su processi sospetti, esecuzioni di script e connessioni di rete. Microsoft Defender for Identity rileva movimenti laterali, attacchi Pass-the-Hash e modifiche sospette in AD.
-
Eventi critici da monitorare in Sysmon:
- Event ID 1 → Creazione di processi
- Event ID 3 → Connessioni di rete sospette
- Event ID 10 → Modifiche al registro critiche
- Event ID 21 → Caricamento di driver sospetti
-
Eventi critici da monitorare in Defender for Identity:
- Tentativi di attacco Pass-the-Hash
- DCSync / DCShadow
- Movimenti laterali sospetti
-
6. Protezione dai malware e ransomware
-
Abilita Microsoft Defender for Endpoint sui DC. Abilita Defender for Endpoint tramite GPO: Computer Configuration > Policies > Administrative Templates > Windows Components > Microsoft Defender Antivirus
-
Abilita:
- “Turn on Microsoft Defender Antivirus”
- “Enable real-time protection”
- “Enable network protection”
-
-
Attiva la protezione avanzata per Active Directory con Defender for Identity
- Rileva attacchi di tipo DCSync, DCShadow e Kerberoasting.
- Analizza anomalie nei tentativi di autenticazione su AD.
- Configura regole di Application Whitelisting (AppLocker o Windows Defender Application Control) per prevenire esecuzioni non autorizzate.
- Usa Honeytokens per rilevare tentativi di accesso sospetti. Sono account fake, password, sessioni RDP, file o condivisioni create apposta per attirare gli attaccanti. Se un attaccante prova a usare un honeytoken viene immediatamente identificato.
7. Backup e disaster recovery
- Configura backup regolari dei Domain Controller. Tra i software più utilizzati ricordiamo Windows Server Backup, Veeam Backup & Replication, Rubrik, Commvault, NetBackup.
- Abilita il Recycle Bin di Active Directory per ripristinare oggetti eliminati accidentalmente.
- Isola i backup critici per prevenire attacchi ransomware. Ransomware avanzati (es. LockBit, Ryuk) tentano di eliminare i backup prima di cifrare i file. Un backup accessibile dagli stessi utenti di produzione è a rischio compromissione. Usa backup immutabili o NAS con accesso limitato o backup offline.
8. Politiche di accesso e privilegi
- Rimuovi utenti non autorizzati da gruppi privilegiati. Molte aziende hanno utenti dimenticati in “Domain Admins”, aumentando il rischio di compromissione degli account.
Gruppi critici da controllare e proteggere
Gruppo |
Descrizione |
Domain Admins | Controlla l’intero dominio AD |
Enterprise Admins | Amministrazione dell’intera foresta |
Schema Admins | Modifica lo schema di AD (pericoloso!) |
Administrators | Accesso locale e di dominio |
Backup Operators | Può eseguire backup, ma anche estrarre dati sensibili |
Remote Desktop Users | Può accedere via RDP ai server, potenziale rischio |
Abilita il monitoraggio delle modifiche ai gruppi privilegiati con GPO:
Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > DS Access > Audit Directory Service Changes e Abilita Success & Failure
-
Utilizza il Principle of Least Privilege per minimizzare i diritti di accesso.
Mai usare account con privilegi elevati per attività quotidiane (e-mail, navigazione). Ogni amministratore deve avere due account:
- Account normale → Usato per operazioni di base (senza privilegi).
- Account amministrativo → Usato solo per la gestione del dominio (senza accesso a Internet).
- Disabilita account inattivi e guest. Gli attaccanti spesso usano account vecchi per accedere al dominio. Account inattivi possono essere compromessi e usati per movimenti laterali.
9. Protezione del trust tra domini
-
Configura la Selective Authentication per trust con domini esterni. Limita l’accesso degli utenti provenienti da domini esterni ai soli server e risorse necessarie.
- Di default, un trust “Forest-Wide” permette a qualsiasi utente autenticato di accedere alle risorse del dominio di destinazione.
- La Selective Authentication richiede che ogni risorsa sia esplicitamente concessa agli utenti del dominio esterno.
- Mitiga attacchi di movimento laterale tra domini, come Pass-the-Ticket e Golden Ticket.
- Monitora le modifiche alle trust relationships con il log Event ID 4706. Gli attaccanti avanzati (es. APT) cercano di compromettere i trust per spostarsi lateralmente tra domini. Monitorare le modifiche ai trust permette di individuare attacchi di escalation dei privilegi.
- Proteggi il Trust da Attacchi di Replica AD (DCSync, DCShadow). DCShadow consente a un attaccante di creare un Domain Controller fittizio per replicare AD. Defender for Identity rileva attività sospette di registrazione di nuovi DC.
10. Automazione e sicurezza proattiva
-
Usa Microsoft Defender for Identity per identificare minacce avanzate. Controlla e rileva movimenti laterali, attacchi Pass-the-Hash e tentativi di compromissione dell’Active Directory.
- Rileva attacchi avanzati come DCSync, DCShadow, Golden Ticket, Kerberoasting.
- Analizza il comportamento degli utenti e segnala attività anomale.
- Protegge AD da escalation di privilegi non autorizzate.
- Configura strumenti di SIEM (Security Information and Event Management) come Splunk o Microsoft Sentinel per centralizzare la raccolta dei log.
-
Effettua Red Teaming/Pentest periodici, affidandoti ad esperti, per identificare vulnerabilità.
- Gli attacchi reali sfruttano falle non evidenti nei log.
- Simulare attacchi aiuta a validare l’efficacia delle difese e dei monitoraggi.
-
Identifica configurazioni errate e accessi non autorizzati.
- Ecco alcuni strumenti per testare AD:
Strumento |
Uso principale |
BloodHound | Mappa relazioni tra utenti e gruppi in AD |
Mimikatz | Rileva credenziali deboli e attacchi PtH,PTT |
PowerShell Empire | Simula attacchi post-exploitation |
Responder | Utilizzato in attacchi di avvelenamento DNS/LLMNR o relay in generale |
PingCastle | Valuta la sicurezza dell’intero dominio AD |
NB: Il mero utilizzo di questi strumenti non fornisce una panoramica chiara dei possibili scenari di attacco. Solo con l’aiuto di esperti del settore si può avere contezza degli eventuali problemi presenti all’interno dell’infrastruttura.
Altri aspetti avanzati da analizzare per il Domain Controller
Oltre alle best practice fondamentali, esistono diversi aspetti avanzati che possono migliorare ulteriormente la sicurezza e la resilienza del Domain Controller. Dalla gestione avanzata dei privilegi alla protezione dei canali di autenticazione, fino alle tecniche di monitoraggio proattivo. Queste strategie consentono di rafforzare la difesa contro minacce sempre più sofisticate.
Vediamone alcune in modo da approfondire e rendere l’infrastruttura AD più sicura e resiliente.
1. Controllo e rimozione di privilegi critici
Alcuni privilegi predefiniti possono essere utilizzati dagli attaccanti per eseguire codice con privilegi elevati o manipolare il sistema. È consigliato rimuovere o limitare i seguenti privilegi sui DC:
-
SeDebugPrivilege (Debug Programs) ➝ Rimuovere da tutti gli utenti tranne SYSTEM
Permette di accedere alla memoria di processi critici, rendendolo utile per attacchi Pass-the-Hash e Credential Dumping (Mimikatz).
Verifica con il comando PowerShell:
whoami /priv | findstr SeDebugPrivilege
Per rimuoverlo usate il comando:
ntrights -r SeDebugPrivilege -u “Domain Admins”
-
SeEnableDelegationPrivilege ➝ Limitare solo a ruoli autorizzati
Permette di delegare autenticazioni tra sistemi e può essere sfruttato per attacchi Golden Ticket e Kerberoasting.
-
SeImpersonatePrivilege & SeAssignPrimaryTokenPrivilege
Permettono di impersonare altri utenti ed eseguire codice come SYSTEM (attacco Token Theft).
Limita questi privilegi ai soli processi/utenti che ne hanno realmente bisogno.
2. Protezione delle GPO (Group Policy Object)
- Bloccare la modifica non autorizzata delle GPO usando GPO Permissions.
- Monitorare le modifiche alle policy critiche con Event ID 5136 (modifica GPO).
- Rimuovere l’accesso di scrittura agli utenti non amministratori alle policy.
3. Protezione dei servizi di Windows
-
Disabilitare servizi non necessari sui Domain Controller, tra cui:
- Server
- Workstation
- Fax
- Spooler (vulnerabile a PrintNightmare)
- Remote Registry (evita modifiche da remoto)
- Windows Remote Management (WinRM) se non usato.
-
Comandi per disabilitare i servizi critici:
Set-Service Spooler -StartupType Disabled
Set-Service RemoteRegistry -StartupType Disabled
4. Controllo degli Account con accesso speciale
-
Verificare chi ha privilegi speciali con il comando:
Get-ADGroupMember -Identity “Domain Admins”
-
Creare un alert per aggiunte sospette ai gruppi privilegiati:
- Monitorare Event ID 4728 (Aggiunta a gruppi privilegiati)
- Monitorare Event ID 4732 (Aggiunta a gruppi locali)
5. Hardening delle autorizzazioni su NTDS.dit
- Impedire la lettura diretta del database NTDS.dit, bloccando utenti non autorizzati.
- Proteggere il volume NTDS.dit con BitLocker o EFS.
- Monitorare i tentativi di dumping delle credenziali con strumenti come Sysmon e regole YARA.
6. Disabilitare l’autenticazione anonima
-
Bloccare LDAP anonimo con:
reg add “HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters” /v “LDAPServerIntegrity” /t REG_DWORD /d 2 /f
- Disabilitare il binding anonimo alle sessioni LDAP.
7. Protezione delle sessioni remote
- Disabilitare l’accesso RDP ai Domain Controllers tranne per gli amministratori autorizzati.
- Usare jump servers (bastion hosts) per l’amministrazione remota invece di connettersi direttamente ai DC.
8. Disabilitare certificati self-signed e protezione PKI
- Evitare certificati auto-generati su ADCS (Active Directory Certificate Services).
- Monitorare l’uso di certificati sospetti con Event ID 4886, 4887 (modifiche certificate).
9. Limitazione delle query al DC
-
Impedire che utenti normali possano eseguire comandi di riconoscimento su AD, come:
Get-ADUser -Filter *
- Abilitare audit su query LDAP sospette (Event ID 1644).
10. Protezione del Kerberos Ticket Granting Ticket (TGT)
-
Abilitare la protezione AES per i ticket Kerberos:
Set-ADAccountControl -KerberosEncryptionType AES256 -Identity Administrator
- Ridurre la durata del TGT per limitare il rischio di furto di credenziali.
11. Utilizzo del Protected Users Group
-
Aggiungere account critici al gruppo “Protected Users“ per impedire l’uso di NTLM, Kerberos non sicuro e hash compromessi.
Add-ADGroupMember -Identity “Protected Users” -Members “Administrator”
12. Limitare gli account con password reversibili
-
Verificare account con password reversibili con:
Get-ADUser -Filter {AllowReversiblePasswordEncryption -eq $true}
-
Forzare la disattivazione della memorizzazione delle password reversibili tramite GPO
Computer Configuration → Policies → Windows Settings → Security Settings → Account Policies → Password Policy → Store passwords using reversible encryption da mettere su Disabled
13. Pianificare il reset della password del KRBTGT Account
-
Da pianificare il doppio reset della password dell’account KRBTGT, il secondo a distanza di 11 ore dal primo,
per invalidare eventuali ticket forgiati a mano.
Reset-ADServiceAccountPassword -Identity krbtgt
Queste misure avanzate vanno oltre il normale hardening e possono migliorare drasticamente la sicurezza del tuo Domain Controller riducendo la superficie di attacco.
I più importanti:
- Disabilitare il privilegio SeDebugPrivilege e altri privilegi pericolosi
- Bloccare accessi remoti non autorizzati e servizi inutilizzati
- Proteggere il database NTDS.dit con BitLocker e audit avanzato
- Monitorare le attività anomale con Event Logs e SIEM
- Limitare query LDAP, modifiche ai gruppi privilegiati e uso di certificati
Infine, conoscete il Microsoft Security Compliance Toolkit? Uno strumento che permette di applicare le baseline proposte da Microsoft insieme ad una serie di strumenti per la verifica e l’applicabilità delle stesse. Una baseline è sostanzialmente composta da un gruppo di impostazioni di configurazione consigliate da Microsoft, rilasciate in modo da tenere in considerazione gli impatti sulla sicurezza e, come accade per tanti prodotti Microsoft, basate sul feedback dei team di progettazione della sicurezza Microsoft, gruppi di prodotti, partner e clienti.
Tutto ciò può bastare? Ovviamente no. Quello che fa la differenza è la perfetta conoscenza della nostra infrastruttura, la consapevolezza di ciò che viene utilizzato e ciò che può essere disabilitato in quanto inutilizzato. Cultura, consapevolezza e controllo!
Conclusioni
L’hardening dei Domain Controller è un processo continuo e fondamentale per garantire la sicurezza dell’infrastruttura IT aziendale. Implementare le best practice descritte, dalla gestione rigorosa dei privilegi alla protezione delle credenziali e al monitoraggio attivo, permette di ridurre significativamente i rischi di compromissione e attacchi mirati.
Tuttavia, la sicurezza di Active Directory non può basarsi solo su configurazioni statiche: è essenziale adottare un approccio proattivo, aggiornando costantemente le policy di sicurezza, monitorando le attività sospette e adattandosi alle nuove minacce.
Investire nella protezione del Domain Controller significa proteggere l’intero ambiente IT. Solo con una strategia di hardening solida e una gestione attenta è possibile garantire un’infrastruttura resiliente, capace di resistere alle sfide di cybersecurity sempre più avanzate.