Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Člověk je, jak je známo, líná bytost.
A to zejména, když jde o výběr silného hesla.

Myslím, že se každý administrátor někdy setkal s problémem používání slabých a standardních hesel. Tento jev je běžný zejména mezi vyššími manažery společnosti. Ano, právě mezi těmi, kteří mají přístup k důvěrným nebo obchodním informacím, a bylo by velmi nežádoucí odstraňovat následky úniku/hacknutí hesla a dalších incidentů.

Ve své praxi jsem měl případ, kdy v doméně Active Directory s aktivní politikou hesel lidé z účetnictví přišli na to, že heslo ve tvaru „Pas$w0rd1234“ skvěle odpovídá požadavkům politiky. Následkem bylo široké rozšíření tohoto hesla všude a ve všem. Lišilo se obvykle jen sadou čísel.

Moc jsem toužil mít možnost nejen aktivovat politiku hesel a definovat sadu znaků, ale také filtrovat podle slovníku. Abychom vyloučili možnost používání takového typu hesel.

Společnost Microsoft nám laskavě sděluje na odkazu, že kdokoliv, kdo umí správně držet kompilátor, IDE a správně vyslovovat C++, je schopen si sám zkompilovat potřebnou knihovnu a používat ji podle vlastního uvážení. Váš pokorný sluha na to nebyl schopen, a tak jsem musel hledat hotové řešení.

Po dlouhé hodině hledání se objevily dvě varianty řešení problému. Mluvím samozřejmě o OpenSource řešení. Protože placených variant je od a do.

Varianta č. 1. OpenPasswordFilter

Není žádné aktualizace už asi 2 roky. Originální instalátor funguje pouze občas, je potřeba to upravit ručně. Vytváří svou vlastní službu. Při aktualizaci souboru hesel DLL automaticky nebere změněný obsah, je potřeba zastavit službu, čekat na timeout, upravit soubor, spustit službu.

Není to nic moc!

Varianta č. 2. PassFiltEx

Projekt je aktivní, živý a ani ho nemusíte nutit.
Instalace filtru spočívá v kopírování dvou souborů a vytvoření několika záznamů registru. Soubor s hesly není v lokaci, což znamená, že je dostupný pro úpravy a podle záměru autora projektu se prostě čte jednou za minutu. Díky dalším záznamům registru lze provést další konfiguraci jak samotného filtru, tak i nuancí politiky hesel.

Tak tedy.
Dáno: doména Active Directory test.local
testovací pracovní stanice Windows 8.1 (pro podmínku úkolu — bezvýznamné)
filtr hesel PassFiltEx

  • Stáhněte si poslední vydání z odkazu PassFiltEx
  • Kopírujeme PassFiltEx.dll v C:WindowsSystem32 (nebo %SystemRoot%System32).
    Kopírujeme PassFiltExBlacklist.txt v C:WindowsSystem32 (nebo %SystemRoot%System32). Pokud bude potřeba, doplníme jej vlastními šablonami
    Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli
  • Upravujeme větev registru: HKLMSYSTEMCurrentControlSetControlLsa => Notification Packages
    Přidat PassFiltEx na konec seznamu. (Rozšíření uvádět není potřeba.) Celý seznam balíčků používáných pro ověřování bude vypadat takto «rassfm scecli PassFiltEx«.
    Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli
  • Restartujeme řadič domény.
  • Opakujeme výše uvedený postup pro všechny řadiče domény.

Dále lze přidat následující záznamy registru, což dává větší flexibilitu při používání tohoto filtru:

Oddíl: HKLMSOFTWAREPassFiltEx — vytváří se automaticky.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Výchozí: PassFiltExBlacklist.txt

    BlacklistFileName — umožňuje zadat vlastní cestu k souboru se šablonami hesel. Pokud má tento záznam registru prázdnou hodnotu nebo neexistuje, používá se výchozí cesta, a to — %SystemRoot%System32. Lze zadat i síťovou cestu, ALE je třeba mít na paměti, že soubor se šablonami musí mít jasně stanovená oprávnění pro čtení, zápis, odstranění, změnu.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, Výchozí: 60

    TokenPercentageOfPassword — umožňuje určit procento masky v novém hesle. Výchozí hodnota je 60 %. Například, pokud je uvedeno procento 60 a v souboru šablon je řetězec starwars, heslo Starwars1! bude odmítnuto, zatímco heslo starwars1!DarthVader88 bude přijato, protože procento výskytu řetězce v hesle je méně než 60 %

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, Výchozí: 0

    RequireCharClasses — umožňuje rozšířit požadavky na hesla ve srovnání se standardními požadavky na složitost hesel ActiveDirectory. Vestavěné požadavky na složitost vyžadují 3 z 5 možných různých typů znaků: Velká písmena, Malá písmena, Číslice, Speciální a Unicode. Pomocí tohoto záznamu registru můžete nastavit vlastní požadavky na složitost hesel. Hodnota, kterou lze uvést, je sada bitů, z nichž každý je odpovídající mocninou dvou.
    To znamená — 1 = malá písmena, 2 = velká písmena, 4 = číslice, 8 = speciální znak a 16 = znak Unicode.
    Takže při hodnotě 7 budou požadavky „Velká písmena A malá písmena A číslice“, a při hodnotě 31 — „Velká písmena A malá písmena A číslice A speciální znak A znak Unicode“.
    Lze dokonce kombinovat — 19 = „Velká písmena A malá písmena A znak Unicode“.

  • Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Sada pravidel pro sestavení souboru šablon:

  • Šablony jsou bez ohledu na velikost písmen. Následně bude zápis v souboru starwars a StarWarS určen jako stejná hodnota.
  • Soubor černé listiny se přečte každých 60 sekund, takže jej lze bez obav upravit, po minutě budou nová data použita filtrem.
  • V současnosti není podpora Unicode pro kontrolu podle šablony. To znamená, že použití Unicode znaků v heslech je možné, ale filtr nefunguje. To není kritické, protože jsem neviděl uživatele, kteří používají hesla v Unicode.
  • Je žádoucí se vyhnout prázdným řádkům v souboru šablon. V debugování pak vidíte chybu, když dojde k načítání dat ze souboru. Filtr funguje, ale proč mít zbytečné výjimky?

Pro debugování jsou v archivu dávkové soubory, které umožňují vytvořit log a poté jej analyzovat pomocí, například, Microsoft Message Analyzer.
Tento filtr hesel používá trasování událostí pro Windows.

ETW poskytovatel pro tento filtr hesel — 07d83223-7594-4852-babc-784803fdf6c5. Například je možné nastavit trasování událostí po dalším restartu:
logman create trace autosessionPassFiltEx -o %SystemRootbugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Trasování bude spuštěno po dalším restartu systému. Chcete-li zastavit:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Všechny tyto příkazy jsou uvedeny ve skriptech StartTracingAtBoot.cmd a StopTracingAtBoot.cmd.

Pro jednorázovou kontrolu funkce filtru lze použít StartTracing.cmd a StopTracing.cmd.
Aby pohodlně číst výstup ladění tohoto filtru v Microsoft Message Analyzer je doporučeno použít následující nastavení:

Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Při zastavení logu a analýze v Microsoft Message Analyzer vypadá vše zhruba takto:

Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Zde je vidět, že byla pokus o nastavení hesla pro uživatele – o tom nám říká magické slovo SET v ladění. A heslo bylo odmítnuto kvůli jeho přítomnosti v souboru šablon a více než 30% shodě ve zadaném textu.

Při úspěšném pokusu o změnu hesla vidíme následující:

Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Existuje určité nepohodlí pro koncového uživatele. Při pokusu o změnu hesla, které se dostane do seznamu souboru šablon, není zpráva na obrazovce nijak inteligentní od standardní zprávy při nesplnění pravidel hesel.

Jak zakázat standardní hesla a donutit všechny, aby tě nenáviděli

Buďte tedy připraveni na telefonáty a křik: „Zadala jsem heslo, jak mám, a ono nefunguje.“

Závěr.

Tato knihovna umožňuje zakázat používání slabých nebo standardních hesel v doméně Active Directory. Řekněte „Ne!“ heslům ve stylu: „P@ssw0rd“, „Qwerty123“, „ADm1n098“.
Ano, uživatelé vás určitě budou mít rádi ještě více za takovou péči o jejich bezpečnost a nutnost vymýšlet obtížná hesla. A možná se zvýší počet telefonátů a žádostí o pomoc s heslem. Ale za bezpečnost se platí.

Odkazy na použité zdroje:
Článek na Microsoft ohledně vlastního filtru hesel: Filtry hesel
PassFiltEx: PassFiltEx
Odkaz na vydání: Nejnovější vydání
Seznamy hesel:
DanielMiessler lists: Odkaz.
Seznam slov z weakpass.com: Odkaz.
Seznam slov z repozitáře berzerk0: Odkaz.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster