Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Der Mensch ist, wie bekannt, ein faules Wesen.
Umso mehr, wenn es um die Auswahl eines sicheren Passworts geht.

Ich denke, jeder Administrator ist irgendwann auf das Problem gestoßen, schwache und standardisierte Passwörter zu verwenden. Dieses Phänomen tritt häufig in den oberen Führungsetagen des Unternehmens auf. Ja, genau bei denen, die Zugang zu geheimen oder kommerziellen Informationen haben, und es wäre äußerst unerwünscht, die Folgen von Datenlecks oder Passwort-Hacks und nachfolgenden Vorfällen zu beheben.

In meiner Praxis gab es einen Fall, in dem im Active Directory-Domain mit aktivierter Passwortpolitik die Buchhalter selbst auf die Idee kamen, dass ein Passwort wie „Pas$w0rd1234“ perfekt die Anforderungen der Politik erfüllt. Dies führte zur weit verbreiteten Verwendung dieses Passworts überall. Es unterschied sich manchmal nur in der Zahlenkombination.

Es wäre großartig, nicht nur die Passwortpolitik aktivieren und eine Zeichenauswahl festlegen zu können, sondern auch durch ein Wörterbuch zu filtern, um die Verwendung solcher Passwörter auszuschließen.

Die Firma Microsoft informiert uns freundlich über den Link, dass jeder, der in der Lage ist, einen Compiler und eine IDE richtig zu handhaben und C++ korrekt auszusprechen, in der Lage ist, sich selbst die benötigte Bibliothek zu kompilieren und nach Belieben zu verwenden. Ihr demütiger Diener ist dazu nicht in der Lage, also war ich gezwungen, eine fertige Lösung zu suchen.

Nach einer langen Stunde der Suche wurden mir zwei Lösungsvarianten präsentiert. Ich spreche natürlich von einer OpenSource-Lösung. Die kostenpflichtigen Optionen sind endlos.

Variante Nr. 1. OpenPasswordFilter

Es gab seit etwa zwei Jahren keine Commits mehr. Der originale Installer funktioniert nur sporadisch, ich muss ihn manuell anpassen. Er erstellt seinen eigenen Dienst. Bei der Aktualisierung der Passwortdatei erkennt die DLL nicht automatisch den geänderten Inhalt, man muss den Dienst anhalten, die Zeit abwarten, die Datei bearbeiten und den Dienst neu starten.

Nicht ideal!

Variante Nr. 2. PassFiltEx

Das Projekt ist aktiv, lebt und man muss es nicht einmal anstoßen.
Die Installation des Filters besteht aus dem Kopieren von zwei Dateien und dem Erstellen mehrerer Registry-Einträge. Die Passwortdatei befindet sich nicht im Lese-Schutz, das heißt - sie ist zur Bearbeitung verfügbar und wird gemäß der Absicht des Projektautors einfach einmal pro Minute ausgelesen. Außerdem können durch zusätzliche Registry-Einträge sowohl der Filter selbst als auch die Feinheiten der Passwortpolitik weiter angepasst werden.

Also.
Gegeben: Active Directory-Domain test.local
Test-Arbeitsstation Windows 8.1 (für die Aufgabenstellung - unerheblich)
PassFiltEx Passwortfilter

  • Laden Sie über den Link die neueste Version herunter PassFiltEx
  • Kopieren wir PassFiltEx.dll in C:WindowsSystem32 (oder %SystemRoot%System32).
    Kopieren wir PassFiltExBlacklist.txt in C:WindowsSystem32 (oder %SystemRoot%System32). Bei Bedarf ergänzen wir sie mit unseren Vorlagen
    Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen
  • Bearbeiten wir den Registry-Zweig: HKLMSYSTEMCurrentControlSetControlLsa => Notification Packages
    Hinzufügen PassFiltEx ans Ende der Liste. (Erweiterung muss nicht angegeben werden.) Die vollständige Liste der Pakete, die für die Überprüfung verwendet werden, sieht so aus: „rassfm scecli PassFiltEx«.
    Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen
  • Starten Sie den Domänencontroller neu.
  • Wiederholen Sie das oben beschriebene Verfahren für alle Domänencontroller.

Außerdem können folgende Registry-Einträge hinzugefügt werden, was mehr Flexibilität bei der Verwendung dieses Filters bietet:

Schlüssel: HKLMSOFTWAREPassFiltEx — wird automatisch erstellt.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Standard: PassFiltExBlacklist.txt

    BlacklistFileName — ermöglicht die Angabe eines benutzerdefinierten Pfades zur Datei mit Passwort-Vorlagen. Wenn dieser Registry-Eintrag keinen Wert hat oder nicht existiert, wird der Standardpfad verwendet, nämlich - %SystemRoot%System32. Es kann sogar ein Netzwerkpfad angegeben werden, ABER es ist zu beachten, dass für die Vorlagendatei klare Berechtigungen für Lesen, Schreiben, Löschen und Ändern festgelegt sein müssen.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, Standard: 60

    TokenPercentageOfPassword — ermöglicht die Angabe des prozentualen Anteils der Maske im neuen Passwort. Standardmäßig beträgt der Wert 60 %. Wenn etwa ein prozentualer Anteil von 60 angegeben ist und im Vorlagendatei ein Eintrag wie starwars vorhanden ist, wird das Passwort Starwars1! abgelehnt, während das Passwort starwars1!DarthVader88 angenommen wird, da der prozentuale Anteil der Zeichenfolge im Passwort weniger als 60 % beträgt.

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, Standard: 0

    RequireCharClasses — ermöglicht es, die Anforderungen an Passwörter im Vergleich zu den Standardanforderungen für die Komplexität von Passwörtern in ActiveDirectory zu erweitern. Die integrierten Anforderungen an die Komplexität erfordern 3 von 5 möglichen verschiedenen Zeichentypen: Großbuchstaben, Kleinbuchstaben, Ziffern, Sonderzeichen und Unicode. Mit diesem Registrierungseintrag können Sie Ihre eigenen Anforderungen an die Komplexität von Passwörtern festlegen. Der anzugeben Wert ist eine Bitmaske, wobei jedes Bit einem entsprechenden Potenz von zwei entspricht.
    Das heißt — 1 = Kleinbuchstabe, 2 = Großbuchstabe, 4 = Ziffer, 8 = Sonderzeichen und 16 = Unicode-Zeichen.
    Daher werden bei einem Wert von 7 die Anforderungen "Großbuchstaben. AND Kleinbuchstaben. AND Ziffer" sein, und bei einem Wert von 31 werden es "Großbuchstaben. AND Kleinbuchstaben. AND Ziffer, AND Sonderzeichen, AND Unicode-Zeichen" sein.
    Man kann sogar kombinieren — 19 = "Großbuchstaben. AND Kleinbuchstaben. AND Unicode-Zeichen" sein.

  • Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Reihenfolge von Regeln für die Erstellung von Vorlagendateien:

  • Vorlagen sind nicht case-sensitive. Daher wird der Eintrag in der Datei starwars und StarWarS als identischer Wert angesehen.
  • Die Blacklist-Datei wird alle 60 Sekunden neu gelesen, sodass Sie sie problemlos bearbeiten können; nach einer Minute werden die neuen Daten bereits vom Filter verwendet.
  • Momentan gibt es keine Unterstützung für Unicode bei der Überprüfung anhand von Vorlagen. Das heißt, Unicode-Zeichen in Passwörtern können verwendet werden, aber der Filter wird nicht darauf reagieren. Das ist nicht kritisch, da ich keine Nutzer gesehen habe, die Passwörter in Unicode verwenden.
  • Es ist wünschenswert, keine leeren Zeilen in der Vorlagendatei zuzulassen. Im Debugging wird dann ein Fehler sichtbar, wenn Daten aus der Datei geladen werden. Der Filter funktioniert, aber wozu unnötige Ausnahmen?

Für das Debugging sind im Archiv Batch-Skripte enthalten, die es ermöglichen, ein Protokoll zu erstellen und dieses später z.B. mit Microsoft Message Analyzer zu analysieren.
Dieser Passwortfilter verwendet Event Tracing for Windows.

Der ETW-Anbieter für diesen Passwortfilter ist 07d83223-7594-4852-babc-784803fdf6c5. So kann beispielsweise die Ereignistracing nach dem nächsten Neustart eingerichtet werden:
logman create trace autosessionPassFiltEx -o %SystemRootbugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Die Trace wird nach dem nächsten Neustart des Systems gestartet. Um zu stoppen:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Alle diese Befehle sind in den Skripten angegeben: StartTracingAtBoot.cmd und StopTracingAtBoot.cmd.

Für eine einmalige Überprüfung der Funktionsweise des Filters kann man StartTracing.cmd und StopTracing.cmd.
Um den Debug-Ausgang dieses Filters bequem zu lesen, Microsoft Message Analyzer wird empfohlen, die folgenden Einstellungen zu verwenden:

Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Beim Anhalten des Logs und der Analyse sieht es ungefähr so aus: Microsoft Message Analyzer Hier sieht man, dass ein Versuch unternommen wurde, ein Passwort für den Benutzer festzulegen – das verrät uns das magische Wort

Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

SET im Debug. Und das Passwort wurde abgelehnt, da es in der Vorlage vorhanden war und mehr als 30% Übereinstimmung im eingegebenen Text hatte. Bei einem erfolgreichen Versuch, das Passwort zu ändern, sehen wir Folgendes:

Es gibt eine gewisse Unannehmlichkeit für den Endbenutzer. Bei einem Versuch, ein Passwort zu ändern, das in die Vorlagenliste fällt, unterscheidet sich die Bildschirmmeldung nicht von der Standardmeldung bei Nichterfüllung der Passwortrichtlinien.

Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Seien Sie also auf Anrufe und Schreie gefasst: „Ich habe das Passwort richtig eingegeben, und es funktioniert nicht.“

Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen

Diese Bibliothek erlaubt es, die Verwendung einfacher oder Standardpasswörter im Active Directory-Domäne zu verbieten. Sagen Sie „Nein!“ zu Passwörtern wie: „P@ssw0rd“, „Qwerty123“, „ADm1n098“.

Fazit.

Ja, zweifellos werden die Benutzer Sie dafür, dass Sie sich um ihre Sicherheit kümmern und sie dazu zwingen, sich schwierige Passwörter auszudenken, noch mehr lieben. Und möglicherweise wird die Anzahl der Anrufe und Hilferufe bei Passwortproblemen bei Ihnen zunehmen. Aber für Sicherheit muss man zahlen.
Links zu den verwendeten Ressourcen:

Artikel von Microsoft über die benutzerdefinierte Passwortfilterbibliothek:
Password Filters PassFiltEx:
Link zur Veröffentlichung: PassFiltEx
Latest Release Passwortlisten:
DanielMiessler lists:
Link. Wortliste von weakpass.com:
Wortliste aus dem berzerk0-Repo: Wortliste von weakpass.com:
Microsoft Message Analyzer: Wortliste von weakpass.com:
🥇Wie man Standardpasswörter verbietet und alle dazu bringt, einen zu hassen | ProHoster Microsoft Message Analyzer zu analysieren.

Quelle: habr.com

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster