Hur man förbjuder standardlösenord och får alla att hata dig

Människan är som ni vet en lat varelse.
Och ännu mer när det gäller att välja ett starkt lösenord.

Jag tror att varje administratör någonsin har mött problemet med att använda lätta och vanliga lösenord. Detta fenomen förekommer ofta bland företagsledningens övre skikt. Ja, ja, just bland dem som har tillgång till hemlig eller kommersiell information och det vore ytterst oönskat att eliminera konsekvenserna av lösenordsläckor/hackning och ytterligare incidenter.

I min praktik fanns det ett fall när revisorer, på en Active Directory-domän med en lösenordspolicy aktiverad, självständigt kom på idén att ett lösenord som "Pas$w0rd1234" passar policykraven perfekt. Konsekvensen var den utbredda användningen av detta lösenord överallt. Ibland skilde han sig bara i sin uppsättning siffror.

Jag ville verkligen kunna inte bara aktivera en lösenordspolicy och definiera en teckenuppsättning, utan också filtrera efter ordbok. För att utesluta möjligheten att använda sådana lösenord.

Microsoft informerar oss vänligt via länken att alla som vet hur man håller en kompilator, IDE korrekt i sina händer och vet hur man uttalar C++ korrekt, kan kompilera det bibliotek de behöver och använda det enligt sin egen förståelse. Din ödmjuka tjänare är inte kapabel till detta, så jag var tvungen att leta efter en färdig lösning.

Efter en lång timmes letande avslöjades två alternativ för att lösa problemet. Jag pratar naturligtvis om OpenSource-lösningen. Det finns trots allt betalalternativ - från början till slut.

Alternativ nummer 1. Öppna lösenordsfilter

Det har inte funnits några commits på cirka 2 år nu. Det inbyggda installationsprogrammet fungerar då och då, du måste korrigera det manuellt. Skapar en egen separat tjänst. När du uppdaterar en lösenordsfil hämtar DLL inte automatiskt det ändrade innehållet, du måste stoppa tjänsten, vänta en timeout, redigera filen och starta tjänsten.

Ingen is!

Alternativ nummer 2. PassFiltEx

Projektet är aktivt, levande och det finns ingen anledning att ens sparka den kalla kroppen.
Att installera filtret innebär att två filer kopieras och flera registerposter skapas. Lösenordsfilen är inte i ett lås, det vill säga den är tillgänglig för redigering och enligt idén från författaren till projektet läses den helt enkelt en gång i minuten. Med hjälp av ytterligare registerposter kan du dessutom konfigurera både själva filtret och till och med nyanserna i lösenordspolicyn.

Så.
Givet: Active Directory-domän test.local
Windows 8.1 testarbetsstation (inte viktigt för syftet med problemet)
lösenordsfilter PassFiltEx

  • Ladda ner den senaste versionen från länken PassFiltEx
  • Kopiera PassFiltEx.dll в C: WindowsSystem32 (eller % Systemroot% System32).
    Kopiera PassFiltExBlacklist.txt в C: WindowsSystem32 (eller % Systemroot% System32). Vid behov kompletterar vi med egna mallar
    Hur man förbjuder standardlösenord och får alla att hata dig
  • Redigera registergrenen: HKLMSYSTEMCurrentControlSetControlLsa => Aviseringspaket
    Lägger till PassFiltEx till slutet av listan. (Tillägget behöver inte anges.) Den kompletta listan över paket som används för skanning kommer att se ut så här "rassfm scecli PassFiltEx".
    Hur man förbjuder standardlösenord och får alla att hata dig
  • Starta om domänkontrollanten.
  • Vi upprepar ovanstående procedur för alla domänkontrollanter.

Du kan också lägga till följande registerposter, vilket ger dig mer flexibilitet när du använder det här filtret:

Kapitel: HKLMSOFTWAREPassFiltEx — skapas automatiskt.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Standard: PassFiltExBlacklist.txt

    BlacklistFileName — låter dig ange en anpassad sökväg till en fil med lösenordsmallar. Om denna registerpost är tom eller inte existerar, används standardsökvägen, vilket är - % Systemroot% System32. Du kan till och med ange en nätverkssökväg, MEN du måste komma ihåg att mallfilen måste ha tydliga behörigheter för att läsa, skriva, ta bort, ändra.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, standard: 60

    TokenPercentageOfPassword — låter dig ange procentandelen av masken i det nya lösenordet. Standardvärdet är 60 %. Till exempel, om den procentuella förekomsten är 60 och strängen starwars finns i mallfilen, då lösenordet Starwars1! kommer att avvisas medan lösenordet starwars1!DarthVader88 kommer att accepteras eftersom procentandelen av strängen i lösenordet är mindre än 60 %

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, standard: 0

    RequireCharClasses — låter dig utöka lösenordskraven jämfört med standardkraven för ActiveDirectory-lösenordskomplexitet. De inbyggda komplexitetskraven kräver 3 av de 5 möjliga olika typerna av tecken: versaler, gemener, siffror, special och Unicode. Med hjälp av den här registerposten kan du ställa in dina lösenordskomplexitetskrav. Värdet som kan specificeras är en uppsättning bitar, som var och en är en motsvarande potens av två.
    Det vill säga 1 = gemener, 2 = versaler, 4 = siffror, 8 = specialtecken och 16 = Unicode-tecken.
    Så med ett värde på 7 skulle kraven vara "versaler" AND små bokstäver AND siffra", och med värdet 31 - "Versal AND små bokstäver AND figur AND speciell symbol AND Unicode-tecken."
    Du kan till och med kombinera - 19 = "versaler AND små bokstäver AND Unicode-tecken."

  • Hur man förbjuder standardlösenord och får alla att hata dig

Ett antal regler när du skapar en mallfil:

  • Mallar är skiftlägesokänsliga. Därför filposten stjärnornas krig и Stjärnornas krig kommer att bestämmas vara samma värde.
  • Svartlistfilen läses om var 60:e sekund, så att du enkelt kan redigera den; efter en minut kommer den nya informationen att användas av filtret.
  • Det finns för närvarande inget Unicode-stöd för mönstermatchning. Det vill säga att du kan använda Unicode-tecken i lösenord, men filtret fungerar inte. Detta är inte kritiskt, eftersom jag inte har sett användare som använder Unicode-lösenord.
  • Det är tillrådligt att inte tillåta tomma rader i mallfilen. I felsökningen kan du sedan se ett fel när data laddas från en fil. Filtret fungerar, men varför de extra undantagen?

För felsökning innehåller arkivet batchfiler som låter dig skapa en logg och sedan analysera den med hjälp av t.ex. Microsoft Message Analyzer.
Detta lösenordsfilter använder händelsespårning för Windows.

ETW-leverantören för detta lösenordsfilter är 07d83223-7594-4852-babc-784803fdf6c5. Så, till exempel, kan du konfigurera händelsespårning efter följande omstart:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Spårningen startar efter nästa omstart av systemet. Att stanna:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Alla dessa kommandon anges i skripten StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

För en engångskontroll av filterfunktionen kan du använda StartTracing.cmd и StopTracing.cmd.
För att bekvämt kunna läsa in felsökningsutsläppet från detta filter Microsoft Message Analyzer Vi rekommenderar att du använder följande inställningar:

Hur man förbjuder standardlösenord och får alla att hata dig

Hur man förbjuder standardlösenord och får alla att hata dig

När du slutar logga och tolka in Microsoft Message Analyzer allt ser ut ungefär så här:

Hur man förbjuder standardlösenord och får alla att hata dig

Här kan du se att det gjordes ett försök att ställa in ett lösenord för användaren - det magiska ordet säger oss detta Godkänn i felsökning. Och lösenordet avvisades på grund av dess närvaro i mallfilen och mer än 30% matchning i den inmatade texten.

Om ett framgångsrikt försök att byta lösenord görs ser vi följande:

Hur man förbjuder standardlösenord och får alla att hata dig

Det finns vissa besvär för slutanvändaren. När du försöker ändra ett lösenord som ingår i listan över mallar, skiljer sig meddelandet på skärmen inte från standardmeddelandet när lösenordspolicyn inte godkänns.

Hur man förbjuder standardlösenord och får alla att hata dig

Var därför beredd på samtal och rop: "Jag skrev in lösenordet korrekt, men det fungerar inte."

Sammanfattning.

Detta bibliotek låter dig förbjuda användningen av enkla eller standardlösenord i en Active Directory-domän. Låt oss säga "Nej!" lösenord som: "P@ssw0rd", "Qwerty123", "ADm1n098".
Ja, naturligtvis, användare kommer att älska dig ännu mer för att du tar så hand om sin säkerhet och behovet av att komma med häpnadsväckande lösenord. Och kanske kommer antalet samtal och förfrågningar om hjälp med ditt lösenord att öka. Men säkerhet har ett pris.

Länkar till använda resurser:
Microsoft-artikel om ett anpassat lösenordsfilterbibliotek: Lösenordsfilter
PassFiltEx: PassFiltEx
Releaselänk: Senaste släppningen
Lösenordslistor:
DanielMiessler listar: Link.
Ordlista från weakpass.com: Link.
Ordlista från berzerk0 repo: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Källa: will.com

Lägg en kommentar