Data/Locales/checks/it/ADPasswordPolicyChecks.json

{
  "_family": "ADPasswordPolicyChecks.json",
  "ADPWD-001": {
    "name": { "value": "Criterio password di dominio predefinito", "status": "machine-draft" },
    "description": { "value": "Il Default Domain Policy definisce le impostazioni di base per le password e il blocco account per tutti gli utenti del dominio. Questo criterio dovrebbe imporre requisiti di password robusti, poiché si applica a ogni account non coperto da un criterio password granulare più specifico", "status": "machine-draft" },
    "recommendedValue": { "value": "Lunghezza minima 14 caratteri, complessità abilitata, validità massima 365 giorni, validità minima 1 giorno, cronologia di 24 password", "status": "machine-draft" },
    "remediationSteps": { "value": "Esamina il Default Domain Policy con Get-ADDefaultDomainPasswordPolicy. Configura tramite Group Policy Management: Default Domain Policy > Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy. Imposta i valori in base ai requisiti di sicurezza dell'organizzazione", "status": "machine-draft" }
  },
  "ADPWD-002": {
    "name": { "value": "Enumerazione dei criteri password granulari", "status": "machine-draft" },
    "description": { "value": "I criteri password granulari (FGPP) consentono requisiti di password diversi per gruppi di utenti diversi. Tutti gli FGPP dovrebbero essere documentati per comprendere il quadro completo del criterio password e assicurarsi che nessun gruppo sia coperto da criteri più deboli del previsto", "status": "machine-draft" },
    "recommendedValue": { "value": "Tutti gli FGPP documentati con la loro precedenza, i gruppi di destinazione e le impostazioni del criterio. Come minimo, un FGPP rigoroso per gli account privilegiati e un FGPP standard per gli utenti normali", "status": "machine-draft" },
    "remediationSteps": { "value": "Enumera tutti gli FGPP con Get-ADFineGrainedPasswordPolicy -Filter *. Documenta per ciascun criterio il valore di precedenza, i gruppi di destinazione e le impostazioni. Verifica che gli account privilegiati siano coperti da un criterio più rigoroso rispetto agli utenti standard. Crea degli FGPP se esiste solo il Default Domain Policy", "status": "machine-draft" }
  },
  "ADPWD-003": {
    "name": { "value": "Analisi dell'applicazione degli FGPP", "status": "machine-draft" },
    "description": { "value": "I criteri password granulari devono essere applicati ai gruppi corretti per essere efficaci. Un'applicazione errata degli FGPP può lasciare gli account di grande valore sotto criteri più deboli o creare lacune in cui nessun FGPP si applica e viene usato invece il Default Domain Policy", "status": "machine-draft" },
    "recommendedValue": { "value": "Tutti gli account privilegiati coperti da un FGPP rigoroso. Nessuna lacuna di criterio in cui gli account di grande valore ricadono su un criterio predefinito più debole", "status": "machine-draft" },
    "remediationSteps": { "value": "Per ogni FGPP, esamina l'attributo msDS-PSOAppliesTo per vedere i gruppi di destinazione. Effettua un confronto incrociato con l'appartenenza ai gruppi privilegiati per verificare la copertura. Usa Get-ADUserResultantPasswordPolicy per account specifici per determinare il criterio effettivo. Correggi eventuali lacune nell'applicazione degli FGPP", "status": "machine-draft" }
  },
  "ADPWD-004": {
    "name": { "value": "Lunghezza minima della password", "status": "machine-draft" },
    "description": { "value": "Le password inferiori a 14 caratteri sono vulnerabili alla violazione offline tramite forza bruta con l'hardware GPU moderno. NIST SP 800-63B raccomanda di supportare password fino a 64 caratteri e di impostare un minimo che bilanci sicurezza e usabilità. Per gli ambienti AD, 14 caratteri è il valore minimo di base raccomandato", "status": "machine-draft" },
    "recommendedValue": { "value": "Minimo 14 caratteri per gli utenti standard, 25 caratteri per gli account privilegiati", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura la lunghezza minima della password nel Default Domain Policy o in un FGPP appropriato: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > Minimum password length = 14. Crea un FGPP più rigoroso per gli account privilegiati che richieda 25 o più caratteri", "status": "machine-draft" }
  },
  "ADPWD-005": {
    "name": { "value": "Requisito di complessità della password", "status": "machine-draft" },
    "description": { "value": "La complessità delle password di Windows richiede almeno tre delle quattro categorie di caratteri (maiuscole, minuscole, cifre, caratteri speciali) e che la password non contenga il nome dell'account dell'utente. Sebbene NIST non imponga più la complessità, disabilitarla in AD senza controlli compensativi (come elenchi di parole vietate) indebolisce notevolmente le password", "status": "machine-draft" },
    "recommendedValue": { "value": "Complessità abilitata. Idealmente integrata con Azure AD Password Protection o elenchi personalizzati di parole vietate come difesa contro i pattern comuni", "status": "machine-draft" },
    "remediationSteps": { "value": "Verifica che la complessità sia abilitata nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Password must meet complexity requirements' = Enabled. Valuta la distribuzione di Azure AD Password Protection per un'ulteriore imposizione di password vietate", "status": "machine-draft" }
  },
  "ADPWD-006": {
    "name": { "value": "Criterio di blocco account", "status": "machine-draft" },
    "description": { "value": "I criteri di blocco account proteggono dagli attacchi di forza bruta online e di password spraying bloccando gli account dopo una soglia di tentativi falliti. Senza blocco, gli aggressori possono tentare un numero illimitato di ipotesi di password contro qualsiasi account. Tuttavia, un blocco eccessivamente aggressivo crea un rischio di denial-of-service", "status": "machine-draft" },
    "recommendedValue": { "value": "Soglia di blocco account: 5-10 tentativi. Durata del blocco: 15-30 minuti. Reimpostazione del contatore dopo: 15-30 minuti", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura il blocco account nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy. Imposta la soglia su 5-10 tentativi, la durata su 15-30 minuti e la finestra di osservazione su 15-30 minuti. Monitora gli eventi di blocco che possono indicare attacchi", "status": "machine-draft" }
  },
  "ADPWD-007": {
    "name": { "value": "Imposizione della cronologia delle password", "status": "machine-draft" },
    "description": { "value": "La cronologia delle password impedisce agli utenti di riutilizzare ciclicamente le stesse password. Senza una profondità di cronologia sufficiente, gli utenti possono alternare un piccolo insieme di password, annullando il beneficio di sicurezza dei requisiti di rotazione delle password", "status": "machine-draft" },
    "recommendedValue": { "value": "Cronologia delle password che ricorda almeno le 24 password precedenti", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Enforce password history' = 24 password ricordate. Assicurati inoltre che 'Minimum password age' sia impostato su almeno 1 giorno per impedire il ciclo rapido attraverso la cronologia", "status": "machine-draft" }
  },
  "ADPWD-008": {
    "name": { "value": "Validità massima della password", "status": "machine-draft" },
    "description": { "value": "La validità massima della password impone una rotazione periodica delle password. Sebbene NIST SP 800-63B sconsigli i cambi periodici obbligatori se non si sospetta una compromissione, molti framework di conformità li richiedono ancora. Il criterio dovrebbe bilanciare i requisiti di conformità con l'usabilità, evitando periodi di rotazione eccessivamente brevi che portano a password deboli", "status": "machine-draft" },
    "recommendedValue": { "value": "Validità massima della password tra 90 e 365 giorni a seconda dei requisiti di conformità. Per gli account privilegiati, massimo 60 giorni", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Maximum password age' = 365 giorni (o secondo i requisiti di conformità). Implementa un FGPP più rigoroso per gli account privilegiati con un massimo di 60 giorni", "status": "machine-draft" }
  },
  "ADPWD-009": {
    "name": { "value": "Utenti con password senza scadenza", "status": "machine-draft" },
    "description": { "value": "Gli account con il flag 'Password Never Expires' aggirano il criterio di validità massima della password. Sebbene ciò possa essere accettabile per gli account di servizio gestiti (i gMSA gestiscono la rotazione automaticamente), gli account utente con questo flag conservano indefinitamente le password compromesse", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account utente con password senza scadenza. Solo i Group Managed Service Account possono avere esenzioni dalla rotazione automatica", "status": "machine-draft" },
    "remediationSteps": { "value": "Individua gli account con Get-ADUser -Filter {PasswordNeverExpires -eq $true -and Enabled -eq $true} -Properties PasswordNeverExpires. Esamina ogni account alla ricerca di una giustificazione aziendale. Rimuovi il flag sugli account utente e migra gli account di servizio a gMSA dove possibile. Documenta eventuali eccezioni approvate con controlli compensativi", "status": "machine-draft" }
  },
  "ADPWD-010": {
    "name": { "value": "Utenti con password vuote", "status": "machine-draft" },
    "description": { "value": "Gli account con il flag PASSWD_NOTREQD possono avere password vuote, aggirando completamente tutti i criteri password. Questo flag viene talvolta impostato inavvertitamente dagli script di creazione degli account. Qualsiasi account con password vuota può essere accessibile da chiunque conosca il nome utente", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account abilitato con password vuote o con il flag PASSWD_NOTREQD", "status": "machine-draft" },
    "remediationSteps": { "value": "Individua gli account con Get-ADUser -Filter {PasswordNotRequired -eq $true -and Enabled -eq $true}. Rimuovi immediatamente il flag PASSWD_NOTREQD e imposta una password robusta su tutti gli account individuati. Esamina gli script e i processi di creazione degli account per impedire che questo flag venga impostato in futuro", "status": "machine-draft" }
  },
  "ADPWD-011": {
    "name": { "value": "Hash di password duplicati", "status": "machine-draft" },
    "description": { "value": "La condivisione dello stesso hash di password da parte di più account indica riutilizzo delle password, password di uso comune o account con password predefinite. Il riutilizzo delle password amplifica l'impatto di qualsiasi singola compromissione di credenziali, consentendo il movimento laterale su più account", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun cluster di account che condividono hash di password identici. Ogni account dovrebbe avere una password univoca", "status": "machine-draft" },
    "remediationSteps": { "value": "Estrai e confronta gli hash NT con strumenti in grado di eseguire DCSync (DSInternals) con l'autorizzazione appropriata. Individua i cluster di account che condividono hash. Forza il cambio password su tutti gli account nei cluster di duplicati. Implementa filtri password per impedire le password comuni e valuta la distribuzione di Azure AD Password Protection", "status": "machine-draft" }
  },
  "ADPWD-012": {
    "name": { "value": "Password presenti nel database HaveIBeenPwned", "status": "machine-draft" },
    "description": { "value": "Le password che compaiono nei database di violazioni note vengono usate attivamente negli attacchi di credential stuffing. Il confronto degli hash di password AD con il database HaveIBeenPwned individua gli account che usano password compromesse e che con ogni probabilità saranno presi di mira", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account attivo che usa password presenti nel database HaveIBeenPwned", "status": "machine-draft" },
    "remediationSteps": { "value": "Confronta gli hash NT con il database delle password HaveIBeenPwned (elenco di hash scaricabile) usando strumenti come DSInternals Test-PasswordQuality. Forza il cambio immediato della password su tutti gli account con hash corrispondenti. Distribuisci Azure AD Password Protection o filtri password personalizzati per bloccare in futuro le password violate note", "status": "machine-draft" }
  },
  "ADPWD-013": {
    "name": { "value": "Controllo password con dizionario personalizzato", "status": "machine-draft" },
    "description": { "value": "Le password basate su termini specifici dell'organizzazione (nome dell'azienda, nomi di prodotti, stagioni, nomi di località) sono di uso comune e facilmente indovinabili dagli aggressori mirati. I controlli con dizionario personalizzato individuano le password che soddisfano i requisiti di complessità ma restano prevedibili", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account che usa password contenenti termini specifici dell'organizzazione, pattern comuni (Stagione+Anno) o sequenze di tasti", "status": "machine-draft" },
    "remediationSteps": { "value": "Costruisci un dizionario personalizzato che includa nomi aziendali, nomi di prodotti, nomi di località, stagioni e pattern comuni. Verifica gli hash delle password contro questo dizionario usando DSInternals o strumenti simili. Forza il cambio password sugli account corrispondenti. Distribuisci filtri password personalizzati o l'elenco personalizzato di password vietate di Azure AD Password Protection", "status": "machine-draft" }
  },
  "ADPWD-014": {
    "name": { "value": "Password predefinite/comuni", "status": "machine-draft" },
    "description": { "value": "Gli account che usano password predefinite, comuni o banalmente indovinabili (come Password1, Welcome1 o il nome dell'account) sono i primi bersagli negli attacchi di password spraying. Queste password sono incluse in ogni wordlist degli aggressori e sono spesso le prime a essere provate", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account che usa password tra le prime 1000 password più comuni o che corrisponde a pattern di password predefinite", "status": "machine-draft" },
    "remediationSteps": { "value": "Verifica gli hash delle password contro elenchi di password comuni (come SecLists) usando DSInternals Test-PasswordQuality. Forza il cambio immediato della password su tutti gli account con password comuni. Implementa Azure AD Password Protection, che include un elenco globale di password vietate aggiornato da Microsoft", "status": "machine-draft" }
  },
  "ADPWD-015": {
    "name": { "value": "Distribuzione dell'età dell'ultima impostazione della password", "status": "machine-draft" },
    "description": { "value": "L'analisi della distribuzione dell'età delle password su tutti gli account rivela l'efficacia dell'imposizione del criterio e individua gli account con password estremamente vecchie. Gli account con password non modificate da anni potrebbero essere stati saltati dalle modifiche di criterio o avere il flag 'Password Never Expires' impostato", "status": "machine-draft" },
    "recommendedValue": { "value": "Nessun account utente abilitato con password più vecchie del criterio di validità massima della password. La distribuzione dovrebbe mostrare pattern di rotazione regolari", "status": "machine-draft" },
    "remediationSteps": { "value": "Genera un report sulla distribuzione dell'età delle password con Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet | Group-Object {(New-TimeSpan $_.PasswordLastSet (Get-Date)).Days -replace '\\d$','0'}. Indaga sugli account con password più vecchie di quanto consentito dal criterio. Forza il cambio password dove necessario ed esamina i flag 'Password Never Expires'", "status": "machine-draft" }
  },
  "ADPWD-016": {
    "name": { "value": "Stato di distribuzione di LAPS", "status": "machine-draft" },
    "description": { "value": "Local Administrator Password Solution (LAPS) fornisce password di amministratore locale univoche e generate casualmente per ciascun computer, archiviate in modo sicuro in AD. Senza LAPS, le password di amministratore locale sono in genere identiche su tutte le macchine, consentendo un movimento laterale banale dopo la cattura di un singolo hash", "status": "machine-draft" },
    "recommendedValue": { "value": "LAPS distribuito sul 100% dei computer Windows aggiunti al dominio. Nessun computer con password LAPS mancanti o scadute", "status": "machine-draft" },
    "remediationSteps": { "value": "Distribuisci il client LAPS (CSE) a tutti i computer aggiunti al dominio tramite GPO, SCCM o Intune. Configura le impostazioni GPO di LAPS per complessità, lunghezza (almeno 20 caratteri) e validità (30 giorni) della password. Verifica la distribuzione controllando l'attributo ms-Mcs-AdmPwd o msLAPS-Password sugli oggetti computer. Indaga su eventuali computer privi di password LAPS", "status": "machine-draft" }
  },
  "ADPWD-017": {
    "name": { "value": "Scadenza delle password LAPS", "status": "machine-draft" },
    "description": { "value": "Le password LAPS dovrebbero essere ruotate regolarmente per limitare la finestra di esposizione in caso di compromissione di una password di amministratore locale. Password LAPS scadute o non aggiornate indicano che il client LAPS non funziona correttamente su quelle macchine", "status": "machine-draft" },
    "recommendedValue": { "value": "Scadenza delle password LAPS impostata a 30 giorni. Nessun computer con password LAPS scadute", "status": "machine-draft" },
    "remediationSteps": { "value": "Esamina le date di scadenza delle password LAPS sugli oggetti computer con Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwdExpirationTime. Individua i computer con password scadute e indaga sulla funzionalità del CSE LAPS su quelle macchine. Configura la GPO per impostare la validità della password su un massimo di 30 giorni", "status": "machine-draft" }
  },
  "ADPWD-018": {
    "name": { "value": "Windows LAPS rispetto a LAPS legacy", "status": "machine-draft" },
    "description": { "value": "Windows LAPS (integrato in Windows Server 2019+ e Windows 10/11 con l'aggiornamento di aprile 2023) offre miglioramenti rispetto al LAPS legacy, tra cui la cifratura delle password, la cronologia delle password e la gestione della password DSRM. Le organizzazioni dovrebbero migrare dal LAPS legacy a Windows LAPS per usufruire delle funzionalità di sicurezza avanzate", "status": "machine-draft" },
    "recommendedValue": { "value": "Windows LAPS distribuito con la cifratura delle password abilitata. Migrazione dal LAPS legacy completata", "status": "machine-draft" },
    "remediationSteps": { "value": "Verifica quale versione di LAPS è distribuita controllando l'attributo msLAPS-Password (Windows LAPS) rispetto a ms-Mcs-AdmPwd (LAPS legacy). Pianifica la migrazione a Windows LAPS. Aggiorna lo schema AD per gli attributi di Windows LAPS. Distribuisci le impostazioni GPO di Windows LAPS con la cifratura abilitata. Dismetti i componenti del LAPS legacy dopo la migrazione", "status": "machine-draft" }
  },
  "ADPWD-019": {
    "name": { "value": "Azure AD Password Protection", "status": "machine-draft" },
    "description": { "value": "Azure AD Password Protection estende l'imposizione delle password vietate all'AD locale distribuendo i componenti proxy e agente DC. Blocca le password che corrispondono a un elenco globale di password vietate curato da Microsoft e a un elenco personalizzato facoltativo, impedendo agli utenti di scegliere password note per essere deboli", "status": "machine-draft" },
    "recommendedValue": { "value": "Azure AD Password Protection distribuito in modalità imposta con un elenco personalizzato di password vietate configurato", "status": "machine-draft" },
    "remediationSteps": { "value": "Distribuisci il servizio proxy di Azure AD Password Protection e l'agente DC su tutti i controller di dominio. Configura un elenco personalizzato di password vietate in Azure AD includendo i termini specifici dell'organizzazione. Imposta la modalità su Enforced (non Audit). Monitora i rifiuti dei cambi password tramite i registri eventi e i report di Azure AD", "status": "machine-draft" }
  },
  "ADPWD-020": {
    "name": { "value": "Chiavi di ripristino BitLocker in AD", "status": "machine-draft" },
    "description": { "value": "Le chiavi di ripristino BitLocker archiviate in Active Directory dovrebbero essere inventariate per garantire che la cifratura del disco sia distribuita correttamente e che le chiavi di ripristino siano disponibili. La presenza delle chiavi di ripristino indica inoltre quali macchine hanno BitLocker abilitato, offrendo visibilità sulla copertura della cifratura", "status": "machine-draft" },
    "recommendedValue": { "value": "Chiavi di ripristino BitLocker presenti in AD per tutte le workstation e i portatili. Accesso alle chiavi di ripristino limitato agli amministratori autorizzati", "status": "machine-draft" },
    "remediationSteps": { "value": "Interroga l'AD alla ricerca degli oggetti di informazioni di ripristino BitLocker con Get-ADObject -Filter {objectClass -eq 'msFVE-RecoveryInformation'} -SearchBase 'DC=domain,DC=com'. Effettua un confronto incrociato con l'inventario dei computer per individuare le macchine prive di BitLocker. Esamina le ACL sugli oggetti delle chiavi di ripristino per assicurarti che solo gli amministratori autorizzati possano leggerle", "status": "machine-draft" }
  },
  "ADPWD-021": {
    "name": { "value": "Soglia di blocco account", "status": "machine-draft" },
    "description": { "value": "La soglia di blocco account definisce il numero di tentativi di accesso falliti prima che un account venga bloccato. Una soglia troppo alta (o pari a zero, ovvero nessun blocco) consente un ampio password spraying, mentre una soglia troppo bassa facilita il denial of service", "status": "machine-draft" },
    "recommendedValue": { "value": "Soglia di blocco compresa tra 5 e 10 tentativi falliti", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy > 'Account lockout threshold' = 5-10 tentativi. Un valore pari a 0 disabilita completamente il blocco e dovrebbe essere evitato. Bilancia sicurezza e usabilità in base alle esigenze dell'organizzazione", "status": "machine-draft" }
  },
  "ADPWD-022": {
    "name": { "value": "Finestra di osservazione del blocco", "status": "machine-draft" },
    "description": { "value": "La finestra di osservazione del blocco definisce il periodo di tempo durante il quale i tentativi di accesso falliti vengono conteggiati ai fini della soglia di blocco. Se la finestra di osservazione è troppo breve, gli aggressori possono distribuire i tentativi di password spraying nel tempo per evitare di attivare il blocco", "status": "machine-draft" },
    "recommendedValue": { "value": "Finestra di osservazione di 15-30 minuti, pari o superiore alla durata del blocco", "status": "machine-draft" },
    "remediationSteps": { "value": "Configura nel Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy > 'Reset account lockout counter after' = 15-30 minuti. Assicurati che questo valore sia pari o superiore alla durata del blocco per impedire agli aggressori di attendere l'azzeramento del contatore tra i tentativi di spraying", "status": "machine-draft" }
  }
}