Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Een mens is, zoals bekend, een lui wezen.
En zeker als het gaat om de keuze van een sterk wachtwoord.

Ik denk dat elke beheerder wel eens is geconfronteerd met het probleem van het gebruik van eenvoudige en standaardwachtwoorden. Dit fenomeen komt vaak voor onder de hogere echelons van bedrijfsleiders. Ja, inderdaad, vooral onder degenen die toegang hebben tot gevoelige of commerciële informatie en waarbij het uiterst ongewenst zou zijn om de gevolgen van een gegevenslek of hack en verdere incidenten te verhelpen.

In mijn praktijk was er een geval waarin mensen in de boekhouding in een Active Directory-domein met een ingeschakelde wachtwoordpolicy zelf op het idee kwamen dat een wachtwoord zoals "Pas$w0rd1234" prima voldeed aan de eisen van de policy. Het resultaat was dat dit wachtwoord overal en altijd werd gebruikt. Het verschilde soms alleen in de combinatie van cijfers.

Ik wilde heel graag niet alleen de wachtwoordpolicy kunnen inschakelen en een set symbolen te definiëren, maar ook kunnen filteren op een woordenlijst. Om het gebruik van dergelijke wachtwoorden uit te sluiten.

Microsoft laat ons vriendelijk weten via een link dat iedereen die een compiler, IDE goed kan hanteren en correct C++ kan uitspreken, zelf de benodigde bibliotheek kan compileren en naar eigen inzicht kan gebruiken. Uw nederige dienaar is daartoe niet in staat, dus moest ik een kant-en-klare oplossing zoeken.

Na een lange uur zoeken werden twee oplossingen voor het probleem gepresenteerd. Ik spreek natuurlijk over een OpenSource-oplossing. Want er zijn ook betaalde opties - van alles en nog wat.

Optie №1. OpenPasswordFilter

Er zijn al ongeveer 2 jaar geen commits meer. De originele installer werkt af en toe, je moet het handmatig aanpassen. Het creëert een aparte service. Bij het bijwerken van de wachtwoorden DLL pikt deze automatisch de gewijzigde inhoud niet op, je moet de service stoppen, wachten op de timeout, het bestand bewerken en de service opnieuw opstarten.

Geen aanrader!

Optie №2. PassFiltEx

Het project is actief, leeft en je hoeft zelfs het koude lichaam niet te porren.
De installatie van het filter bestaat uit het kopiëren van twee bestanden en het aanmaken van verschillende registervermeldingen. Het wachtwoordbestand is niet vergrendeld, wat betekent dat het bewerkbaar is en, volgens de auteur van het project, eenmaal per minuut wordt uitgelezen. Ook kunnen met extra registervermeldingen aanvullende instellingen worden uitgevoerd, zowel voor het filter zelf als voor de nuances van het wachtwoordbeleid.

Dus.
Gegeven: Active Directory-domein test.local
testwerkstation Windows 8.1 (voor de doeleinden van de taak - niet essentieel)
wachtwoordfilter PassFiltEx

  • Download de laatste release via de link PassFiltEx
  • Kopieer PassFiltEx.dll in C:\Windows\System32 (of %SystemRoot%\System32).
    Kopieer PassFiltExBlacklist.txt in C:\Windows\System32 (of %SystemRoot%\System32). Indien nodig voegen we onze sjablonen toe
    Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten
  • Bewerk de registertak: HKLM\SYSTEM\CurrentControlSet\Control\Lsa => Notification Packages
    Voeg toe PassFiltEx aan het einde van de lijst. (De extensie hoeft niet opgegeven te worden.) De volledige lijst van pakketten die gebruikt worden voor verificatie zal er als volgt uitzien: "rassfm scecli PassFiltEx«.
    Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten
  • Herstart de domeincontroller.
  • Herhaal de bovenstaande procedure voor alle domeincontrollers.

Ook kunnen de volgende registervermeldingen worden toegevoegd, wat meer flexibiliteit biedt bij het gebruik van dit filter:

Sectie: HKLM\SOFTWARE\PassFiltEx — wordt automatisch aangemaakt.

  • HKLM\SOFTWARE\PassFiltExBlacklistFileName, REG_SZ, Standaard: PassFiltExBlacklist.txt

    BlacklistFileName — stelt een aangepaste pad naar het bestand met wachtwoordsjablonen in. Als deze registervermelding een lege waarde heeft of niet bestaat, wordt het standaardpad gebruikt, namelijk — %SystemRoot%\System32. Je kunt zelfs een netwerkpad opgeven, MAAR vergeet niet dat het sjabloonbestand duidelijke lees-, schrijf-, verwijder- en wijzigingsrechten moet hebben.

  • HKLM\SOFTWARE\PassFiltExTokenPercentageOfPassword, REG_DWORD, Standaard: 60

    TokenPercentageOfPassword — stelt het percentage van de maskering in het nieuwe wachtwoord in. Standaard is de waarde 60%. Bijvoorbeeld, als het percentage 60 wordt opgegeven en in het sjabloonbestand staat de regel starwars, dan zal het wachtwoord Starwars1! worden afgewezen, terwijl het wachtwoord starwars1!DarthVader88 wordt geaccepteerd, omdat het percentage van de string in het wachtwoord minder is dan 60%

  • HKLM\SOFTWARE\PassFiltExRequireCharClasses, REG_DWORD, Standaard: 0

    RequireCharClasses — stelt de vereisten voor wachtwoorden in staat om te worden uitgebreid in vergelijking met de standaardcomplexiteitseisen van ActiveDirectory. De ingebouwde complexiteitseisen vereisen 3 van de 5 mogelijke verschillende soorten symbolen: Hoofdletters, Kleine letters, Cijfers, Speciale en Unicode. Met deze registervermelding kunnen uw eigen wachtwoordcomplexiteitseisen worden ingesteld. De waarde die kan worden opgegeven, is een bitset, waarbij elk een overeenkomstige macht van twee is.
    Dat wil zeggen — 1 = kleine letters, 2 = hoofdletters, 4 = cijfers, 8 = speciaal symbool, en 16 = Unicode-symbool.
    Als gevolg hiervan, bij een waarde van 7 worden de vereisten “Hoofdletters EN kleine letters EN cijfer” en bij een waarde van 31 — “Hoofdletters EN kleine letters EN cijfer EN speciaal symbool EN Unicode-symbool”.
    Je kunt zelfs combineren — 19 = “Hoofdletters EN kleine letters EN Unicode-symbool”.

  • Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Een aantal regels voor het opstellen van sjabloonbestanden:

  • Sjablonen zijn niet hoofdlettergevoelig. Daarom wordt een invoer in het bestand starwars en StarWarS gedefinieerd als dezelfde waarde.
  • Het zwarte lijstbestand wordt elke 60 seconden opnieuw gelezen, zodat je het rustig kunt bewerken; na een minuut worden de nieuwe gegevens al door het filter gebruikt.
  • Op dit moment is er geen ondersteuning voor Unicode voor sjabloonverificatie. Dat wil zeggen, het is mogelijk om Unicode-symbolen in wachtwoorden te gebruiken, maar het filter zal niet werken. Dit is niet kritisch, omdat ik geen gebruikers heb gezien die wachtwoorden in Unicode gebruiken.
  • Het is wenselijk om lege regels in het sjabloonbestand te vermijden. In de debugmodus is de fout dan zichtbaar wanneer gegevens uit het bestand worden geladen. Het filter werkt, maar waarom extra uitzonderingen?

Voor debugging zijn er batchbestanden in het archief inbegrepen, die het mogelijk maken om een log te maken en deze vervolgens te analyseren met bijvoorbeeld Microsoft Message Analyzer.
Dit wachtwoordfilter maakt gebruik van Event Tracing for Windows.

ETW-provider voor dit wachtwoordfilter — 07d83223-7594-4852-babc-784803fdf6c5. Zo kan bijvoorbeeld de gebeurtenistracering na de volgende herstart worden ingesteld:
logman create trace autosessionPassFiltEx -o %SystemRootbugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

De tracering wordt gestart na de volgende herstart van het systeem. Om te stoppen:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Al deze commando's zijn opgenomen in de scripts StartTracingAtBoot.cmd en StopTracingAtBoot.cmd.

Voor een eenmalige controle van de werking van het filter kan StartTracing.cmd en StopTracing.cmd.
Om de debug-uitvoer van deze filter gemakkelijk te lezen, Microsoft Message Analyzer wordt aangeraden om de volgende instellingen te gebruiken:

Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Bij het stoppen van de log en de analyse in Microsoft Message Analyzer ziet alles er ongeveer zo uit:

Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Hier zien we dat er een poging is gedaan om een wachtwoord voor de gebruiker in te stellen — dit wordt aangeduid met het magische woord SET in de debug-uitvoer. En het wachtwoord is afgewezen omdat het in het sjabloonbestand stond en meer dan 30% overeenkwam met de ingevoerde tekst.

Bij een succesvolle poging om het wachtwoord te wijzigen, zien we het volgende:

Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Er is enige onhandigheid voor de eindgebruiker. Bij het proberen te wijzigen van een wachtwoord dat in de lijst van het sjabloonbestand staat, verschilt de boodschap op het scherm niet in intelligentie of vindingrijkheid van het standaardbericht wanneer de wachtwoordpolicy niet wordt gehaald.

Hoe standaardwachtwoorden te verbieden en iedereen je te laten haten

Wees daarom voorbereid op telefoontjes en geschreeuw: ‘Ik heb het wachtwoord ingevoerd zoals het moet, maar het werkt niet.’

Conclusie.

Deze bibliotheek maakt het mogelijk om het gebruik van eenvoudige of standaardwachtwoorden in het Active Directory-domein te verbieden. Zeg ‘Nee!’ tegen wachtwoorden zoals: ‘P@ssw0rd’, ‘Qwerty123’, ‘ADm1n098’.
Ja, zonder twijfel zullen gebruikers je nog meer waarderen voor deze zorg voor hun veiligheid en de noodzaak om complexe wachtwoorden te bedenken. En wellicht zal het aantal telefoontjes en verzoeken om hulp met wachtwoorden toenemen. Maar veiligheid heeft zijn prijs.

Links naar gebruikte bronnen:
Artikel van Microsoft over de aangepaste bibliotheek voor wachtwoordfilters: Password Filters
PassFiltEx: PassFiltEx
Link naar de release: Latest Release
Wachtwoordlijsten:
DanielMiessler lijsten: Link.
Woordlijst van weakpass.com: Link.
Woordlijst van berzerk0 repo: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster