Человек, как известно, существо ленивое.
А тем более, когда касается вопроса выбора устойчивого пароля.
Думаю, каждый из администраторов когда-либо сталкивался с проблемой использования легких и стандартных паролей. Такое явление часто встречается среди верхних эшелонов руководства компании. Да-да, именно среди тех, кто имеет доступ к секретной или коммерческой информации и крайне нежелательно было бы устранять последствия утечки/взлома пароля и дальнейших инцидентов.
В моей практике был случай, когда в домене Active Directory с включенной парольной политикой люди бухгалтеры самостоятельно дошли до идеи того, что пароль вида «Pas$w0rd1234» отлично прокатывает под требования политики. Следствием стало повсеместной использование данного пароля везде и всюду. Отличался он иногда лишь набором цифр.
Компания Microsoft любезно сообщает нам по ссылке, что всякий, кто умеет держать правильно в руках компилятор, IDE и умеет правильно произносить C++, способен сам себе библиотеку нужную скомпилировать и использовать по своему разумению. Ваш покорный слуга на такое не способен, вот и пришлось искать готовое решение.
После длительного часа поиска взору были явлены два варианта решения проблемы. Я, конечно, говорю об OpenSource решении. Ведь платных вариантов — от и до.
Iprojekthi iyasebenza, iyaphila kwaye akukho mfuneko yokukhaba umzimba obandayo.
Установка фильтра заключается в копировании двух файлов и создании нескольких записей реестра. Файл паролей не в локе, то есть — доступен для редактирования и, согласно задумке автора проекта, он просто вычитывается раз в минуту. Также при помощи дополнительных записей реестра можно произвести дополнительную настройку как самого фильтра, так и даже нюансов парольной политики.
Ewe, ngoko.
Kunikwe: I-Active Directory domain test.local
тестовая рабочая станция Windows 8.1 (для условия задачи — несущественно)
isihluzo sokugqitha PassFiltEx
Копируем PassFiltEx.dll в C: IWindowsSystem32 (okanye I-%SystemRoot%System32).
Копируем PassFiltExBlacklist.txt в C: IWindowsSystem32 (okanye I-%SystemRoot%System32). При необходимости дополняем его своими шаблонами
Ukuhlela isebe lobhaliso: HKLMSYSTEMCurrentControlSetControlLsa => IiPakethi zesaziso
Yongeza PassFiltEx в конец списка. (Расширение указывать не нужно.) Полный список пакетов используемых для проверки будет выглядеть вот так «rassfm scecli PassFiltEx«.
Перезагружаем контроллер домена.
Siphinda le nkqubo ingentla kubo bonke abalawuli besizinda.
Unokongeza amangeno alandelayo obhaliso, akunika ukuguquguquka ngakumbi ekusebenziseni esi sihluzo:
Ifuna iiCharClasses — ikuvumela ukuba wandise iimfuneko zegama lokugqitha xa kuthelekiswa neemfuneko eziqhelekileyo zokuntsonkotha kwephasiwedi ye-ActiveDirectory. Iimfuno ezintsonkothileyo ezakhelwe ngaphakathi zifuna i-3 kwezi-5 ezinokubakho iintlobo ezahlukeneyo zoonobumba: Unobumba abakhulu, unobumba omncinci, iDigit, eKhethekileyo, kunye ne-Unicode. Ukusebenzisa olu ngeniso lobhaliso, unokuseta iimfuno zokuntsokotha kwephasiwedi yakho. Ixabiso elinokuchazwa liqela lamasuntswana, ngalinye lingamandla ahambelanayo amabini.
Oko kukuthi, 1 = unobumba omncinci, 2 = unobumba omkhulu, 4 = idijithi, 8 = unobumba okhethekileyo, kunye no-16 = unobumba we-Unicode.
Ke ngexabiso le-7 iimfuno ziya kuba yi "Upper Case" AND нижний регистра AND цифра ”, а при значении 31 — “Верхний регистр AND unobumba omncinci AND nombolo AND uphawu olukhethekileyo AND Umlinganiswa we-Unicode."
Можно даже комбинировать — 19 = “Верхний регистр AND unobumba omncinci AND Umlinganiswa we-Unicode."
Inani lemithetho xa usenza ifayile yetemplate:
Шаблоны регистронезависимы. Следовательно, запись в файле idabi leenkwenkwezi и Idabi leenkwenkwezi будет определяться как одинаковое значение.
Файл блеклиста перечитывается каждые 60 секунд, таким образом можно спокойно его редактировать, через минуту новые данные уже будут использоваться фильтром.
На данный момент нет поддержки Unicode для проверки по шаблону. То есть, использовать Unicode символы в паролях можно, но фильтр не сработает. Это не есть критично, потому что не видел я пользователей, которые пароли в юникоде используют.
Желательно не допускать пустых строк в файле шаблонов. В дебаге потом видно ошибку, когда происходит подгрузка данных из файла. Фильтр работает, но зачем лишние эксепшены?
Ukulungisa ingxaki, indawo yokugcina iqulathe iifayile zebhetshi ezikuvumela ukuba wenze ilog kwaye emva koko uyahlule usebenzisa, umzekelo, Microsoft Message Analyzer.
Esi sihluzo segama lokugqitha sisebenzisa ukuJonga uMnyadala weWindows.
Трассировка будет запущена после следующей перезагрузки системы. Чтобы остановить: logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Yonke le miyalelo ichaziwe kwizikripthi StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.
Ukukhangela ixesha elinye lomsebenzi wokucoca, ungasebenzisa StartTracing.cmd и StopTracing.cmd.
Для того, чтобы удобно читать выхлоп дебага данного фильтра в I-Microsoft Message Analyzer Kucetyiswa ukuba usebenzise ezi zicwangciso zilandelayo:
При остановке лога и разбора в I-Microsoft Message Analyzer yonke into ibonakala ngolu hlobo:
Здесь видно, что была попытка установить пароль для пользователя — об этом нам говорит волшебное слово SET в дебаге. И пароль был отклонен ввиду наличия его в файле шаблонов и более чем 30% соответствии в вводимом тексте.
Есть некоторое неудобство для конечного пользователя. При попытке смены пароля, который попадает в список файла шаблонов, сообщение на экране не отличается умом и сообразительностью от стандартного сообщение при непрохождении парольной политики.
Поэтому будьте готовы к звонкам и крикам: «Я ввела пароль как надо, а оно не работает.»
Iziphumo.
Данная библиотека позволяет запретить использование простых или стандартных паролей в домене Active Directory. Скажем «Нет!» паролям вида: «P@ssw0rd»,«Qwerty123», «ADm1n098».
Да, безусловно, пользователи полюбят вас еще больше за такую заботу об их безопасности и необходимости придумывать зубодробительные пароли. И, возможно, количество звонков и просьб помочь с паролем у Вас добавится. Но за безопасность приходится платить.