Come vietare le password standard e farti odiare da tutti

Come sappiamo, l'essere umano è per natura pigro.
E tanto più quando si tratta di scegliere una password sicura.

Credo che ogni amministratore abbia affrontato il problema di utilizzare password deboli e standard. Questo fenomeno è comune tra i vertici dell'azienda. Sì, proprio tra quelli che hanno accesso a informazioni riservate o commerciali, laddove sarebbe estremamente indesiderabile dover fronteggiare le conseguenze di una fuga o di un attacco alla password e gli incidenti successivi.

Nella mia esperienza, c'è stato un caso in cui nel dominio Active Directory, anche con una politica delle password attiva, i contabili sono arrivati a pensare che una password del tipo ‘Pas$w0rd1234’ fosse perfettamente conforme ai requisiti della politica. Il risultato è stato un uso sconsiderato di questa password ovunque. A volte differiva solo per la sequenza di numeri.

Ho davvero desiderato avere la possibilità non solo di attivare la politica delle password e definire un set di caratteri, ma anche di filtrare tramite un dizionario. Per escludere la possibilità di utilizzare password di questo tipo.

Microsoft ci informa gentilmente tramite il link che chiunque sia in grado di maneggiare correttamente un compilatore, un IDE e pronunciare C++ può compilare e utilizzare una libreria necessaria secondo le proprie necessità. Il vostro umile servitore non è in grado di fare tutto questo, ecco perché ho dovuto cercare una soluzione pronta.

Dopo un lungo ora di ricerca, si sono presentate agli occhi due opzioni per risolvere il problema. Naturalmente, parlo di una soluzione OpenSource. Infatti, ci sono opzioni a pagamento — da una parte all'altra.

Opzione n. 1. OpenPasswordFilter

Non ci sono stati commit da circa 2 anni. L'installer nativo funziona a singhiozzo, è necessario modificarlo manualmente. Crea il proprio servizio separato. Quando si aggiorna il file delle password, la DLL non rileva automaticamente il contenuto modificato, è necessario fermare il servizio, aspettare il timeout, modificare il file e riavviare il servizio.

Non è fantastico!

Opzione n. 2. PassFiltEx

Il progetto è attivo, vivo e non è nemmeno necessario sollecitare il corpo freddo.
L'installazione del filtro consiste nella copia di due file e nella creazione di alcune voci nel registro. Il file delle password non è in locale, cioè è accessibile per la modifica e, secondo l'idea dell'autore del progetto, viene semplicemente letto una volta al minuto. Inoltre, mediante ulteriori voci nel registro è possibile effettuare configurazioni aggiuntive sia del filtro stesso che delle sfumature della politica delle password.

Quindi.
Domanda: dominio Active Directory test.local
stazione di lavoro Windows 8.1 (per il problema in questione - non rilevante)
filtro password PassFiltEx

  • Scarichiamo l'ultima versione dal link PassFiltEx
  • Copiare PassFiltEx.dll in C:\Windows\System32 (o %SystemRoot%System32).
    Copiare PassFiltExBlacklist.txt in C:\Windows\System32 (o %SystemRoot%System32). Se necessario, aggiungiamo i nostri modelli
    Come vietare le password standard e farti odiare da tutti
  • Modifichiamo la chiave del registro: HKLMSYSTEMCurrentControlSetControlLsa => Notification Packages
    Aggiungiamo PassFiltEx alla fine dell'elenco. (Non è necessario specificare l'estensione.) L'elenco completo dei pacchetti utilizzati per la convalida apparirà così: «rassfm scecli PassFiltEx«.
    Come vietare le password standard e farti odiare da tutti
  • Riavviamo il controller di dominio.
  • Ripetiamo la procedura sopra indicata per tutti i controller di dominio.

È possibile inoltre aggiungere le seguenti voci di registro, che offrono maggiore flessibilità nell'uso di questo filtro:

Sezione: HKLMSOFTWAREPassFiltEx — creato automaticamente.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Predefinito: PassFiltExBlacklist.txt

    BlacklistFileName — consente di specificare un percorso personalizzato per il file contenente i template delle password. Se questo valore di registro è vuoto o non esiste, verrà utilizzato il percorso predefinito, ovvero — %SystemRoot%System32. È possibile specificare anche un percorso di rete, MA è importante ricordare che il file dei template deve avere diritti chiari di lettura, scrittura, cancellazione e modifica.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, Predefinito: 60

    TokenPercentageOfPassword — consente di specificare la percentuale di occorrenza del template nella nuova password. Per impostazione predefinita, il valore è del 60%. Ad esempio, se è indicata una percentuale di occorrenza del 60 e nel file dei template è presente la stringa starwars, allora la password Starwars1! verrà rifiutata, mentre la password starwars1!DarthVader88 verrà accettata, poiché la percentuale di occorrenza della stringa nella password è inferiore al 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, Predefinito: 0

    RequireCharClasses — consente di espandere i requisiti per le password rispetto ai requisiti standard di complessità delle password di Active Directory. I requisiti di complessità incorporati richiedono 3 dei 5 possibili diversi tipi di caratteri: Maiuscolo, Minuscolo, Numero, Carattere speciale e Unicode. Con questa chiave di registro è possibile impostare i propri requisiti di complessità delle password. Il valore che può essere specificato è un insieme di bit, ognuno dei quali rappresenta una potenza di due.
    Cioè — 1 = minuscolo, 2 = maiuscolo, 4 = numero, 8 = carattere speciale e 16 = carattere Unicode.
    Quindi, con un valore di 7, i requisiti saranno “Maiuscolo AND minuscolo AND numero ”, mentre con un valore di 31 sarà “Maiuscolo AND minuscolo AND numero AND carattere speciale AND carattere Unicode”.
    È anche possibile combinare — 19 = “Maiuscolo AND minuscolo AND carattere Unicode”.

  • Come vietare le password standard e farti odiare da tutti

Una serie di regole per la creazione di file di modelli:

  • I modelli non fanno distinzione di maiuscole e minuscole. Pertanto, la voce nel file starwars e StarWarS sarà considerata come lo stesso valore.
  • Il file di blacklist viene riletto ogni 60 secondi, per cui è possibile modificarlo tranquillamente; dopo un minuto, i nuovi dati saranno già utilizzati dal filtro.
  • Attualmente non è supportato Unicode per la verifica basata su modelli. Ciò significa che è possibile utilizzare simboli Unicode nelle password, ma il filtro non funzionerà. Questo non è critico, perché non ho mai visto utenti utilizzare password in Unicode.
  • È consigliabile evitare righe vuote nel file dei modelli. In fase di debug, si vede poi l'errore quando si tenta di caricare i dati dal file. Il filtro funziona, ma perché avere eccezioni inutili?

Per il debug, nell'archivio ci sono file batch che consentono di creare un log e poi analizzarlo tramite, ad esempio, Microsoft Message Analyzer.
Questo filtro per le password utilizza l'Event Tracing for Windows.

Il fornitore ETW per questo filtro per le password è 07d83223-7594-4852-babc-784803fdf6c5. Ad esempio, è possibile configurare la tracciatura degli eventi dopo il prossimo riavvio:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

La tracciatura verrà avviata dopo il prossimo riavvio del sistema. Per fermare:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Tutti questi comandi sono elencati negli script StartTracingAtBoot.cmd e StopTracingAtBoot.cmd.

Per un controllo singolo del funzionamento del filtro, è possibile utilizzare StartTracing.cmd e StopTracing.cmd.
Per facilitare la lettura dell'output di debug di questo filtro in Microsoft Message Analyzer si consiglia di utilizzare le seguenti impostazioni:

Come vietare le password standard e farti odiare da tutti

Come vietare le password standard e farti odiare da tutti

Quando si ferma il log e si analizza in Microsoft Message Analyzer si presenta grosso modo in questo modo:

Come vietare le password standard e farti odiare da tutti

È evidente che c'è stata un tentativo di impostare una password per l'utente — questo ci viene segnalato dalla parola magica SET nel debug. E la password è stata rifiutata a causa della sua presenza nel file dei modelli e per una corrispondenza superiore al 30% nel testo immesso.

Dopo un tentativo riuscito di cambio password vediamo quanto segue:

Come vietare le password standard e farti odiare da tutti

C'è un certo disagio per l'utente finale. Quando si tenta di cambiare una password che rientra nella lista del file dei modelli, il messaggio sullo schermo non dimostra intelligenza e perspicacia rispetto al messaggio standard di mancata conformità alla policy delle password.

Come vietare le password standard e farti odiare da tutti

Pertanto, siate pronti a ricevere telefonate e lamenti: «Ho inserito la password correttamente, ma non funziona.»

Conclusione.

Questa libreria consente di vietare l'uso di password semplici o standard nel dominio Active Directory. Diciamo «No!» a password come: «P@ssw0rd», «Qwerty123», «ADm1n098».
Certamente, gli utenti vi apprezzeranno ancora di più per la vostra cura della loro sicurezza e per la necessità di creare password complesse. E, probabilmente, aumenteranno anche le chiamate e le richieste di aiuto con le password. Ma la sicurezza ha un costo.

Collegamenti alle risorse utilizzate:
Articolo di Microsoft riguardo la libreria personalizzata per i filtri delle password: Password Filters
PassFiltEx: PassFiltEx
Collegamento al rilascio: Latest Release
Liste di password:
DanielMiessler elenca: Link.
Wordlist da weakpass.com: Link.
Wordlist dal repository berzerk0: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster