www.SAMURAJ-cz.com 

02.05.2024 Zikmund Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Auditování bezpečnostních událostí Windows v doméně

Středa, 06.06.2018 13:52 | Samuraj - Petr Bouška |
Na počítačích, serverech a obzvláště doménových řadičích může nastávat řada bezpečnostních událostí, které bychom měli hlídat a kontrolovat. Ve Windows využíváme logy událostí (Event Log) kam se zaznamenává mnoho situací. Pro různé události si můžeme nastavit, zda a kdy je chceme do logu ukládat. To řešíme nastavením auditování (Security Auditing). To ale samo nestačí. Dále je potřeba auditní log událostí nějak automatizovaně zpracovávat a vybírat informace, které jsou pro nás důležité, a ty si někde zobrazovat či zasílat.

Tento článek je aktualizací a rozšířením staršího Auditování AD DS objektů ve Windows Server 2008.

Celá tato oblast je velice rozsáhlá a složitá. Pro každý typ událostí bychom potřebovali detailně nastudovat fungování a podle toho si připravit zpracování. Přitom řada událostí je pro bezpečnost kritická a měli bychom je sledovat (ukládají nám to třeba i určité normy a doporučení, jako je ISO 27001, zákon o kybernetické bezpečnosti, apod). Škoda, že Microsoft nemá připravené nějaké obecné řešení, které by zpracovávalo nejběžnější oblasti. Existují různé placené produkty třetích stran a může se vyplatit do nich investovat, než si vše řešit vlastními silami a zdarma nástroji (jak popisuje tento článek).

V článku se podíváme obecně na nastavení auditování a jednotlivé kategorie bezpečnostních událostí. Popíšeme si různé možnosti na prohlížení a automatické zpracování logů. V druhé polovině se podíváme na nějaké události (oblasti) z praxe, které je dobré sledovat. Vybrané oblasti a události obsahují můj popis, který nemusí být optimální, řada věcí se může dát řešit lépe. Celkově se budeme věnovat novějším verzím Windows a zaměříme se na události, které se týkají AD DS na doménových řadičích.

Ve Windows Server 2008 R2 (a souvisejících Windows 7) došlo ke změně v možnostech nastavení auditování a také v číslech událostí (Event ID), která se zapisují do logu (přesněji došlo ke změně s Windows Server 2008 a Vista). Od té doby je vše víceméně stejné, pouze se doplňují větší detaily či nové podkategorie (myšleny nové verze Windows Server 2012 a 2016).

Windows security auditing in domain

Celý proces spočívá v několika krocích:

V druhé části článku jsou příklady praktických situací, jedná se o

Zapnutí (nastavení) auditování pomocí Group Policy

V základním nastavení se ve Windows logují pouze určité operace a je proto dobré nastavit Audit Policy, kde si zvolíme podrobnější kategorie pro sledování. Zvážit musíme, co chceme sledovat na pracovních stanicích, co na serverech a co na doménových řadičích. Pokud bychom zapnuli logování všeho, tak se může stát, že server úplně přetížíme, protože může jít o ohromné množství událostí každou vteřinu. Složité je také to, že běžná operace, jako je třeba přihlášení uživatele nebo vytvoření účtu počítače v AD DS, se skládá z několika dílčích událostí. Takže i zpracování logů je velmi náročné.

Pomocí Group Policy máme dvě možnosti, jak zvolit kategorie událostí, které chceme auditovat:

  • Audit Policy - základní politiky pro bezpečnostní audit (Basic Security Audit Policies), původní možnost, lze nastavit pouze celé kategorie a u nich volit úspěšnou (Success) nebo neúspěšnou (Failure) událost
  • Advanced Audit Policy - rozšířené politiky pro bezpečnostní audit (Advanced Security Audit Policies), k dispozici od Windows 7, v každé kategorii můžeme volit určité podkategorie (chování) a nastavovat další podrobnosti, opět logujeme úspěšnou (Success) nebo neúspěšnou (Failure) událost

Oficiální informace Security Auditing Overview, Windows 10 Security auditing, Windows Server 2008 R2 Security Auditing.

Konfiguraci skupinových politik provedeme klasicky pomocí Group Policy Management a Group Policy Management Editor. Vytvoříme nové GPO či využijeme existující, a linkujeme podle toho na jaké počítače cílíme. Pro doménové události na DC můžeme využít Default Domain Controllers Policy, pro nastavení v rámci celé domény Default Domain Policy. Případně můžeme nastavit pomocí lokální politiky. Vhodné je mířit nastavení pouze tam, kde jej chceme využít.

U kategorie, kterou chceme sledovat, nastavíme Define these policy settings a zvolíme, jestli chceme logovat úspěšné (Success) nebo neúspěšné (Failure) události či obě. U podkategorií obdobně nastavíme Configure the following audit events a zvolíme Success nebo Failure nebo oboje. Události se následně ukládají do Windows Security logu.

Basic Security Audit Policies

Pozn.: Pouze pro referenci, dále se budeme věnovat pouze rozšířeným auditovacím politikám.

Nastavení se nachází v cestě Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Audit Policy/

Basic Security Audit Policies

K dispozici jsou položky

  • Audit account logon events
  • Audit account management
  • Audit directory service access
  • Audit logon events
  • Audit object access
  • Audit policy change
  • Audit privilege use
  • Audit process tracking
  • Audit system events

Advanced Security Audit Policies

Nastavení se nachází v cestě Computer Configuration/Policies/Windows Settings/Security Settings/Advanced Audit Policy Configuration/Audit Policy/

Advanced Security Audit Policies

