Metody ochrany proti mimikatz v doméně Windows

Koncem června 2017 si IT komunita vzpomněla na masivní infekci mnoha největších společností a vládních agentur v Rusku, na Ukrajině a v dalších zemích novým virem ransomware Petya (NotPetya). Ve většině případů se Petya po proniknutí do podnikové sítě okamžitě rozšířila do všech počítačů a doménových serverů, což ochromilo až 70–100% celé infrastruktury Windows. Přestože jednou z metod distribuce Petya mezi počítači v síti bylo využití exploatace EternalBlue (jako tomu bylo v případě WannaCry), nebyl to hlavní distribuční kanál ransomware. Na rozdíl od WCry, který byl distribuován výhradně kvůli zranitelnostem v SMBv1, byl NotPetya původně uvězněn za podnikové sítě. Poté, co byl systém infikován, obdržel šifrovač využívající veřejnou utilitu Mimikatz přihlašovací údaje (hesla, hash) uživatelů počítačů a použil je pro další distribuci v síti pomocí WMI a PsExec, až do úplné kontroly nad doménou. V souladu s tím pro ochranu všech systémů nestačilo nainstalovat aktualizaci MS17-010.

V tomto článku si probereme základní metody ochrany systémů Windows v doméně Active Directory před útoky pomocí nástrojů typu Mimikatz..

Nástroj Mimikatz pomocí modulu sekurlsa umožňuje extrahovat hesla a hashe oprávněných uživatelů uložených v systémové procesní paměti LSASS.EXE (Služba subsystému místní zabezpečení ) Už jsme měli článek s příkladem použití mimikatz k získání hesel uživatelů v čistém textu (od WDigest, LiveSSP a SSP).

Obsah:

  • Zabraňte ladění
  • Zakázání WDigestu
  • Ochrana LSA před moduly třetích stran
  • Zakázání LM a NTLM
  • Zákaz používání reverzibilního šifrování
  • Používání skupiny chráněných uživatelů
  • Nepoužívejte uložená hesla
  • Odepřít mezipaměť pověření
  • Credential strážce
  • Závěry

Zabraňte ladění

Článek z výše uvedeného odkazu ukazuje, jak použití ladicího oprávnění umožňuje Mimikatz získat přístup k procesu systému LSASS a extrahovat z něj hesla..

Ve výchozím nastavení jsou oprávnění režimu ladění udělena místní skupině správců (BUILTIN \ Administrators). Ačkoli v 99% případů toto oprávnění administrátoři absolutně nevyužívají (obvykle to potřebují systémoví programátoři), je z bezpečnostních důvodů možnost použití oprávnění SeDebugPrivilege lépe. To se provádí prostřednictvím skupinových zásad (místní nebo doménové). Přejděte do sekce Konfigurace počítače -> Nastavení systému Windows -> Nastavení zabezpečení -> Místní zásady -> Přiřazení uživatelských práv a povolit politiku Ladicí program. V něm musíte přidat doménovou skupinu uživatelů, kteří mohou potřebovat ladicí práva (obvykle vývojáři), nebo nechat tuto skupinu prázdnou, aby nikdo neměl toto právo.

Nyní, pokud se pokusíte získat ladění prostřednictvím mimikatz, objeví se chyba:

EROOR kuhl_m_privilege_simple; RtlAdjustPrivilege (20) c0000061

Poznámka:. Omezení uložená touto politikou však lze snadno obejít - souvislost.

Zakázání WDigestu

Protokol WDigest se objevil v systému Windows XP a byl používán k provádění ověřování HTTP Digest Authentication (HTTP Digest Authentication), jehož funkcí bylo používat uživatelské heslo v jasné formě. Systémy Windows 8.1 a Server 2012 R2 přidaly možnost zcela zakázat ukládání hesel ve formě prostého textu v programu LSASS. Chcete-li zakázat ukládání WDigestu do paměti, v těchto operačních systémech ve větvi registru HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ WDigest již je pojmenován parametr DWORD32 PoužijteLogonCredential a hodnota 0.

Pokud potřebujete úplně zakázat metodu ověřování WDigest, ve stejné větvi (HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ WDigest) nastavte hodnotu klíče Vyjednat v 0.

Chcete-li tuto funkci podporovat v systémech Windows 7, 8 a Windows Server 2008 R2 / 2012, musíte nainstalovat speciální aktualizaci - KB2871997 a poté nastavit stejné klíče registru. V prostředí domény je nastavení registru nejsnadněji distribuovatelné pomocí zásad skupiny.

Tip. Pokud odmítnete uložit WDigest do paměti, v první řadě stojí za to vyzkoušet správnost autorizace uživatelů a aplikací na serverech IIS..

Ochrana LSA před moduly třetích stran

Systémy Windows 8.1 a Windows Server 2012 R2 zavedly schopnost aktivovat ochranu LSA, která chrání paměť LSA a zabraňuje možnosti připojení k ní před nezabezpečenými procesy. Chcete-li tuto ochranu povolit, musíte ve větvi registru HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ LSA vytvořit parametr RunAsPPL s hodnotou 1.

Po použití tohoto parametru útočník nebude mít přístup do paměti LSA a mimikatz vydá chybu s příkazem securlsa :: logonpassword

ERROR kuhl_m_securlsa_acquireLSA: Handle on memory (0x00000005).

Zakázání LM a NTLM

Zastaralý ověřovací protokol LM a v důsledku toho i ukládání hashů LM musí být zakázán pomocí zásad skupiny Network Security: Neskladujte hodnotu hash LAN Manager při další změně hesla (na výchozí úrovni zásad domény).

Dále je třeba ukončit používání alespoň protokolu NTLMv1 (zásady v části Konfigurace počítače -> Zásady -> Nastavení systému Windows -> Nastavení zabezpečení -> Místní zásady -> Možnosti zabezpečení  -  Zabezpečení sítě: Omezte NTLM: ověřování NTLM v této doméně), a jako maximum a NTLMv2

A pokud je odmítnutí NTLMv1 obvykle bezbolestné, bude muset odmítnutí NTLMv2 tvrdě pracovat. Ve velkých infrastrukturách se zpravidla dostávají do scénáře maximálního omezení využití NTLMv2. I.e. pokud je to možné, měla by být použita autentizace Kerberos (zpravidla bude vyžadována další doba pro konfiguraci autentizace Kerberos na IIS a SQL) a na zbývajících systémech - NTLMv2.

Zákaz používání reverzibilního šifrování

Mělo by být výslovně zakázáno ukládat uživatelská hesla v AD v textové podobě. Chcete-li to provést, povolte zásady domény Uložte heslo pomocí reverzibilního šifrování pro všechny uživatele v doméně v části Konfigurace počítače -> Nastavení systému Windows -> Nastavení zabezpečení -> Zásady účtů -> Zásady hesla, nastavení jeho hodnoty na Zakázáno.

Používání skupiny chráněných uživatelů

Při použití funkční úrovně domény Windows Server 2012 R2 je možné k ochraně privilegovaných uživatelů použít speciální chráněnou skupinu Chránení uživatelé. Zejména jsou tyto účty chráněny před ohrožením kvůli skutečnosti, že členové této skupiny se mohou přihlásit pouze přes Kerberos (bez NTLM, WDigest a CredSSP) atd. (podrobnosti o odkazu výše). Je vhodné přidat do této skupiny účty správců domén, serverů atd. Tato funkce funguje na serverech a bude fungovat na Windows Server 2012 R2 (pro Windows Server 2008 R2 je třeba nainstalovat další výše uvedenou aktualizaci) KB2871997)

Nepoužívejte uložená hesla

Můžete zabránit uživatelům domény v ukládání jejich hesel pro přístup k síťovým prostředkům ve Správci pověření.

Chcete-li to provést, povolte zásadu Přístup k síti: Nepovolujte ukládání hesel a přihlašovacích údajů pro síťové ověřování  v části Konfigurace počítače -> Nastavení systému Windows -> Nastavení zabezpečení -> Místní zásady -> Možnosti zabezpečení.

<Poznámka:. Upozorňujeme, že použití uložených hesel v úlohách plánovače bude rovněž zakázáno..

Odepřít mezipaměť pověření

Jednou z funkcí mimikatů je získání hash uživatelských hesel z větev registru HKEY_LOCAL_MACHINE \ SECURITY \ Cache, do kterého jsou uloženy hesla hashe posledních 10 (ve výchozím nastavení) uživatelů domény, kteří se přihlásili. Tyto hash lze obvykle použít k autorizaci uživatelů v systému, když není řadič domény k dispozici.

Je vhodné zakázat použití uchovávání dat v mezipaměti povolením politiky Interaktivní Přihlášení: Číslo z předchozí přihlášení do mezipaměť (v případ doména ovladač je ne k dispozici) v části Konfigurace počítače -> Nastavení systému Windows -> Místní zásady -> Možnosti zabezpečení, změňte hodnotu jeho parametru na 0.

Kromě toho, aby se urychlilo čištění paměti procesu lsass z uživatelských účtů, které relaci dokončily, musíte ve větvi HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa musíte vytvořit klíč DWORD s názvem TokenLeakDetectDelaySecs a hodnotu 30. I.e. paměť bude vymazána 30 sekund po logu uživatele. Ve Windows 7, 8 / Server 2008R2, 2012, aby tento klíč fungoval, musíte nainstalovat dříve uvedenou aktualizaci KB2871997.

Credential strážce

V systému Windows 10 Enterprise, Windows Server 2016 byla přidána nová součást Credential Guard, která izoluje a chrání proces systému LSASS před neoprávněným přístupem. Podrobnosti zde.

Závěry

Výše diskutovaná opatření výrazně sníží schopnosti mimikatz a podobných utilit pro získávání hesel a hashů administrátorů z procesu LSASS a registru. V každém případě musí být při rozhodování o provádění těchto politik a metod zavedeny ve fázích s povinným testováním..

V dalším článku budeme hovořit o osvědčených postupech pro zlepšení zabezpečení sítě Windows omezením používání účtů správce, což by na technické a organizační úrovni mělo zlepšit ochranu domény Windows před takovými útoky. Zůstaňte naladěni!