Come vietare le password standard e farti odiare da tutti

L'uomo, come sai, è una creatura pigra.
E lo è ancora di più quando si tratta di scegliere una password complessa.

Penso che ogni amministratore abbia mai affrontato il problema dell'utilizzo di password leggere e standard. Questo fenomeno si verifica spesso tra le alte sfere del management aziendale. Sì, sì, proprio tra coloro che hanno accesso a informazioni segrete o commerciali e sarebbe estremamente indesiderabile eliminare le conseguenze della fuga di password/hacking e di ulteriori incidenti.

Nella mia pratica, si è verificato un caso in cui, in un dominio Active Directory con una policy password abilitata, i contabili sono giunti autonomamente all'idea che una password come "Pas$w0rd1234" si adatta perfettamente ai requisiti della policy. La conseguenza è stata l’uso diffuso di questa password ovunque. A volte differiva solo per la serie di numeri.

Volevo davvero essere in grado non solo di abilitare una politica di password e definire un set di caratteri, ma anche di filtrare per dizionario. Per escludere la possibilità di utilizzare tali password.

Microsoft ci informa gentilmente tramite il link che chiunque sappia tenere correttamente in mano un compilatore, un IDE e sappia pronunciare correttamente il C++, è in grado di compilare la libreria di cui ha bisogno e di utilizzarla secondo la propria comprensione. Il tuo umile servitore non è capace di questo, quindi ho dovuto cercare una soluzione già pronta.

Dopo una lunga ora di ricerca, sono state rivelate due opzioni per risolvere il problema. Sto ovviamente parlando della soluzione OpenSource. Dopotutto, ci sono opzioni a pagamento, dall'inizio alla fine.

Opzione numero 1. ApriFiltroPassword

Sono ormai circa 2 anni che non ci sono commit.L'installer nativo funziona ogni tanto, bisogna correggerlo manualmente. Crea il proprio servizio separato. Quando si aggiorna un file di password, la DLL non rileva automaticamente il contenuto modificato; è necessario interrompere il servizio, attendere un timeout, modificare il file e avviare il servizio.

Niente ghiaccio!

Opzione numero 2. PassFiltEx

Il progetto è attivo, vivo e non c'è nemmeno bisogno di prendere a calci il corpo freddo.
L'installazione del filtro comporta la copia di due file e la creazione di diverse voci di registro. Il file della password non è bloccato, ovvero è disponibile per la modifica e, secondo l'idea dell'autore del progetto, viene letto semplicemente una volta al minuto. Inoltre, utilizzando voci di registro aggiuntive, è possibile configurare ulteriormente sia il filtro stesso che anche le sfumature della politica sulla password.

Così.
Dato: dominio Active Directory test.local
Workstation di test Windows 8.1 (non importante ai fini del problema)
filtro password PassFiltEx

  • Scarica l'ultima versione dal link PassFiltEx
  • copia PassFiltEx.dll в C: WindowsSystem32 (o % SystemRoot% System32).
    copia PassFiltExBlacklist.txt в C: WindowsSystem32 (o % SystemRoot% System32). Se necessario, lo integriamo con i nostri modelli
    Come vietare le password standard e farti odiare da tutti
  • Modifica del ramo del registro: HKLMSYSTEMCurrentControlSetControlLsa => Pacchetti di notifica
    Aggiunta PassFiltEx fino alla fine dell'elenco. (Non è necessario specificare l'estensione.) L'elenco completo dei pacchetti utilizzati per la scansione sarà simile a questo “rassfm scecli PassFiltEx«.
    Come vietare le password standard e farti odiare da tutti
  • Riavviare il controller di dominio.
  • Ripetiamo la procedura sopra descritta per tutti i controller di dominio.

Puoi anche aggiungere le seguenti voci di registro, che ti offrono maggiore flessibilità nell'utilizzo di questo filtro:

Sezione: HKLMSOFTWAREPassFiltEx — viene creato automaticamente.

  • HKLMSOFTWAREPassFiltExNomeFileBlacklist, REG_SZ, predefinito: PassFiltExBlacklist.txt

    NomeFileLista Nera — consente di specificare un percorso personalizzato a un file con modelli di password. Se questa voce di registro è vuota o non esiste, viene utilizzato il percorso predefinito, ovvero: % SystemRoot% System32. Puoi anche specificare un percorso di rete, MA devi ricordare che il file modello deve avere autorizzazioni chiare per leggere, scrivere, eliminare, modificare.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, predefinito: 60

    Percentuale token della password — consente di specificare la percentuale della maschera nella nuova password. Il valore predefinito è 60%. Ad esempio, se l'occorrenza percentuale è 60 e la stringa starwars è nel file modello, la password Guerre Stellari1! verrà rifiutato mentre la password starwars1!DarthVader88 verrà accettato perché la percentuale della stringa nella password è inferiore al 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, predefinito: 0

    RichiedeCharClasses — consente di espandere i requisiti della password rispetto ai requisiti di complessità della password standard di ActiveDirectory. I requisiti di complessità integrati richiedono 3 dei 5 possibili diversi tipi di caratteri: maiuscolo, minuscolo, cifra, speciale e Unicode. Utilizzando questa voce di registro, puoi impostare i requisiti di complessità della password. Il valore che può essere specificato è un insieme di bit, ciascuno dei quali è una corrispondente potenza di due.
    Cioè, 1 = minuscolo, 2 = maiuscolo, 4 = cifra, 8 = carattere speciale e 16 = carattere Unicode.
    Quindi con un valore pari a 7 i requisiti sarebbero “Maiuscolo” E minuscolo E cifra”, e con un valore di 31 - “Maiuscolo E minuscolo E figura E simbolo speciale E Carattere Unicode."
    Puoi anche combinare - 19 = “Maiuscolo E minuscolo E Carattere Unicode."

  • Come vietare le password standard e farti odiare da tutti

Una serie di regole durante la creazione di un file modello:

  • I modelli non fanno distinzione tra maiuscole e minuscole. Pertanto, la voce del file star wars и Guerre stellari risulterà essere lo stesso valore.
  • Il file della blacklist viene riletto ogni 60 secondi, quindi puoi modificarlo facilmente; dopo un minuto, i nuovi dati verranno utilizzati dal filtro.
  • Attualmente non è disponibile il supporto Unicode per la corrispondenza dei modelli. Cioè, puoi utilizzare i caratteri Unicode nelle password, ma il filtro non funzionerà. Questo non è fondamentale, perché non ho visto utenti che utilizzano password Unicode.
  • È consigliabile non consentire righe vuote nel file modello. Nel debug puoi quindi vedere un errore durante il caricamento dei dati da un file. Il filtro funziona, ma perché queste eccezioni extra?

Per il debug, l'archivio contiene file batch che consentono di creare un registro e quindi analizzarlo utilizzando, ad esempio, Analizzatore di messaggi Microsoft.
Questo filtro password utilizza la traccia eventi per Windows.

Il provider ETW per questo filtro password è 07d83223-7594-4852-babc-784803fdf6c5. Quindi, ad esempio, puoi configurare la traccia degli eventi dopo il seguente riavvio:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

La traccia verrà avviata dopo il successivo riavvio del sistema. Fermare:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Tutti questi comandi sono specificati negli script StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

Per un controllo una tantum del funzionamento del filtro, è possibile utilizzare StartTracing.cmd и StopTracing.cmd.
Per poter leggere comodamente lo scarico 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 interrompe l'accesso e l'analisi Microsoft Message Analyzer tutto assomiglia a questo:

Come vietare le password standard e farti odiare da tutti

Qui puoi vedere che c'è stato un tentativo di impostare una password per l'utente: questo ce lo dice la parola magica SET nel debug. E la password è stata rifiutata perché era presente nel file modello e corrispondeva per oltre il 30% al testo inserito.

Se viene effettuato un tentativo di modifica della password riuscito, viene visualizzato quanto segue:

Come vietare le password standard e farti odiare da tutti

C'è qualche inconveniente per l'utente finale. Quando si tenta di modificare una password inclusa nell'elenco dei file dei modelli, il messaggio sullo schermo non è diverso dal messaggio standard quando la politica della password non viene approvata.

Come vietare le password standard e farti odiare da tutti

Preparatevi quindi a chiamate e grida: "Ho inserito correttamente la password, ma non funziona".

Riepilogo.

Questa libreria consente di vietare l'uso di password semplici o standard in un dominio Active Directory. Diciamo "No!" password come: “P@ssw0rd”, “Qwerty123”, “ADm1n098”.
Sì, certo, gli utenti ti apprezzeranno ancora di più per esserti preso tanta cura della loro sicurezza e della necessità di inventare password strabilianti. E, forse, aumenterà il numero di chiamate e richieste di aiuto con la tua password. Ma la sicurezza ha un prezzo.

Collegamenti alle risorse utilizzate:
Articolo Microsoft relativo a una libreria di filtri password personalizzata: Filtri password
PassFiltEx: PassFiltEx
Link di rilascio: Ultima uscita
Elenchi di password:
DanielMiessler elenca: Link.
Elenco di parole da debolepass.com: Link.
Elenco di parole dal repository berzerk0: Link.
Analizzatore di messaggi Microsoft: Analizzatore di messaggi Microsoft.

Fonte: habr.com

Aggiungi un commento