ProHoster > Blog > podávání > Jak zakázat standardní hesla a přimět vás, aby vás všichni nenáviděli
Jak zakázat standardní hesla a přimět vás, aby vás všichni nenáviděli
Člověk, jak víte, je tvor líný.
A ještě více, pokud jde o volbu silného hesla.
Myslím, že každý administrátor se někdy setkal s problémem používání lehkých a standardních hesel. Tento jev se často vyskytuje mezi vyššími vrstvami vedení společností. Ano, ano, přesně mezi těmi, kteří mají přístup k tajným nebo komerčním informacím a bylo by krajně nežádoucí eliminovat následky úniku hesel/hackingu a dalších incidentů.
V mé praxi se vyskytl případ, kdy v doméně Active Directory s povolenou politikou hesel účetní nezávisle přišli na myšlenku, že heslo jako „Pas$w0rd1234“ dokonale vyhovuje požadavkům politiky. Důsledkem bylo široké použití tohoto hesla všude. Někdy se lišil pouze svou sadou čísel.
Opravdu jsem chtěl mít možnost nejen povolit politiku hesel a definovat znakovou sadu, ale také filtrovat podle slovníku. Vyloučit možnost použití takových hesel.
Microsoft nás prostřednictvím odkazu laskavě informuje, že každý, kdo ví, jak správně držet v ruce kompilátor, IDE a ví, jak správně vyslovovat C++, si dokáže zkompilovat knihovnu, kterou potřebuje, a používat ji podle svého. Váš skromný služebník toho není schopen, takže jsem musel hledat hotové řešení.
Po dlouhé hodině hledání se ukázaly dvě možnosti řešení problému. Mluvím samozřejmě o řešení OpenSource. Koneckonců, existují placené možnosti - od začátku do konce.
Už asi 2 roky nejsou žádné commity. Nativní instalátor funguje každou chvíli, musíte to opravit ručně. Vytváří vlastní samostatnou službu. Při aktualizaci souboru s hesly knihovna DLL automaticky nezvedne změněný obsah; musíte službu zastavit, počkat na časový limit, upravit soubor a spustit službu.
Projekt je aktivní, živý a není potřeba ani kopat do studeného těla.
Instalace filtru zahrnuje zkopírování dvou souborů a vytvoření několika položek registru. Soubor s hesly není v zámku, to znamená, že je k dispozici pro úpravy a podle myšlenky autora projektu se jednoduše čte jednou za minutu. Pomocí dalších položek registru můžete dále konfigurovat jak samotný filtr, tak i nuance zásady hesla.
Tak.
Dané: doména Active Directory test.local
Testovací pracovní stanice Windows 8.1 (není důležité pro účely problému)
filtr hesel PassFiltEx
kopírovat PassFiltEx.dll в C: WindowsSystem32 (nebo %SystemRoot%System32).
kopírovat PassFiltExBlacklist.txt в C: WindowsSystem32 (nebo %SystemRoot%System32). V případě potřeby jej doplňujeme vlastními šablonami
Úprava větve registru: HKLMSYSTEMCurrentControlSetControlLsa => Oznamovací balíčky
Přidat PassFiltEx na konec seznamu. (Příponu není třeba specifikovat.) Kompletní seznam balíků použitých ke kontrole bude vypadat takto „rassfm scecli PassFiltEx".
Restartujte řadič domény.
Výše uvedený postup opakujeme pro všechny doménové řadiče.
Můžete také přidat následující položky registru, což vám poskytuje větší flexibilitu při používání tohoto filtru:
Sekce: HKLMSOFTWAREPassFiltEx — se vytvoří automaticky.
BlacklistFileName — umožňuje zadat vlastní cestu k souboru se šablonami hesel. Pokud je tato položka registru prázdná nebo neexistuje, použije se výchozí cesta, což je - %SystemRoot%System32. Můžete dokonce zadat síťovou cestu, ALE musíte pamatovat na to, že soubor šablony musí mít jasná oprávnění pro čtení, zápis, mazání, změnu.
TokenPercentageOfPassword — umožňuje zadat procento masky v novém hesle. Výchozí hodnota je 60 %. Pokud je například procentuální výskyt 60 a řetězec starwars je v souboru šablony, pak heslo Starwars1! bude po zadání hesla odmítnuto starwars1!DarthVader88 bude přijato, protože procento řetězce v hesle je menší než 60 %
VyžadovatCharClasses — umožňuje rozšířit požadavky na heslo ve srovnání se standardními požadavky na složitost hesla ActiveDirectory. Vestavěné požadavky na složitost vyžadují 3 z 5 možných různých druhů znaků: Velká písmena, Malá písmena, Číslice, Speciální a Unicode. Pomocí této položky registru můžete nastavit požadavky na složitost hesla. Hodnota, kterou lze zadat, je sada bitů, z nichž každý je odpovídající mocninou dvou.
To znamená, že 1 = malá písmena, 2 = velká písmena, 4 = číslice, 8 = speciální znak a 16 = znak Unicode.
Takže s hodnotou 7 by požadavky byly „velká písmena“ A AUTOMATIZACI malá písmena A AUTOMATIZACI číslice“ a s hodnotou 31 – „Velká písmena A AUTOMATIZACI malá písmena A AUTOMATIZACI postava A AUTOMATIZACI speciální symbol A AUTOMATIZACI znak Unicode."
Můžete dokonce kombinovat - 19 = „Velká písmena A AUTOMATIZACI malá písmena A AUTOMATIZACI znak Unicode."
Řada pravidel při vytváření souboru šablony:
Šablony nerozlišují malá a velká písmena. Proto položka souboru hvězdné války и Hvězdné války bude určena jako stejná hodnota.
Soubor černé listiny se znovu načítá každých 60 sekund, takže jej můžete snadno upravit; po minutě budou nová data použita filtrem.
V současné době neexistuje žádná podpora Unicode pro porovnávání vzorů. To znamená, že v heslech můžete používat znaky Unicode, ale filtr nebude fungovat. To není kritické, protože jsem neviděl uživatele, kteří používají hesla Unicode.
Je vhodné nepovolit prázdné řádky v souboru šablony. V debugu pak můžete vidět chybu při načítání dat ze souboru. Filtr funguje, ale proč další výjimky?
Pro ladění obsahuje archiv dávkové soubory, které umožňují vytvořit protokol a následně jej analyzovat pomocí např. Microsoft Message Analyzer.
Tento filtr hesel používá sledování událostí pro Windows.
Poskytovatelem ETW pro tento filtr hesel je 07d83223-7594-4852-babc-784803fdf6c5. Můžete tedy například nakonfigurovat sledování událostí po následujícím restartu: logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets
Trasování bude zahájeno po příštím restartu systému. Zastavit: logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Všechny tyto příkazy jsou specifikovány ve skriptech StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.
Pro jednorázovou kontrolu provozu filtru můžete použít StartTracing.cmd и StopTracing.cmd.
Aby bylo možné pohodlně přečíst ladicí výfuk tohoto filtru Analyzátor zpráv Microsoft Doporučuje se použít následující nastavení:
Při zastavení přihlašování a analýzy Analyzátor zpráv Microsoft vše vypadá nějak takto:
Zde vidíte, že došlo k pokusu o nastavení hesla pro uživatele – kouzelné slůvko nám to říká SET v ladění. A heslo bylo odmítnuto kvůli jeho přítomnosti v souboru šablony a více než 30% shodě v zadaném textu.
Pokud je proveden úspěšný pokus o změnu hesla, uvidíme následující:
Pro koncového uživatele to znamená určité nepříjemnosti. Když se pokusíte změnit heslo, které je zahrnuto v souboru se seznamem šablon, zpráva na obrazovce se neliší od standardní zprávy, když není předána zásada hesel.
Buďte proto připraveni na volání a výkřiky: "Zadal jsem heslo správně, ale nefunguje."
Shrnutí.
Tato knihovna umožňuje zakázat používání jednoduchých nebo standardních hesel v doméně Active Directory. Řekněme "Ne!" hesla jako: „P@ssw0rd“, „Qwerty123“, „ADm1n098“.
Ano, samozřejmě, uživatelé vás budou milovat ještě víc za to, že se tak staráte o jejich bezpečnost a že je potřeba vymýšlet ohromující hesla. A možná se zvýší počet hovorů a žádostí o pomoc s vaším heslem. Ale bezpečnost má svou cenu.
Odkazy na použité zdroje:
Článek společnosti Microsoft týkající se vlastní knihovny filtrů hesel: Filtry hesel
PassFiltEx: PassFiltEx
Odkaz na vydání: Poslední vydání
Seznam hesel:
Seznam DanielMiessler: Odkaz.
Seznam slov ze slabého pasu.com: Odkaz.
Seznam slov z repozitáře berzerk0: Odkaz.
Microsoft Message Analyzer: Microsoft Message Analyzer.