Как да забраните стандартните пароли и да накарате всички да ви мразят

Човекът, както знаете, е мързеливо същество.
И още повече, когато става въпрос за избор на силна парола.

Мисля, че всеки администратор някога се е сблъсквал с проблема с използването на леки и стандартни пароли. Това явление често се среща сред висшите ешелони на управлението на компанията. Да, да, точно сред тези, които имат достъп до секретна или търговска информация и би било изключително нежелателно да се елиминират последствията от изтичане на парола/хакване и допълнителни инциденти.

В моята практика имаше случай, когато в домейн на Active Directory с активирана политика за пароли, счетоводителите независимо стигнаха до идеята, че парола като „Pas$w0rd1234“ отговаря перфектно на изискванията на политиката. Последствието беше широкото използване на тази парола навсякъде. Понякога се различаваше само по набора си от числа.

Наистина исках да мога не само да активирам политика за парола и да дефинирам набор от знаци, но и да филтрирам по речник. Да се ​​изключи възможността за използване на такива пароли.

Microsoft любезно ни информира чрез връзката, че всеки, който знае как да държи правилно компилатор, IDE в ръцете си и знае как да произнася правилно C++, може да компилира необходимата библиотека и да я използва според собствените си разбирания. Вашият смирен слуга не е способен на това, така че трябваше да потърся готово решение.

След дълъг час търсене се разкриха два варианта за решаване на проблема. Разбира се, говоря за OpenSource решението. В крайна сметка има платени опции - от началото до края.

Опция 1. OpenPasswordFilter

Няма ангажименти от около 2 години.Нативният инсталатор работи от време на време, трябва да го коригирате ръчно. Създава собствена отделна услуга. Когато актуализирате файл с парола, DLL не взема автоматично промененото съдържание; трябва да спрете услугата, да изчакате изчакване, да редактирате файла и да стартирате услугата.

Без лед!

Опция 2. PassFiltEx

Проектът е активен, жив и няма нужда дори да ритате студеното тяло.
Инсталирането на филтъра включва копиране на два файла и създаване на няколко записа в системния регистър. Файлът с парола не е в ключалка, тоест той е достъпен за редактиране и, според идеята на автора на проекта, той просто се чете веднъж на минута. Освен това, като използвате допълнителни записи в системния регистър, можете допълнително да конфигурирате както самия филтър, така и дори нюансите на политиката за пароли.

Така.
Дадено: домейн на Active Directory test.local
Работна станция за тестване на Windows 8.1 (не е важно за целта на проблема)
филтър за пароли PassFiltEx

  • Изтеглете най-новата версия от връзката PassFiltEx
  • копие PassFiltEx.dll в C: WindowsSystem32 (Or %SystemRoot%System32).
    копие PassFiltExBlacklist.txt в C: WindowsSystem32 (Or %SystemRoot%System32). Ако е необходимо, ние го допълваме със собствени шаблони
    Как да забраните стандартните пароли и да накарате всички да ви мразят
  • Редактиране на клона на регистъра: HKLMSYSTEMCurrentControlSetControlLsa => Пакети за уведомяване
    Добавете PassFiltEx до края на списъка. (Не е необходимо разширението да се посочва.) Пълният списък с пакети, използвани за сканиране, ще изглежда така "rassfm scecli PassFiltEx".
    Как да забраните стандартните пароли и да накарате всички да ви мразят
  • Рестартирайте домейн контролера.
  • Повтаряме горната процедура за всички домейн контролери.

Можете също така да добавите следните записи в системния регистър, което ви дава повече гъвкавост при използването на този филтър:

Глава: HKLMSOFTWAREPassFiltEx — се създава автоматично.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, по подразбиране: PassFiltExBlacklist.txt

    Черен списък Име на файл — позволява ви да посочите потребителски път към файл с шаблони за парола. Ако този запис в системния регистър е празен или не съществува, тогава се използва пътят по подразбиране, който е - %SystemRoot%System32. Можете дори да посочите мрежов път, НО трябва да запомните, че шаблонният файл трябва да има ясни разрешения за четене, запис, изтриване, промяна.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, по подразбиране: 60

    TokenPercentageOfPassword — позволява ви да посочите процента на маската в новата парола. Стойността по подразбиране е 60%. Например, ако процентът на срещане е 60 и низът starwars е във файла на шаблона, тогава паролата Междузвездни войни1! ще бъде отхвърлен, докато паролата звездни войни1!DarthVader88 ще бъде прието, защото процентът на низа в паролата е по-малък от 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, по подразбиране: 0

    RequireCharClasses — позволява ви да разширите изискванията за парола в сравнение със стандартните изисквания за сложност на паролата на ActiveDirectory. Вградените изисквания за сложност изискват 3 от 5-те възможни различни типа знаци: главни букви, малки букви, цифри, специални и Unicode. С помощта на този запис в системния регистър можете да зададете изискванията за сложност на вашата парола. Стойността, която може да бъде зададена, е набор от битове, всеки от които е съответна степен на две.
    Тоест - 1 = малка буква, 2 = главна буква, 4 = цифра, 8 = специален знак и 16 = Unicode знак.
    Така че със стойност 7 изискванията ще бъдат „Главен регистър“ И малка буква И цифра”, а със стойност 31 - „Главен регистър И малки букви И фигура И специален символ И Уникод знак."
    Можете дори да комбинирате - 19 = „Главен регистър И малки букви И Уникод знак."

  • Как да забраните стандартните пароли и да накарате всички да ви мразят

Редица правила при създаване на файл с шаблон:

  • Шаблоните са нечувствителни към главни и малки букви. Следователно записът на файла междузвездни войни и Междузвездни войни ще се определи като същата стойност.
  • Файлът с черния списък се препрочита на всеки 60 секунди, така че можете лесно да го редактирате; след минута новите данни ще бъдат използвани от филтъра.
  • Понастоящем няма поддръжка на Unicode за съвпадение на шаблони. Тоест можете да използвате Unicode символи в паролите, но филтърът няма да работи. Това не е критично, защото не съм виждал потребители, които използват Unicode пароли.
  • Препоръчително е да не допускате празни редове във файла на шаблона. След това в отстраняването на грешки можете да видите грешка при зареждане на данни от файл. Филтърът работи, но защо допълнителните изключения?

За отстраняване на грешки архивът съдържа пакетни файлове, които ви позволяват да създадете регистрационен файл и след това да го анализирате, като използвате например Анализатор на съобщения на Microsoft.
Този филтър за пароли използва проследяване на събития за Windows.

Доставчикът на ETW за този филтър за пароли е 07d83223-7594-4852-babc-784803fdf6c5. Така например можете да конфигурирате проследяване на събития след следното рестартиране:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Проследяването ще започне след следващото рестартиране на системата. Да спра:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Всички тези команди са посочени в скриптовете StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

За еднократна проверка на работата на филтъра можете да използвате StartTracing.cmd и StopTracing.cmd.
За удобно четене на изпускателната система за отстраняване на грешки на този филтър в Анализатор на съобщения на Microsoft Препоръчително е да използвате следните настройки:

Как да забраните стандартните пароли и да накарате всички да ви мразят

Как да забраните стандартните пароли и да накарате всички да ви мразят

При спиране на влизането и анализирането Анализатор на съобщения на Microsoft всичко изглежда така:

Как да забраните стандартните пароли и да накарате всички да ви мразят

Тук можете да видите, че е имало опит за задаване на парола за потребителя - това ни казва магическата дума КОМПЛЕКТ в отстраняване на грешки. И паролата беше отхвърлена поради наличието й в шаблонния файл и повече от 30% съвпадение във въведения текст.

Ако бъде направен успешен опит за промяна на паролата, виждаме следното:

Как да забраните стандартните пароли и да накарате всички да ви мразят

Има известно неудобство за крайния потребител. Когато се опитате да промените парола, която е включена в списъка с шаблонни файлове, съобщението на екрана не се различава от стандартното съобщение, когато политиката за парола не е предадена.

Как да забраните стандартните пароли и да накарате всички да ви мразят

Затова бъдете готови за обаждания и викове: „Въведох правилно паролата, но тя не работи.“

Резюме.

Тази библиотека ви позволява да забраните използването на прости или стандартни пароли в домейн на Active Directory. Да кажем "Не!" пароли като: „P@ssw0rd“, „Qwerty123“, „ADm1n098“.
Да, разбира се, потребителите ще ви харесат още повече, че се грижите за тяхната сигурност и необходимостта да измисляте умопомрачителни пароли. И може би броят на обажданията и молбите за помощ с вашата парола ще се увеличи. Но сигурността си има цена.

Връзки към използвани ресурси:
Статия на Microsoft относно персонализирана библиотека с филтър за пароли: Филтри за пароли
PassFiltEx: PassFiltEx
Линк за освобождаване: Последно издание
Списъци с пароли:
DanielMiessler изброява: Link.
Списък с думи от weakpass.com: Link.
Списък с думи от berzerk0 repo: Link.
Анализатор на съобщения на Microsoft: Анализатор на съобщения на Microsoft.

Източник: www.habr.com

Добавяне на нов коментар