Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Ang tao, tulad ng alam mo, ay isang tamad na nilalang.
At higit pa sa pagdating sa pagpili ng isang malakas na password.

Sa tingin ko ang bawat administrator ay nahaharap sa problema ng paggamit ng magaan at karaniwang mga password. Ang hindi pangkaraniwang bagay na ito ay madalas na nangyayari sa mga upper echelons ng pamamahala ng kumpanya. Oo, oo, tiyak sa mga may access sa lihim o komersyal na impormasyon at magiging lubhang hindi kanais-nais na alisin ang mga kahihinatnan ng pagtagas ng password/pag-hack at karagdagang mga insidente.

Sa aking pagsasanay, nagkaroon ng kaso kung kailan, sa isang Active Directory domain na may naka-enable na patakaran sa password, independiyenteng naisip ng mga accountant na ang isang password tulad ng "Pas$w0rd1234" ay ganap na akma sa mga kinakailangan ng patakaran. Ang kinahinatnan ay ang malawakang paggamit ng password na ito sa lahat ng dako. Minsan siya ay naiiba lamang sa kanyang hanay ng mga numero.

Gusto ko talagang magawang hindi lamang paganahin ang isang patakaran sa password at tukuyin ang isang set ng character, ngunit pati na rin i-filter ayon sa diksyunaryo. Upang ibukod ang posibilidad ng paggamit ng mga naturang password.

Magiliw na ipaalam sa amin ng Microsoft sa pamamagitan ng link na ang sinumang marunong humawak ng compiler, IDE nang tama sa kanilang mga kamay at alam kung paano bigkasin ang C++ nang tama, ay kayang i-compile ang library na kailangan nila at gamitin ito ayon sa kanilang sariling pang-unawa. Hindi ito kaya ng iyong abang lingkod, kaya kinailangan kong humanap ng handa na solusyon.

Pagkatapos ng mahabang oras ng paghahanap, dalawang opsyon para sa paglutas ng problema ang nahayag. Ako, siyempre, ay nagsasalita tungkol sa solusyon sa OpenSource. Pagkatapos ng lahat, may mga bayad na pagpipilian - mula simula hanggang matapos.

Opsyon #1. OpenPasswordFilter

Walang mga commit sa loob ng humigit-kumulang 2 taon na ngayon. Gumagana ang native installer paminsan-minsan, kailangan mong itama ito nang manu-mano. Lumilikha ng sarili nitong hiwalay na serbisyo. Kapag nag-a-update ng file ng password, hindi awtomatikong kinukuha ng DLL ang binagong nilalaman; kailangan mong ihinto ang serbisyo, maghintay ng timeout, i-edit ang file, at simulan ang serbisyo.

Walang yelo!

Opsyon #2. PassFiltEx

Ang proyekto ay aktibo, buhay at hindi na kailangan pang sipain ang malamig na katawan.
Ang pag-install ng filter ay nagsasangkot ng pagkopya ng dalawang file at paglikha ng ilang mga entry sa registry. Ang file ng password ay wala sa isang lock, iyon ay, ito ay magagamit para sa pag-edit at, ayon sa ideya ng may-akda ng proyekto, ito ay binabasa lamang isang beses sa isang minuto. Gayundin, gamit ang mga karagdagang entry sa registry, maaari mong higit pang i-configure ang filter mismo at maging ang mga nuances ng patakaran sa password.

Kaya.
Ibinigay: Active Directory domain test.local
Windows 8.1 test workstation (hindi mahalaga para sa layunin ng problema)
filter ng password PassFiltEx

  • I-download ang pinakabagong release mula sa link PassFiltEx
  • Kopya PassFiltEx.dll в C: WindowsSystem32 (O %SystemRoot%System32).
    Kopya PassFiltExBlacklist.txt в C: WindowsSystem32 (O %SystemRoot%System32). Kung kinakailangan, dinadagdagan namin ito ng aming sariling mga template
    Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat
  • Pag-edit ng sangay ng pagpapatala: HKLMSYSTEMCurrentControlSetControlLsa => Mga Pakete ng Abiso
    Idagdag PassFiltEx hanggang sa dulo ng listahan. (Hindi kailangang tukuyin ang extension.) Ang kumpletong listahan ng mga pakete na ginamit para sa pag-scan ay magiging ganito "rassfm scecli PassFiltEx".
    Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat
  • I-reboot ang domain controller.
  • Inuulit namin ang pamamaraan sa itaas para sa lahat ng mga controller ng domain.

Maaari mo ring idagdag ang sumusunod na mga entry sa registry, na nagbibigay sa iyo ng higit na kakayahang umangkop sa paggamit ng filter na ito:

Kabanata: HKLMSOFTWAREPassFiltEx — ay awtomatikong nilikha.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Default: PassFiltExBlacklist.txt

    BlacklistFileName — nagbibigay-daan sa iyong tumukoy ng custom na path sa isang file na may mga template ng password. Kung walang laman o wala ang registry entry na ito, gagamitin ang default na path, na - %SystemRoot%System32. Maaari mo ring tukuyin ang isang landas sa network, PERO kailangan mong tandaan na ang template file ay dapat may malinaw na mga pahintulot para sa pagbasa, pagsulat, pagtanggal, pagbabago.

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword, REG_DWORD, Default: 60

    TokenPercentageOfPassword — nagbibigay-daan sa iyo na tukuyin ang porsyento ng mask sa bagong password. Ang default na halaga ay 60%. Halimbawa, kung ang porsyento ng paglitaw ay 60 at ang string starwars ay nasa template file, kung gayon ang password Starwars1! ay tatanggihan habang ang password starwars1!DarthVader88 ay tatanggapin dahil ang porsyento ng string sa password ay mas mababa sa 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, Default: 0

    Nangangailangan ngCharClasses — nagbibigay-daan sa iyong palawakin ang mga kinakailangan sa password kumpara sa karaniwang kinakailangan sa pagiging kumplikado ng password ng ActiveDirectory. Ang built-in na mga kinakailangan sa pagiging kumplikado ay nangangailangan ng 3 sa 5 posibleng iba't ibang uri ng mga character: Uppercase, Lowercase, Digit, Special, at Unicode. Gamit ang registry entry na ito, maaari mong itakda ang iyong mga kinakailangan sa pagiging kumplikado ng password. Ang halaga na maaaring tukuyin ay isang hanay ng mga bit, na ang bawat isa ay katumbas na kapangyarihan ng dalawa.
    Ibig sabihin, 1 = lowercase, 2 = uppercase, 4 = digit, 8 = special character, at 16 = Unicode character.
    Kaya sa halagang 7 ang mga kinakailangan ay magiging "Upper Case" AT maliit na titik AT digit", at may halaga na 31 - "Upper case AT maliit na titik AT digit AT espesyal na simbolo AT Unicode character."
    Maaari mo ring pagsamahin - 19 = “Upper case AT maliit na titik AT Unicode character."

  • Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Ilang panuntunan kapag lumilikha ng template file:

  • Ang mga template ay case insensitive. Samakatuwid, ang file entry starwars и StarWarS ay matutukoy na pareho ang halaga.
  • Ang blacklist file ay muling binabasa bawat 60 segundo, kaya madali mo itong ma-edit; pagkalipas ng isang minuto, ang bagong data ay gagamitin ng filter.
  • Kasalukuyang walang suporta sa Unicode para sa pagtutugma ng pattern. Iyon ay, maaari mong gamitin ang mga Unicode na character sa mga password, ngunit ang filter ay hindi gagana. Hindi ito kritikal, dahil hindi ko nakita ang mga user na gumagamit ng mga password ng Unicode.
  • Maipapayo na huwag payagan ang mga walang laman na linya sa template file. Sa debug, maaari kang makakita ng error kapag naglo-load ng data mula sa isang file. Gumagana ang filter, ngunit bakit may mga karagdagang pagbubukod?

Para sa pag-debug, naglalaman ang archive ng mga batch file na nagbibigay-daan sa iyong lumikha ng isang log at pagkatapos ay i-parse ito gamit, halimbawa, Microsoft Message Analyzer.
Gumagamit ang filter ng password na ito ng Pagsubaybay sa Kaganapan para sa Windows.

Ang ETW provider para sa filter ng password na ito ay 07d83223-7594-4852-babc-784803fdf6c5. Kaya, halimbawa, maaari mong i-configure ang pagsubaybay sa kaganapan pagkatapos ng sumusunod na pag-reboot:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Magsisimula ang pagsubaybay pagkatapos ng susunod na pag-reboot ng system. Para huminto:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Ang lahat ng mga utos na ito ay tinukoy sa mga script StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

Para sa isang beses na pagsusuri ng pagpapatakbo ng filter, maaari mong gamitin StartTracing.cmd и StopTracing.cmd.
Upang maginhawang basahin ang debug exhaust ng filter na ito sa Microsoft Message Analyzer Inirerekomenda na gamitin ang mga sumusunod na setting:

Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Kapag huminto sa pag-log at pag-parse in Microsoft Message Analyzer ang lahat ay mukhang ganito:

Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Dito makikita mo na may pagtatangkang magtakda ng password para sa user - sinasabi ito sa amin ng magic word Itakda sa pag-debug. At ang password ay tinanggihan dahil sa presensya nito sa template file at higit sa 30% na tugma sa ipinasok na teksto.

Kung ang isang matagumpay na pagtatangka sa pagpapalit ng password ay ginawa, makikita namin ang sumusunod:

Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Mayroong ilang abala para sa end user. Kapag sinubukan mong baguhin ang isang password na kasama sa listahan ng mga template na file, ang mensahe sa screen ay hindi naiiba sa karaniwang mensahe kapag ang patakaran ng password ay hindi naipasa.

Paano ipagbawal ang mga karaniwang password at gawing galit sa iyo ang lahat

Samakatuwid, maging handa para sa mga tawag at sigaw: "Naipasok ko nang tama ang password, ngunit hindi ito gumagana."

Buod.

Binibigyang-daan ka ng library na ito na ipagbawal ang paggamit ng simple o karaniwang mga password sa isang domain ng Active Directory. Sabihin nating "Hindi!" mga password tulad ng: “P@ssw0rd”, “Qwerty123”, “ADm1n098”.
Oo, siyempre, mas mamahalin ka ng mga user sa pag-aalaga sa kanilang seguridad at sa pangangailangang makabuo ng mga password na nakakabighani. At, marahil, ang bilang ng mga tawag at kahilingan para sa tulong sa iyong password ay tataas. Ngunit may halaga ang seguridad.

Mga link sa mga mapagkukunang ginamit:
Artikulo ng Microsoft tungkol sa isang custom na library ng filter ng password: Mga Filter ng Password
PassFiltEx: PassFiltEx
Link ng paglabas: Pinakabagong release
Mga listahan ng password:
Mga listahan ni DanielMiessler: Link.
Wordlist mula sa weakpass.com: Link.
Wordlist mula sa berzerk0 repo: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

Pinagmulan: www.habr.com

Magdagdag ng komento