Der Mensch ist, wie Sie wissen, eine faule Kreatur. Und noch mehr, wenn es um die Auswahl eines sicheren Passworts geht.
Ich denke, dass jeder der Administratoren jemals auf das Problem gestoßen ist, leichte und Standardkennwörter zu verwenden. Dieses Phänomen ist häufig in der oberen Führungsebene des Unternehmens anzutreffen. Ja, ja, es gehört zu denen, die Zugang zu Verschlusssachen oder kommerziellen Informationen haben, und es wäre äußerst unerwünscht, die Folgen von Passwortlecks / -hacking und weiteren Vorfällen zu beseitigen.
In meiner Praxis gab es einen Fall, in dem in einer Active Directory-Domäne mit aktivierter Kennwortrichtlinie die Buchhalter unabhängig voneinander auf die Idee kamen, dass ein Kennwort der Form „Pas $ w0rd1234“ perfekt für die Anforderungen der Richtlinie geeignet ist. Die Folge war die weit verbreitete Verwendung dieses Passworts überall. Er unterschied sich manchmal nur in einer Reihe von Zahlen.
Ich wollte wirklich nicht nur eine Kennwortrichtlinie einfügen und einen Zeichensatz definieren, sondern auch nach Wörterbuch filtern können. Um die Möglichkeit der Verwendung dieser Art von Passwort auszuschließen.
Microsoft informiert uns freundlicherweise über den Link, dass jeder, der weiß, wie man den Compiler korrekt hält, IDE und wie man C ++ ausspricht, in der Lage ist, die benötigte Bibliothek nach eigenem Ermessen zu kompilieren und zu verwenden. Ihr bescheidener Diener ist dazu nicht in der Lage, deshalb musste ich nach einer vorgefertigten Lösung suchen.
Nach einer
langen Stunde der Suche wurden dem Auge zwei Möglichkeiten zur Lösung des Problems offenbart. Natürlich spreche ich über die OpenSource-Lösung. Immerhin bezahlte Optionen - von und nach.
Option Nummer 1. OpenPasswordFilterBereits im 2. Jahr gibt es keine Commits. Das native Installationsprogramm funktioniert jedes Mal, Sie müssen es von Hand reparieren. Erstellt einen eigenen separaten Dienst. Beim Aktualisieren der Kennwortdatei nimmt die DLL den geänderten Inhalt nicht automatisch auf. Sie müssen den Dienst beenden, auf eine Zeitüberschreitung warten, die Datei bearbeiten und den Dienst starten.
Nicht vereisen!Option Nummer 2. PassFiltExDas Projekt ist aktiv, lebendig und muss nicht einmal einen kalten Körper treten.
Zum Installieren eines Filters müssen zwei Dateien kopiert und mehrere Registrierungseinträge erstellt werden. Die Passwortdatei ist nicht gesperrt, dh sie kann bearbeitet werden und wird nach der Idee des Autors des Projekts einfach einmal pro Minute ausgelesen. Mithilfe zusätzlicher Registrierungseinträge können Sie außerdem sowohl den Filter selbst als auch die Nuancen der Kennwortrichtlinie konfigurieren.
Also.
Gegeben: Active Directory-Domäne test.local
Windows 8.1-Testarbeitsstation (für Aufgabenbedingungen unbedeutend)
PassFiltEx-Passwortfilter
- Laden Sie die neueste PassFiltEx- Version über den Link herunter
- Kopieren Sie PassFiltEx.dll nach C: \ Windows \ System32 (oder % SystemRoot% \ System32 ).
Kopieren Sie PassFiltExBlacklist.txt nach C: \ Windows \ System32 (oder % SystemRoot% \ System32 ). Ergänzen Sie es gegebenenfalls mit unseren Vorlagen.

- Bearbeiten des Registrierungszweigs: HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa => Benachrichtigungspakete
Fügen Sie PassFiltEx am Ende der Liste hinzu. (Es ist keine Erweiterung erforderlich.) Die vollständige Liste der zur Überprüfung verwendeten Pakete sieht wie folgt aus: " rassfm scecli PassFiltEx ".

- Wir starten den Domänencontroller neu.
- Wir wiederholen das obige Verfahren für alle Domänencontroller.
Sie können auch die folgenden Registrierungseinträge hinzufügen, um diesen Filter flexibler zu verwenden:
Abschnitt:
HKLM \ SOFTWARE \ PassFiltEx - wird automatisch erstellt.
- HKLM \ SOFTWARE \ PassFiltEx \ BlacklistFileName , REG_SZ, Standard: PassFiltExBlacklist.txt
BlacklistFileName - Mit dieser Option können Sie einen benutzerdefinierten Pfad zur Datei mit Kennwortvorlagen angeben. Wenn dieser Registrierungseintrag leer ist oder nicht vorhanden ist, wird der Standardpfad % SystemRoot% \ System32 verwendet . Sie können sogar den Netzwerkpfad angeben, ABER Sie müssen bedenken, dass die Vorlagendatei eindeutige Berechtigungen zum Lesen, Schreiben, Löschen und Ändern haben muss.
- HKLM \ SOFTWARE \ PassFiltEx \ TokenPercentageOfPassword , REG_DWORD, Standard: 60
TokenPercentageOfPassword - Mit dieser Option können Sie das prozentuale Auftreten der Maske im neuen Kennwort angeben. Der Standardwert ist 60%. Wenn beispielsweise ein prozentuales Vorkommen von 60 angegeben ist und sich die Starwars- Zeile in der Vorlagendatei befindet, lautet das Kennwort Starwars1! wird abgelehnt, während das Passwort starwars1! DarthVader88 akzeptiert wird, da der Prozentsatz des Auftretens der Zeichenfolge im Passwort weniger als 60% beträgt
- HKLM \ SOFTWARE \ PassFiltEx \ RequireCharClasses , REG_DWORD, Standard: 0
RequireCharClasses - Verbessert die Kennwortanforderungen im Vergleich zu den Standardanforderungen für die Komplexität von ActiveDirectory- Kennwörtern. Integrierte Komplexitätsanforderungen erfordern 3 von 5 möglichen verschiedenen Arten von Zeichen: Großbuchstaben, Kleinbuchstaben, Ziffern, Sonderzeichen und Unicode. Mit diesem Registrierungseintrag können Sie die Anforderungen an die Kennwortkomplexität festlegen. Der Wert, der angegeben werden kann, ist eine Menge von Bits, von denen jedes eine entsprechende Zweierpotenz ist.
Das heißt - 1 = Kleinbuchstaben, 2 = Großbuchstaben, 4 = Ziffern, 8 = Sonderzeichen und 16 = Unicode-Zeichen.
Bei einem Wert von 7 lauten die Anforderungen daher "Großbuchstaben UND Kleinbuchstaben UND Ziffern" und bei einem Wert von 31 "Großbuchstaben UND Kleinbuchstaben UND Ziffern UND Sonderzeichen UND Sonderzeichen Unicode".
Sie können sogar kombinieren - 19 = "Groß- und Kleinbuchstaben UND Unicode-Zeichen".

Eine Reihe von Regeln beim Kompilieren einer Vorlagendatei:
- Bei Mustern wird die Groß- und Kleinschreibung nicht berücksichtigt. Daher wird der Eintrag in der Starwars- und StarWarS-Datei als der gleiche Wert bestimmt.
- Die Blacklist-Datei wird alle 60 Sekunden erneut gelesen, sodass Sie sie problemlos bearbeiten können. Nach einer Minute werden die neuen Daten bereits vom Filter verwendet.
- Derzeit gibt es keine Unicode-Unterstützung für die Mustervalidierung. Das heißt, Sie können Unicode-Zeichen in Kennwörtern verwenden, aber der Filter funktioniert nicht. Dies ist nicht kritisch, da ich keine Benutzer gesehen habe, die Unicode-Passwörter verwenden.
- Es wird empfohlen, keine Leerzeilen in der Vorlagendatei zuzulassen. Im Debug wird dann ein Fehler angezeigt, wenn die Daten aus der Datei geladen werden. Der Filter funktioniert, aber warum die zusätzlichen?
Zum Debuggen gibt es Batchdateien im Archiv, mit denen Sie ein Protokoll erstellen und dann mit beispielsweise
Microsoft Message Analyzer analysieren können
.Dieser Kennwortfilter verwendet die Ereignisverfolgung für Windows.
Der ETW-Anbieter für diesen Kennwortfilter ist
07d83223-7594-4852-babc-784803fdf6c5 . So können Sie beispielsweise die Ereignisverfolgung nach dem nächsten Neustart konfigurieren:
logman create trace autosession\PassFiltEx -o %SystemRoot%\Debug\PassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets
Die Ablaufverfolgung beginnt nach dem nächsten Systemneustart. Um aufzuhören:
logman stop PassFiltEx -ets && logman delete autosession\PassFiltEx -ets
Alle diese Befehle werden in den
Skripten StartTracingAtBoot.cmd und
StopTracingAtBoot.cmd angegeben .
Für eine einmalige Überprüfung des Filters können Sie
StartTracing.cmd und
StopTracing.cmd verwenden .
Es wird empfohlen, die folgenden Einstellungen zu verwenden, um den Debug-Auszug dieses Filters in
Microsoft Message Analyzer bequem zu lesen:


Wenn Sie das Protokoll stoppen und in
Microsoft Message Analyzer analysieren, sieht alles ungefähr so aus:

Hier können Sie sehen, dass versucht wurde, ein Passwort für den Benutzer festzulegen - das Zauberwort
SET im Debug sagt uns darüber. Das Passwort wurde aufgrund seiner Anwesenheit in der Vorlagendatei und der Übereinstimmung von mehr als 30% im eingegebenen Text abgelehnt.
Bei einem erfolgreichen Versuch, das Passwort zu ändern, sehen wir Folgendes:

Es gibt einige Unannehmlichkeiten für den Endbenutzer. Wenn Sie versuchen, das Kennwort zu ändern, das in die Liste der Vorlagendateien fällt, unterscheidet sich die Meldung auf dem Bildschirm in
Intelligenz und Scharfsinn nicht von der Standardnachricht, wenn die Kennwortrichtlinie nicht übergeben wird.

Seien Sie daher auf Anrufe und Schreie vorbereitet: "Ich habe das Passwort so eingegeben, wie es sollte, aber es funktioniert nicht."
Zusammenfassung
Mit dieser Bibliothek können Sie die Verwendung einfacher oder Standardkennwörter in der Active Directory-Domäne verbieten. Sag nein! Passwörter der Form: "P @ ssw0rd", "Qwerty123", "ADm1n098".
Ja, natürlich werden Benutzer Sie noch mehr lieben, wenn es um ihre Sicherheit und die Notwendigkeit geht, sich wütende Passwörter auszudenken. Und vielleicht die Anzahl der Anrufe und Anfragen nach Hilfe mit dem Passwort, das Sie hinzufügen werden. Aber Sicherheit hat ihren Preis.
Links zu verwendeten Ressourcen:Microsoft-Artikel zur benutzerdefinierten Kennwortfilterbibliothek:
KennwortfilterPassFiltEx:
PassFiltExRelease Link:
Neueste VersionPasswortlisten:
DanielMiessler listet auf:
Link.Wortliste von schwachpass.com:
Link.Wortliste von berzerk0 repo:
Link.Microsoft Message Analyzer:
Microsoft Message Analyzer.