V dané cestě otevíráme hlavní kategorie (které korespondují se základními politikami) a pod nimi nastavujeme podkategorie. Seznam položek níže by měl odpovídat Windows 10 (v průběhu času bylo doplněno pár nových podkategorií).

  • Account Logon
    • Audit Credential Validation
    • Audit Kerberos Authentication Service
    • Audit Kerberos Service Ticket Operations
    • Audit Other Account Logon Events
  • Account Management
    • Audit Application Group Management
    • Audit Computer Account Management
    • Audit Distribution Group Management
    • Audit Other Account Management Events
    • Audit Security Group Management
    • Audit User Account Management
  • Detailed Tracking
    • Audit DPAPI Activity
    • Audit Process Creation
    • Audit Process Termination
    • Audit RPC Events
    • Audit Plug and Play Events
    • Audit Token Right Adjusted Events
  • DS Access
    • Audit Detailed Directory Service Replication
    • Audit Directory Service Access
    • Audit Directory Service Changes
    • Audit Directory Service Replication
  • Logon/Logoff
    • Audit Account Lockout
    • Audit IPsec Extended Mode
    • Audit IPsec Main Mode
    • Audit IPsec Quick Mode
    • Audit Logoff
    • Audit Logon
    • Audit Network Policy Server
    • Audit Other Logon/Logoff Events
    • Audit Special Logon
    • Audit User / Device Claims
    • Audit Group Membership
  • Object Access
    • Audit Application Generated
    • Audit Certification Services
    • Audit Detailed File Share
    • Audit File Share
    • Audit File System
    • Audit Filtering Platform Connection
    • Audit Filtering Platform Packet Drop
    • Audit Handle Manipulation
    • Audit Kernel Object
    • Audit Other Object Access Events
    • Audit Registry
    • Audit SAM
    • Audit Removable Storage
    • Audit Central Policy Staging
  • Policy Change
    • Audit Audit Policy Change
    • Audit Authentication Policy Change
    • Audit Authorization Policy Change
    • Audit Filtering Platform Policy Change
    • Audit MPSSVC Rule-Level Policy Change
    • Audit Other Policy Change Events
  • Privilege Use
    • Audit Non-Sensitive Privilege Use
    • Audit Sensitive Privilege Use
    • Audit Other Privilege Use Events
  • System
    • Audit IPsec Driver
    • Audit Other System Events
    • Audit Security State Change
    • Audit Security System Extension
    • Audit System Integrity
  • Global Object Access Auditing
    • File System (Global Object Access Auditing)
    • Registry (Global Object Access Auditing)

Vynucení použití Advanced Security Audit Policies

Pokud chceme používat Advanced Security Audit Policies místo Basic, tak Microsoft uvádí, že máme zapnout politiku Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings v cestě Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/ Security Options

Je to z důvodu toho, že Basic politika má přednost, pokud by byla nastavena, tak by se přepisovala Advanced nastavení.

Nástroj AuditPol

Od Windows Server 2008 je k dispozici řádkový příkaz auditpol.exe. A před příchodem Windows Server 2008 R2 to byla jediná možnost, jak nastavit Advanced Security Audit Policies. Dnes asi spíš využijeme Group Policy, ale přesto se tento příkaz hodí, protože nám na daném operačním systému vypíše, jaké podkategorie jsou k dispozici. Navíc si můžeme zobrazit aktuální nastavení (to by mělo obsahovat defaultně zapnuté položky a to co řídíme politikami či jinak).

auditpol /get /category:*

Nastavení Event Log

Když nastavujeme audit vybraných událostí, tak je dobré nastavit parametry systémových logů událostí (nyní nás zajímá Security log). Ve skupinových politikách se nastavení nachází v cestě

Computer Configuration/Policies/Windows Settings/Security Settings/Event Log

Vhodné je nastavit Maximum security log size na nějakou větší hodnotu (pro doménový řadič) dle uvážení, třeba 1 GB (1048576). A položku Retention method for security log na hodnotu Overwrite events as needed.

Logované události

Pomocí politik jsme nastavili auditování určitých kategorií a podkategorií, které nás zajímají. Pro každou podkategorii se do logů zaznamenává celá řada jednotlivých událostí. Před Windows Server 2008 se jako Event ID používala čísla se třemi číslicemi (třeba přihlášení účtu událost 528). Od Windows Server 2008 došlo k přečíslování, které se používá dosud, a události mají čtyři číslice (třeba přihlášení účtu událost 4624). Tomuto odpovídají všechny informace na webu i moje praktické testy. Zajímává je pak oficiální stránka Audit logon events, kde jsou pro Windows 10 uvedeny staré události. Korektní je asi seznam, který se nachází kousek níže v menu Audit Logon.

Dát dohromady seznam všech událostí k různým kategoriím, znamená docela složité procházení dokumentace Security auditing (i když fungoje pěkné vyhledávání dle EventID). Nyní se mi povedlo nalézt oficiální dokument, který obsahuje seznam všech kategorií z Advanced Security Audit Policies a k nim jednotlivé události s podrobným popisem. Dokument je možno stáhnout Windows 10 and Windows Server 2016 security auditing and monitoring reference.

Zpracování událostí

Zapnuli jsme logování určitých kategorií. Určili jsme si, jaké jednotlivé události nás zajímají. Teď je potřeba provádět nějaké automatické zpracování, protože ruční procházení všech logů je opravdu nereálné.

Pokud máme více doménových řadičů (obecně serverů), tak se hodí dostat všechny zajímavé logy na jedno místo a tam je centralizovaně zpracovávat. Možností je řada, některé jsou zdarma, jiné placené. Můžeme využít nativní vlastnosti Windows Sevreru, využít Syslog server nebo jiný nástroj kategorie SEM (Security Event Management) či SIEM (Security Information and Event Management).

Centralizovaný log událostí ve Windows

Již od Windows Server 2008 a Windows Vista můžeme jeden stroj nastavit jako Windows Event Collector, který bude shromažďovat události. A na dalších nastavit přeposílání vybraných událostí na kolektor pomocí Windows Event Log Forwarding (podporováno již od Windows Server 2003 SP 1 a Windows XP SP 2). Máme k dispozici dvě metody, jak dostat události na centrální stroj:

  • Collector initiated - kolektor se ptá zdrojových počítačů, využívá WinRM
  • Source initiated - zdrojové počítače posílají události na kolektor, když je třeba

Více informací

Syslog server

Syslog je starý standard pro logování zpráv, hojně využívaný v Linuxu. Má definovaný formát zpráv a přenos (využívá UDP port 514 či TCP port 6514). Běžně bývá v aplikacích a zařízeních podpora odesílat události na nějaký Syslog sever, ale ve Windows taková podpora není. Můžeme však nalézt nástroje třetích stran, které nám toto zajistí. Příkladem je Snare Agent, který byl dříve Open Source a stále můžeme získat starší verzi zdarma. Relativně podrobně můžeme nastavovat, jaké události s jakými parametry chceme odesílat na Syslog server.

Zobrazení logu událostí - Event Viewer

Dostali jsme logy na jedno místo (nebo máme pouze jeden server a jsme přímo na něm). Když si chceme informace zobrazit, tak nejjednodušší je použít Event Viewer. Zde můžeme jednotlivé záznamy zobrazovat, filtrovat a prohledávat. Můžeme si určité/všechny záznamy exportovat a i jinde importovat. Můžeme také nastavit naplánovanou úlohu (Scheduled Task), která reaguje na uložení určité události a například spustí nějaký skript (nebo odešle email, což nyní MS označuje jako zastaralé - deprecated).

Bezpečnostní logy se v Event Viewer nachází pod Windows Logs - Security, pokud využíváme centralizovaný kolektor, tak Forwarded Events. Případně můžeme vytvořit definovaný pohled do logů pod Custom Views. Zobrazené záznamy v logu si můžeme detailně filtrovat pomocí volby Filter Current Log.

Event Viewer Filter

Ve filtru můžeme nastavit řadu parametrů a třeba zobrazit pouze určité Event ID. Pokud si jako Event sources nastavíme Microsoft Windows security audting, tak můžeme v položce Task category vybírat jednotlivé podkategorie, které jsme nastavili v Advanced Security Audit Policies. Zobrazují se nám pak všechny události, které spadají k dané kategorii.

V tomto jednoduchém filtru nám nefunguje omezení pomocí User nebo Computer. Pokud chceme zobrazit pouze události, které se týkají určitého uživatele, tak musíme definovat filtr pomocí XML. Určité informace třeba Advanced XML filtering in the Windows Event Viewer.

Zpracování logů pomocí PowerShellu

Pokud chceme logy zpracovávat nějak automatizovaně, tak je vhodnější využít nějaký skript. V Microsoft prostředí máme PowerShell a cmdlet Get-EventLog nebo novější (ale ne vždy vhodný) Get-WinEvent. To nám umožní například každou hodinu spustit skript, který zpracuje logy za poslední hodinu. Detailně vyfiltruje události, které nás zajímají, parsuje zprávu a do výstupu vloží pouze zajímavé údaje v přehledné formě, a výsledek třeba odešle na email.

Pozn.: Zpracování logů můžeme volat i pro vzdálené servery, takže nemusí být potřeba kopírovat logy na centrální místo.

Níže je pár jednoduchý příkladů na použití Get-EventLog. První příklad vypisuje detailně poslední událost ze Security logu, kde se v textu vyskytuje slovo bouska.

Get-EventLog -Newest 1 -LogName "Security" -Message "*bouska*" | FL *

Výpis událostí s Event ID 4624 za poslední hodinu, pokud je v textu jméno bouska.

Get-EventLog -LogName "Security" -InstanceId 4624 -After (Get-Date).AddHours(-1) -Message "*bouska*" | FT * -AutoSize

Ve výstupu máme různé atributy, důležitý je EventID s číslem události (může odpovídat InstanceId), Message, což je obsah dané události a ReplacementStrings, který obsahuje pole proměnných atributů z události (tedy parsovná Message). Následující příkaz vybírá pouze určité údaje z posledního záznamu v Security logu.

Get-EventLog -Newest 1 -LogName "Security" -InstanceId 4624 | Select-Object TimeWritten, MachineName, EventID,
 @{Name="EventName";Expression={($_.Message -split '\n')[0]}}, @{Name="AccoutName";Expression={$_.ReplacementStrings[5]}},
 @{Name="WorkstationName";Expression={$_.ReplacementStrings[11]}}, @{Name="SourceNetworkAddress";Expression=
 {$_.ReplacementStrings[18]}}

Zpracování logů v Linux Syslogu

Linuxáři rádi využívají Syslog server kam můžeme posílat i události z Windows. Syslog může vybrané události ukládat do textového souboru ve standardním formátu, kde je každá událost na jednom řádku a má přesně daný formát.  Nalezneme zde informace o čase události, zdroji (počítač, proces), ID zprávy (Event ID), stupeň závažnosti a vlastní obsah zprávy. Tento textový soubor můžeme velmi jednoduše zpracovávat skriptem. Buď využijeme regulární výrazy, nebo jednoduše pozici slov na řádku (oddělovač mezera). Pro parsování můžeme například použít skriptovací jazyk AWK pro zpracování textů.

Jednoduchý bash skript může načítat jednotlivé řádky souboru. Páté slovo obsahuje Event ID, takže pro různé události můžeme volat různé funkce, které provedou zpracování a určitou reakci. Ze zprávy vybereme pouze určité informace a nový řádek uložíme do textového souboru. Pak můžeme dočasný soubor projít a seskupit stejné události a pouze k nim uvést počet výskytů. A výsledek poslat na email.

Ukázka kousku kódu využívajícího AWK, který jendoduše zpracovává událost 4625:

	FA_LINE=$@
	ID=`echo $FA_LINE | awk '{print $5}'`
	case "$ID" in
		'4625')
		TEXT=`echo $FA_LINE | awk '{ print $1," ",$2," ",$3," | ",$56," Logon Session "
			if($66 == "0xc0000234") print "Locked"
			if($66 == "0xc000006d") print "Bad User or Password"
			print " | ",$4," ",$5," ",$24," ",$25," ",$26," ",$27," ",$28," ",$29," ",$54," ",$55," ",$56," "
			print $65," ",$66," ",$67," ",$68," ",$69;" ",$82," ",$83," ",$84," ",$85," ",$86," ",$87," ",$88
		}'`
	esac

Speciální aplikace

Existují také různé specializované aplikace, které bezpečnostní logy zpracovávají. Většinou jsou placené a zaměřené na určitou oblast. Mohou si klasicky stahovat logy událostí z různých serverů nebo používají vlastní agenty. Události analyzují a ukládají do databáze, takže pak nabízí přehledné rozhraní pro vyhledání určitých operací, třeba historii přihlašování uživatelů. Dále můžeme nastavit alerty, které nás upozorní na určité události.

Sám jsem nic nezkoušel, ale narazil jsem třeba na tyto aplikace:

Praktické příklady sledovaní událostí

Obecně máme asi tři kategorie událostí, které chceme sledovat:

  • běžné události, kdy se hodí mít uloženu historii - třeba, že si uživatel zamknul účet
  • upozornění na nějakou privilegovanou operaci - byl vytvořen nový účet v AD DS, někde se přihlásil účet doménového admina - většinou se jedná o legální operaci, ale je dobré být na ni upozorněn
  • chyby, problémy a narušení - dochází k mnoha pokusům o přihlášení chybnými údaji (většinou se nám zamkne účet), selhání systémových služeb

Jakým způsobem vybrané události sledovat, máme opět řadu možností. Nejjednodušší je posílat reporty do emailu, kde nám po určitou dobu zůstane i historie. Lepší je ukládat data do databáze a mít webové rozhraní pro vyhledávání a definované reporty a statistiky. A jen důležitá upozornění zasílat na email/SMS. Pokud chceme všechny vyfiltrované informace kontrolovat (třeba v emailu), tak je třeba posílat v rozumně kompaktní a přehledné formě, abychom jedním pohledem přehlédli, co se dělo.

Pozn.: Celkově je velmi těžké nalézt, které kategorie a k nim které události, je důležité analyzovat pro určitou činnost. Nenašel jsem žádné rozumné články, které by to popisovaly (dokument Windows 10 and Windows Server 2016 security auditing and monitoring reference obsahuje u každé události doporučení, ale to se nedá projít). Dále jsou nějaké moje návrhy, které určitě nebudou dokonalé. Uvítám Vaše zkušenosti do komentářů.

Vytváření, modifikace a mazání objektů v AD DS

V běžné firmě se vytváření nebo mazání objektů v AD DS neděje tak často, tak je dobré být upozorněn, když k něčemu takovému dojde. V extrémním případě nás to upozorní na nekalou činnost, jinak máme alespoň přehled, pokud AD DS spravuje více adminů.

Pro tyto účely máme k dispozici dvě kategorie politik (dokumentace Advanced security audit policy settings):

  • Account Management - můžeme použít ke sledování změn na uživatelských a počítačových účtech a skupinách, věci jako vytváření, mazání, zamčení, reset hesla, na doménovém řadiči se věci týkají doménových účtů, na členském počítači jde o lokální účty
  • Directory Service Access - poskytuje detailní audit změn na objektech v AD DS (Active Directory Domain Services) a také přístupu k atributům, sleduje i OU, aplikuje se pouze na DC

Sledování účtů a skupin - Account Management

Kategorie Account Management obsahuje následující podkategorie a v nich události:

  • Audit User Account Management - správa uživatelských účtů, změny hesel, atd.
    • Event ID 4720 - A user account was created
    • Event ID 4722 - A user account was enabled
    • Event ID 4723 - An attempt was made to change an account's password
    • Event ID 4724 - An attempt was made to reset an account's password
    • Event ID 4725 - A user account was disabled
    • Event ID 4726 - A user account was deleted
    • Event ID 4738 - A user account was changed
    • Event ID 4740 - A user account was locked out
    • Event ID 4765 - SID History was added to an account
    • Event ID 4766 - An attempt to add SID History to an account failed
    • Event ID 4767 - A user account was unlocked
    • Event ID 4780 - The ACL was set on accounts which are members of administrators groups
    • Event ID 4781 - The name of an account was changed
    • Event ID 4794 - An attempt was made to set the Directory Services Restore Mode
    • Event ID 4798 - A user's local group membership was enumerated
    • Event ID 5376 - Credential Manager credentials were backed up
    • Event ID 5377 - Credential Manager credentials were restored from a backup
  • Audit Computer Account Management - správa počítačových účtů
    • Event ID 4741 - A computer account was created
    • Event ID 4742 - A computer account was changed
    • Event ID 4743 - A computer account was deleted
  • Audit Distribution Group Management - správa distribučních skupin
    • Event ID 4744 - A security-disabled local group was created
    • Event ID 4745 - A security-disabled local group was changed
    • Event ID 4746 - A member was added to a security-disabled local group
    • Event ID 4747 - A member was removed from a security-disabled local group
    • Event ID 4748 - A security-disabled local group was deleted
    • Event ID 4749 - A security-disabled global group was created
    • Event ID 4750 - A security-disabled global group was changed
    • Event ID 4751 - A member was added to a security-disabled global group
    • Event ID 4752 - A member was removed from a security-disabled global group
    • Event ID 4753 - A security-disabled global group was deleted
    • Event ID 4759 - A security-disabled universal group was created
    • Event ID 4760 - A security-disabled universal group was changed
    • Event ID 4761 - A member was added to a security-disabled universal group
    • Event ID 4762 - A member was removed from a security-disabled universal group
    • Event ID 4763 - A security-disabled universal group was deleted
  • Audit Security Group Management - správa bezpečnostních skupin
    • Event ID 4727 - A security-enabled global group was created
    • Event ID 4728 - A member was added to a security-enabled global group
    • Event ID 4729 - A member was removed from a security-enabled global group
    • Event ID 4730 - A security-enabled global group was deleted
    • Event ID 4731 - A security-enabled local group was created
    • Event ID 4732 - A member was added to a security-enabled local group
    • Event ID 4733 - A member was removed from a security-enabled local group
    • Event ID 4734 - A security-enabled local group was deleted
    • Event ID 4735 - A security-enabled local group was changed
    • Event ID 4737 - A security-enabled global group was changed
    • Event ID 4754 - A security-enabled universal group was created
    • Event ID 4755 - A security-enabled universal group was changed
    • Event ID 4756 - A member was added to a security-enabled universal group
    • Event ID 4757 - A member was removed from a security-enabled universal group
    • Event ID 4758 - A security-enabled universal group was deleted
    • Event ID 4764 - A group's type was changed
    • Event ID 4799 - A security-enabled local group membership was enumerated
  • Audit Other Account Management Events - speciální přístup k uživatelským účtům
    • Event ID 4782 - The password hash for an account was accessed
    • Event ID 4793 - The Password Policy Checking API was called
  • Audit Application Group Management - využívá Authorization Manager, v praxi asi nepotkáme
    • Event ID 4783 - A basic application group was created
    • Event ID 4784 - A basic application group was changed
    • Event ID 4785 - A member was added to a basic application group
    • Event ID 4786 - A member was removed from a basic application group
    • Event ID 4787 - A non-member was added to a basic application group
    • Event ID 4788 - A non-member was removed from a basic application group
    • Event ID 4789 - A basic application group was deleted
    • Event ID 4790 - An LDAP query group was created
    • Event ID 4791 - An LDAP query group was changed
    • Event ID 4792 - An LDAP query group was deleted

Z tohoto seznamu si musíme vybrat události, které nás zajímají. Nejlepší je si vypsat reálné záznamy a podívat se, jak vypadá jejich obsah. Pokud budeme například sledovat událost 4742 (A computer account was changed), tak zjistíme, že ve většině případů jde o změnu hesla počítače. Pokud si události ukládáme někam do DB a máme rozhraní pro filtrování, tak budeme určitě ukládat více záznamů. Pokud si pouze posíláme na email (a nemáme slušně inteligentní parsování), tak vybereme méně událostí, abychom ve zprávách měli přehled.

Příklad výběru skupiny událostí:

  • Uživatelé (User)
    • Event ID 4720 - A user account was created
    • Event ID 4722 - A user account was enabled
    • Event ID 4725 - A user account was disabled
    • Event ID 4726 - A user account was deleted
    • Event ID 4740 - A user account was locked out
    • Event ID 4767 - A user account was unlocked
    • Event ID 4781 - The name of an account was changed
  • Počítače (Computer)
    • Event ID 4741 - A computer account was created
    • Event ID 4743 - A computer account was deleted
  • Distribuční skupiny (Distribution Group - Local, Global, Universal)
    • Event ID 4744 - A security-disabled local group was created
    • Event ID 4746 - A member was added to a security-disabled local group
    • Event ID 4747 - A member was removed from a security-disabled local group
    • Event ID 4748 - A security-disabled local group was deleted
    • Event ID 4749 - A security-disabled global group was created
    • Event ID 4751 - A member was added to a security-disabled global group
    • Event ID 4752 - A member was removed from a security-disabled global group
    • Event ID 4753 - A security-disabled global group was deleted
    • Event ID 4759 - A security-disabled universal group was created
    • Event ID 4761 - A member was added to a security-disabled universal group
    • Event ID 4762 - A member was removed from a security-disabled universal group
    • Event ID 4763 - A security-disabled universal group was deleted
  • Bezpečnostní skupiny (Security Group - Local, Global, Universal)
    • Event ID 4727 - A security-enabled global group was created
    • Event ID 4728 - A member was added to a security-enabled global group
    • Event ID 4729 - A member was removed from a security-enabled global group
    • Event ID 4730 - A security-enabled global group was deleted
    • Event ID 4731 - A security-enabled local group was created
    • Event ID 4732 - A member was added to a security-enabled local group
    • Event ID 4733 - A member was removed from a security-enabled local group
    • Event ID 4734 - A security-enabled local group was deleted
    • Event ID 4754 - A security-enabled universal group was created
    • Event ID 4756 - A member was added to a security-enabled universal group
    • Event ID 4757 - A member was removed from a security-enabled universal group
    • Event ID 4758 - A security-enabled universal group was deleted
    • Event ID 4764 - A group's type was changed

Všude sledujeme událost typu Success. Pouze pro 4723 a 4724 bychom mohli sledovat Failure.

Soupis vybraných událostí 4720, 4722, 4725, 4726, 4740, 4767, 4781, 4741, 4743, 4744, 4746, 4747, 4748, 4749, 4751, 4752, 4753, 4759, 4761, 4762, 4763, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4754, 4756, 4757, 4758, 4764.

Další krok je parsování výstupu jednotlivých událostí. Nejlepší je si vypsat všechny jednotlivé události a označit si části textu, které nás zajímají. Můžeme zjistit, že jsou skupiny zpráv, které mají podobnou strukturu, takže je můžeme parsovat najednou. Příklad dvou událostí níže.

May 16 16:01:14 pdc.firma.local 4720 MSWinEventLog 4 Security 5729 Wed May 16 16:01:14 2018 4720 Microsoft-Windows-
Security-Auditing Unknown User N/A Success Audit pdc.firma.local 13824 A user account was created. Subject: Security
 ID: S-1-5-21-2200562112-1594429334-7036 Account Name: SERVER$ Account Domain: FIRMA Logon ID: 0x5dc3e7 New Account:
 Security ID: S-1-5-21-2200562112--1594429334-14222 Account Name: bouska Account Domain: FIRMA Attributes: SAM
 Account Name: bouska Display Name: Bouška Petr User Principal Name: bouska@firma.local Home Directory: - Home Drive:
 - Script Path: - Profile Path: - User Workstations: - Password Last Set: %%1794 Account Expires: %%1794 Primary Group
 ID: 513 Allowed To Delegate To: - Old UAC Value: 0x0 New UAC Value: 0x15 User Account Control: %%2080 %%2082 %%2084
 User Parameters: - SID History: - Logon Hours: %%1793 Additional Information: Privileges -

May 16 16:01:14 pdc.firma.local 4720 A user account was created. Account Name: SERVER$ Account Name: bouska

May 14 01:30:40 pdc.firma.local 4740 MSWinEventLog 4 Security 26515 Mon May 14 01:30:39 2018 4740 Microsoft-Windows-
Security-Auditing Unknown User N/A Success Audit pdc.firma.local 13824 A user account was locked out. Subject: Security
 ID: S-1-5-18 Account Name: PDC$ Account Domain: FIRMA Logon ID: 0x3e7 Account That Was Locked Out: Security ID:
 S-1-5-21-220052112-3866782066-1594429334-13628 Account Name: bouska Additional Information: Caller Computer Name: SERVER

May 14 01:30:40 pdc.firma.local 4740 A user account was locked out. Account Name: PDC$ Account Name: bouska Caller Computer
 Name: SERVER

Sledování objektů AD DS - DS Access

Kategorie DS Access obsahuje následující podkategorie a v nich události:

  • Audit Directory Service Changes - změny objektu v AD DS
    • Event ID 5136 - A directory service object was modified.
    • Event ID 5137 - A directory service object was created.
    • Event ID 5138 - A directory service object was undeleted.
    • Event ID 5139 - A directory service object was moved.
    • Event ID 5141 - A directory service object was deleted.
  • Audit Directory Service Access - přístup k objektu v AD DS, můžeme sledovat Failure, pokud selže přístup
    • Event ID 4661 - A handle to an object was requested.
    • Event ID 4662 - An operation was performed on an object.
  • Audit Directory Service Replication - začátek a konec replikace mezi DC, běžně se nesleduje
    • Event ID 4932 - Synchronization of a replica of an Active Directory naming context has begun.
    • Event ID 4933 - Synchronization of a replica of an Active Directory naming context has ended.
  • Audit Detailed Directory Service Replication - replikace mezi DC, běžně se nesleduje
    • Event ID 4928 - An Active Directory replica source naming context was established.
    • Event ID 4929 - An Active Directory replica source naming context was removed.
    • Event ID 4930 - An Active Directory replica source naming context was modified.
    • Event ID 4931 - An Active Directory replica destination naming context was modified.
    • Event ID 4934 - Attributes of an Active Directory object were replicated.
    • Event ID 4935 - Replication failure begins.
    • Event ID 4936 - Replication failure ends.
    • Event ID 4937 - A lingering object was removed from a replica.

Když chceme sledovat změny v AD DS pomocí kategorie Audit Directory Service Changes. Tak nestačí zapnout auditování vybraných podkategorií, ale je třeba detailně vybrat operace a objekty v AD DS pomocí nastavení SACL (System Access Control List). Tedy události se generují pouze pro objekty, které mají konfigurované systémové ACL, a pouze při definovaném způsobu přístupu. Případně můžeme blokovat auditování určitých objektů a vlastností úpravou schématu.

  • pomocí Active Directory Users and Computers vybereme objekt (nejčastěji OU nebo celou doménu)
  • klineme pravým tlačítkem a zvolíme Properties
  • přepneme se na záložku Security
  • klikneme na tlačítko Advanced
  • přepneme se na záložku Auditing
Nastavení SACL pro AD DS audit 1

Zde vidíme již nastavené SACL a můžeme přidat nová pravidla:

  • klikneme na tlačítko Add
  • vybereme Principal, pro koho chceme logování provádět, standardně Authenticated Users nebo Everyone, pokud chceme pro všechny
  • typ události Success, Fail nebo All
  • určujeme, na jaké objekty chceme aplikovat (pak se zobrazí pouze možné nabídky), v Applies to, například This object and all descendant objects
  • pod Permissions nastavujeme operace, které chceme sledovat, například Create User objects
  • pod Properties můžeme specifikovat přímo přístup k atributům

Jakou operaci a na co aplikovanou (Apply onto) musíme dobře zvážit. Například vytvoření nového objektu (uživatele) musíme sledovat na nadřazeném objektu (tedy asi OU). Změnu nějaké hodnoty musíme sledovat na daném objektu jako write property.

Nastavení SACL pro AD DS audit 2

Pozn.: Je na našem zvážení, zda chceme sledovat události z Account Management i DS Access. Pro běžný dohled může být přehlednější a dostačující vybrat určité události z Account Management, pokud chceme detailní přehled, tak využijeme oboje.

Neúspěšné a úspěšné pokusy o přihlášení uživatele

Další kategorií událostí, které může být zajímavé sledovat, je přihlašování uživatelů. Může nás zajímat, že se někde přihlásil nějaký privilegovaný účet (třeba doménový administrátor) nebo zaznamenání neplatných pokusů o přihlášení.

Opět máme dvě kategorie auditovacích politik, které můžeme použít:

  • Account Logon - události okolo autentizace, na DC se sledují přihlášení doménovým účtem, jde o situaci, kdy počítač ověřuje credentials účtu (dochází k přihlášení na nějaký počítač v doméně) - Kerberos nebo NTLM
  • Logon/Logoff - události, kdy se uživatel přihlašuje nebo odhlašuje od počítače (interaktivně, síťově, RDP) - vždy při vzniku a ukončení session

Account Logon obsahuje následující podkategorie a v nich události:

  • Audit Credential Validation - NTLM autentizace uživatelů
    • 4774(S): An account was mapped for logon
    • 4775(F): An account could not be mapped for logon
    • 4776(S, F): The computer attempted to validate the credentials for an account
    • 4777(F): The domain controller failed to validate the credentials for an account
  • Audit Kerberos Authentication Service - Kerberos Ticket Granting Tickets (TGT), pouze na DC
    • 4768(S, F): A Kerberos authentication ticket (TGT) was requested
    • 4771(F): Kerberos pre-authentication failed
    • 4772(F): A Kerberos authentication ticket request failed
  • Audit Kerberos Service Ticket Operations - Kerberos Service Tickets
    • 4769(S, F): A Kerberos service ticket was requested
    • 4770(S): A Kerberos service ticket was renewed
    • 4773(F): A Kerberos service ticket request failed
  • Audit Other Account Logon Events - v některé dokumentaci (Windows 10 and Windows Server 2016 Security Auditing and Monitoring Reference.docx) se uvádí, že je určeno pro budoucí použití, něco jiného je uvedeno na webu v Audit Other Logon/Logoff Events - vede to na podkategorii z Logon/Logoff

Logon/Logoff obsahuje následující podkategorie a v nich události:

  • Audit Logon - vytvoření logon sessions na přistupovaném počítači
    • 4624(S): An account was successfully logged on.
    • 4625(F): An account failed to log on.
    • 4648(S): A logon was attempted using explicit credentials.
    • 4675(S): SIDs were filtered.
  • Audit Logoff - odhlášení uživatele (nemusí se vždy zalogovat)
    • 4634(S): An account was logged off.
    • 4647(S): User initiated logoff.
  • Audit Other Logon/Logoff Events - speciální události RDP, zamčení stanice, spořič, WiFi
    • 4649(S): A replay attack was detected.
    • 4778(S): A session was reconnected to a Window Station.
    • 4779(S): A session was disconnected from a Window Station.
    • 4800(S): The workstation was locked.
    • 4801(S): The workstation was unlocked.
    • 4802(S): The screen saver was invoked.
    • 4803(S): The screen saver was dismissed.
    • 5378(F): The requested credentials delegation was disallowed by policy.
    • 5632(S, F): A request was made to authenticate to a wireless network.
    • 5633(S, F): A request was made to authenticate to a wired network.
  • Audit Special Logon - přihlášení za speciální situace
    • 4964(S): Special groups have been assigned to a new logon.
    • 4672(S): Special privileges assigned to new logon.
  • Audit Account Lockout - stejná událost jako v Audit Logon
    • 4625(F): An account failed to log on.
  • Audit User/Device Claims
    • 4626(S): User/Device claims information.
  • Audit Group Membership - klientský počítač zjišťuje uživatelovo členství ve skupině
    • 4627(S): Group membership information.
  • Audit IPsec Extended Mode - Internet Key Exchange protocol (IKE) Extended Mode vyjednání
    • 4978: During Extended Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation.
    • 4979: IPsec Main Mode and Extended Mode security associations were established.
    • 4980: IPsec Main Mode and Extended Mode security associations were established.
    • 4981: IPsec Main Mode and Extended Mode security associations were established.
    • 4982: IPsec Main Mode and Extended Mode security associations were established.
    • 4983: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted.
    • 4984: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted.
  • Audit IPsec Main Mode - Internet Key Exchange protocol (IKE) Main Mode vyjednání
    • 4646: Security ID: %1
    • 4650: An IPsec Main Mode security association was established. Extended Mode was not enabled. Certificate authentication was not used.
    • 4651: An IPsec Main Mode security association was established. Extended Mode was not enabled. A certificate was used for authentication.
    • 4652: An IPsec Main Mode negotiation failed.
    • 4653: An IPsec Main Mode negotiation failed.
    • 4655: An IPsec Main Mode security association ended.
    • 4976: During Main Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation.
    • 5049: An IPsec Security Association was deleted.
    • 5453: An IPsec negotiation with a remote computer failed because the IKE and AuthIP IPsec Keying Modules (IKEEXT) service is not started.
  • Audit IPsec Quick Mode - Internet Key Exchange protocol (IKE) Quick Mode vyjednání
    • 4977: During Quick Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation.
    • 5451: An IPsec Quick Mode security association was established.
    • 5452: An IPsec Quick Mode security association ended.
  • Audit Network Policy Server - RADIUS a NAP
    • 6272: Network Policy Server granted access to a user.
    • 6273: Network Policy Server denied access to a user.
    • 6274: Network Policy Server discarded the request for a user.
    • 6275: Network Policy Server discarded the accounting request for a user.
    • 6276: Network Policy Server quarantined a user.
    • 6277: Network Policy Server granted access to a user but put it on probation because the host did not meet the defined health policy.
    • 6278: Network Policy Server granted full access to a user because the host met the defined health policy.
    • 6279: Network Policy Server locked the user account due to repeated failed authentication attempts.
    • 6280: Network Policy Server unlocked the user account.

Je vidět, že jde o velké množství událostí. Microsoft u spousty z nich uvádí, že je dobré je z bezpečnostního hlediska sledovat. Na druhou stranu se u části uvádí, že nejsou využívány. Když si chceme vybrat pouze specifické události, tak by bylo potřeba detailně porozumět autentizačnímu procesu, a co se kdy zaznamenává. Docela pěkný popis je ve starších článcích Chapter 4 Account Logon Events a Chapter 5 Logon/Logoff Events. Spoustu informací obsahuje oficiální dokumentace jednotlivýc událostí Advanced security audit policy settings.

Přihlášení privilegovaného účtu

Pokud chceme sledovat úspěšné přihlášení určitého uživatele (nezáleží, zda interaktivně, síťově či pomocí RDP), tak by dle dokumentace mělo stačit sledovat Success událost

V obsahu události se nachází řada zajímavých informací. Hodnota Logon Type, určuje způsob přihlášení, nejčatěji 2 - Interactive, 3 - Network, 10 - RemoteInteractive. Protože chceme sledovat pouze určité uživatele, tak filtrujeme záznamy na výskyt jména v položce Account Name. Opět můžeme parsovat pouze určité informace a připadně doplnit (třeba proměnou Logon Type). Příklad:

Apr 27 10:41:12 pdc.firma.local 4624 MSWinEventLog 1 Security 20 Fri Apr 27 10:41:10 2018 4624 Microsoft-Windows-Security-
 Auditing Unknown User N/A Success Audit pdc.firma.local 12544 An account was successfully logged on. Subject: Security
 ID: S-1-5-18 Account Name: PDC$ Account Domain: FIRMA Logon ID: 0x3e7 Logon Type: 3 Impersonation Level: %%1833 New
 Logon: Security ID: S-1-5-21-2200562112-386782066-159442334-1262 Account Name: bouska Account Domain: FIRMA Logon ID:
 0x11d70df Logon GUID: {00000000-0000-0000-0000-000000000000} Process Information: Process ID: 0x4c Process Name:
 C:WindowsSystem32winlogon.exe Network Information: Workstation Name: PDC Source Network Address: 10.0.0.10 Source Port:
 0 Detailed Authentication Information: Logon Process: User32 Authentication Package: Negotiate Transited Services: -
 Package Name (NTLM only): - Key Length: 0 This event is generated when a logon session is created. …

Apr 27 10:41:12 pdc.firma.local 4624 An account was successfully logged on. Logon Type: 3 [Network] Account Name: bouska
 Process Name: C:WindowsSystem32winlogon.exe Workstation Name: PDC Source Network Address: 10.0.0.10

Neúspěšný pokus o přihlášení

Pro zaznamenání neúspěšných pokusů o přihlášení (z různých důvodů) máme více událostí, ale mělo by stačit sledovat následující Failure události

Pro NTLM se loguje jedna událost a v Error Code je důvod chyby. Často neexistující uživatelské jméno (0xC0000064) nebo chybné heslo (0xC000006A).

Parsovaný výsledek může vypadat následně:

Jun 5 11:01:26 | implementace NTLM Unknown User | pdc.firma.local 4776 The computer attempted to validate the
 credentials for an account. Logon Account: implementace Source Workstation: SERVER Error Code: 0xc0000064 [Unknown User]

Pro Kerberos se generují dvě události a v Result Code je vidět, proč autentizace selhala. Například uživatel nenalezen v DB, nepodporované šifrování, expirované heslo, apod.

Parsovaný výsledek může vypadat následně:

Jun 5 11:10:26 | bouska Kerberos Bad Password | pdc.firma.local 4771 Kerberos pre-authentication failed. Account Name:
 bouska Service Name: krbtgt/FIRMA Client Address: ::ffff:10.0.0.10 Failure Code: 0x18 [Bad Password]

Při některých událostech, kdy se uživatel přihlašuje k počítači, se také zaloguje následující událost. Logon Type obsahuje způsob přihlášení a Failure Reason textový důvod chyby (neposílá se na syslog) a Status kód chyby. Často zamčený účet (0xc0000234) nebo chybné jméno či heslo (0xc000006d).

Parsovaný výsledek může vypadat následně:

Jun 4 12:13:05 | bouska Logon Session Locked | pdc.firma.local 4625 An account failed to log on. Account Name: bouska
 Status: 0xc0000234 Sub Status: 0x0 [Locked] Workstation Name: PDC Source Network Address: 10.0.0.10

Pokud používáme NPS - RADIUS server, tak můžeme také sledovat událost, kdy NPS odmítne přihlášení

Parsovaný výsledek může vypadat následně:

Jun 5 11:15:59 | bouska RADIUS | pdc.firma.local 6273 Network Policy Server denied access to a user. Account Name: bouska
 Called Station Identifier: 80-e8-0f-d9-70-00:WiFi Calling Station Identifier: f0-00-9d-00-42-b8 Address: 192.168.0.2
 Identifier: WLC

Ostatní události

Dalších věcí, které je možné sledovat, je velké množství. Třeba bezpečnostní auditování kategorie Object Access nám umožňuje sledovat přístupy k souborům a adresářum, registrům, výměnným médiům a dalším. Obecně si můžeme odesílat všechny události stupně ErrorApplication a System logu, případně i dalších.

zobrazeno: 26831krát | Komentáře [1]

Autor:

Související články:

Active Directory a protokol LDAP

Správa počítačové sítě ala Microsoft, to je Active Directory. Jedná se o velice rozsáhlou skupinu technologií a služeb. Základem jsou adresářové služby, adresáře a komunikační protokol LDAP.

Group Policy

Základem centrální správy počítačů v doméně jsou určitě skupinové politiky (Group Policy). Pomocí nich můžeme řídit nastavení, bezpečnost a chování pracovních stanic a serverů.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] MartinL

    Pěkný článek ;-) Díky

    Čtvrtek, 20.09.2018 15:04 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách