Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Človek, ako je známe, je lenivá bytosť.
A zvlášť, keď ide o výber silného hesla.

Myslím, že každý administrátor už niekedy narazil na problém s používaním jednoduchých a štandardných hesiel. Tento jav sa často vyskytuje medzi vedúcimi pracovníkmi spoločnosti. Presne medzi tými, ktorí majú prístup k tajným alebo obchodným informáciám, a veľmi neželané by bolo odstraňovať následky úniku/vylomenia hesla a ďalších incidentov.

Vo svojej praxi som mal prípad, keď v doméne Active Directory s povolenou politiku hesiel si ľudia v účtovníctve sami došli k myšlienke, že heslo vo forme „Pas$w0rd1234“ skvele spĺňa požiadavky politiky. Dôsledkom bolo rozšírené používanie tohto hesla všade a vždy. Rozdiel bol niekedy len v sade číslic.

Veľmi som si prial mať možnosť nielen zapnúť politiku hesiel a určovať sadu znakov, ale aj filtrovať podľa slovníka. Aby som vylúčil možnosť používania takýchto hesiel.

Spoločnosť Microsoft nám láskavo oznamuje na odkaze, že každý, kto vie správne používať kompilátor, IDE a dokáže správne vysloviť C++, je schopný sám sebe skompilovať potrebnú knižnicu a používať ju po svojom rozume. Váš pokorný sluha na to nie je schopný, takže som musel hľadať hotové riešenie.

Po dlhom hodine hľadania sa objavili dva varianty riešenia problému. Samozrejme, hovorím o open source riešení. Pretože platené možnosti sú od a do.

Variant č. 1. OpenPasswordFilter

Žiadne commity už asi 2 roky. Nativny inštalátor funguje raz a raz, treba ho upravovať ručne. Vytvára svoju samostatnú službu. Pri aktualizácii súboru hesiel DLL automaticky nezískava zmenený obsah, treba zastaviť službu, čakať časový limit, upraviť súbor, spustiť službu.

Nie je to dobré!

Variant č. 2. PassFiltEx

Projekt je aktívny, živý a ani ho netreba dobiehať.
Inštalácia filtra spočíva v skopírovaní dvoch súborov a vytvorení niekoľkých záznamov v registri. Súbor hesiel nie je v pokoji, to znamená — je dostupný na úpravy a podľa zamýšľania autora projektu sa jednoducho číta raz za minútu. Taktiež pomocou ďalších záznamov v registri je možné vykonať dodatočné nastavenie ako samotného filtra, tak aj nuáns politiky hesiel.

Takže.
Dané: doména Active Directory test.local
testovacia pracovná stanica Windows 8.1 (pre podmienku úlohy — nepodstatné)
filter hesiel PassFiltEx

  • Stiahnite si najnovšiu verziu z odkazu PassFiltEx
  • Kopírujeme PassFiltEx.dll v C:WindowsSystem32 (alebo %SystemRoot%System32).
    Kopírujeme PassFiltExBlacklist.txt v C:WindowsSystem32 (alebo %SystemRoot%System32). Ak je to potrebné, doplníme ho vlastnými šablónami
    Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť
  • Upravujeme vetvu registra: HKLMSYSTEMCurrentControlSetControlLsa => Notification Packages
    Pridávame PassFiltEx na koniec zoznamu. (Rozšírenie uvádzať netreba.) Celý zoznam balíkov používaných na kontrolu bude vyzerať takto «rassfm scecli PassFiltEx«.
    Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť
  • Reštartujeme riadiaci server domény.
  • Opakujeme vyššie uvedený postup pre všetky ovládajúce servery domény.

Taktiež je možné pridať nasledujúce záznamy v registri, čo poskytuje väčšiu flexibilitu pri používaní tohto filtra:

Sekcia: HKLMSOFTWAREPassFiltEx — vytvorí sa automaticky.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Predvolené: PassFiltExBlacklist.txt

    BlacklistFileName — umožňuje zadať vlastnú cestu k súboru so šablónami hesiel. Ak má tento záznam v registri prázdnu hodnotu alebo neexistuje, použije sa predvolená cesta, a to — %SystemRoot%System32. Môžete zadať dokonca aj sieťovú cestu, ALE treba mať na pamäti, že súbor so šablónami musí mať nastavené jasné oprávnenia na čítanie, zápis, vymazanie, zmenu.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, Predvolené: 60

    TokenPercentageOfPassword — umožňuje zadať percentuálny podiel masky v novom hesle. Predvolené hodnoty sú 60%. Napríklad, ak je zadaný percentuálny podiel 60 a v súbore šablón je riadok starwars, potom heslo Starwars1! bude zamietnuté, zatiaľ čo heslo starwars1!DarthVader88 bude prijaté, pretože percentuálny podiel reťazca v hesle je menej ako 60%.

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, Predvolené: 0

    RequireCharClasses — umožňuje rozšíriť požiadavky na heslá v porovnaní s bežnými požiadavkami na zložitosti hesiel ActiveDirectory. Vstavané požiadavky na zložitosti vyžadujú 3 z 5 možných rôznych typov symbolov: Veľké písmeno, Malé písmeno, Číslo, Špeciálny a Unicode. Pomocou tejto položky registra je možné nastaviť vlastné požiadavky na zložitosti hesiel. Hodnota, ktorú je možné zadať, je sada bitov, pričom každý z nich predstavuje zodpovedajúcu mocninu dvoch.
    Teda — 1 = malé písmeno, 2 = veľké písmeno, 4 = číslo, 8 = špeciálny symbol, a 16 = Unicode symbol.
    Takže pri hodnote 7 budú požiadavky "Veľké písmeno A malé písmeno A číslo ", zatiaľ čo pri hodnote 31 budú "Veľké písmeno A malé písmeno A číslo A špeciálny symbol A Unicode symbol".
    Dokonca je možné kombinovať — 19 = "Veľké písmeno A malé písmeno A Unicode symbol".

  • Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Séria pravidiel pri zostavovaní súborov šablón:

  • Šablóny sú nezávislé na veľkosti písmen. Preto bude záznam v súbore starwars a StarWarS považovaný za rovnakú hodnotu.
  • Súbor čiernej listiny sa číta každých 60 sekúnd, takže ho možno v pohode upravovať, po minúte budú nové údaje už používané filtrom.
  • V súčasnosti nie je podpora Unicode pre kontrolu podľa šablóny. To znamená, že používanie Unicode symbolov v heslách je možné, ale filter nefunkuje. To nie je kritické, pretože som nevidel používateľov, ktorí by používali heslá v Unicode.
  • Je vhodné sa vyhnúť prázdnym riadkom v súbore šablón. V debugu potom vidno chybu, keď dochádza k načítaniu údajov zo súboru. Filter funguje, ale prečo zbytočné výnimky?

Pre debugovanie v archíve idú bat súbory, ktoré umožňujú vytvoriť log a potom ho rozobrať pomocou, napríklad, Microsoft Message Analyzer.
Tento filter hesiel využíva Event Tracing for Windows.

ETW poskytovateľ pre tento filter hesiel — 07d83223-7594-4852-babc-784803fdf6c5. Tak, napríklad, je možné nastaviť sledovanie udalostí po ďalšom reštarte:
logman vytvoriť sledovanie autosessionPassFiltEx -o %SystemRootbugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Sledovanie bude spustené po ďalšom reštarte systému. Ak chcete zastaviť:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Všetky tieto príkazy sú uvedené v skriptoch StartTracingAtBoot.cmd a StopTracingAtBoot.cmd.

Na jednorazovú kontrolu fungovania filtra je možné použiť StartTracing.cmd a StopTracing.cmd.
Aby ste mohli pohodlne čítať výstup ladenia tohto filtra v Microsoft Message Analyzer , odporúča sa použiť nasledujúce nastavenia:

Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Pri zastavení protokolu a analýze v Microsoft Message Analyzer vyzerá všetko zhruba takto:

Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Tu je vidno, že došlo k pokusu o nastavenie hesla pre používateľa — o tom nám hovorí kúzelné slovo SET v ladění. A heslo bolo odmietnuté kvôli prítomnosti v súbore šablón a viac ako 30% zhode v zadanom texte.

Pri úspešnom pokuse o zmenu hesla vidíme toto:

Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Existuje určité nepohodlie pre koncového používateľa. Pri pokuse o zmenu hesla, ktoré sa dostane na zoznam súboru šablón, sa správa na obrazovke nelíši rozumom a dôvtipom od štandardnej správy pri neúspechu politiky hesiel.

Ako zakázať štandardné heslá a donútiť všetkých ťa nenávidieť

Preto buďte pripravení na telefonáty a výkriky: „Zadal(a) som heslo správne, ale nefunguje to.“

Záver.

Táto knižnica umožňuje zakázať používanie jednoduchých alebo štandardných hesiel v doméne Active Directory. Povedzme "Nie!" heslám vo forme: "P@ssw0rd", "Qwerty123", "ADm1n098".
Áno, bezpochyby, používatelia vás budú mať ešte radšej za takú starostlivosť o ich bezpečnosť a potrebu vymyslieť zložitá heslá. A možno sa počet telefonátov a žiadostí o pomoc s heslom u vás zvýši. Ale za bezpečnosť sa platí.

Odkazy na použité zdroje:
Článok od Microsoftu týkajúci sa vlastnej knižnice filtra hesiel: Password Filters
PassFiltEx: PassFiltEx
Odkaz na vydanie: Latest Release
Zoznamy hesiel:
DanielMiessler lists: Link.
Wordlist z weakpass.com: Link.
Wordlist z repozitára berzerk0: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster