Pokud chceme logovat operace (zaznamenávat události do logu) nad Active Directory Domain Services (AD DS) - prakticky jde o vytváření, měnění či mazání uživatelských a počítačových účtů a skupin, tak využijeme funkci auditování AD DS. Tento audit byl možný již dříve a to obdobným způsobem, ale Windows Server 2008 přináší rozšíření a zpřesnění. Nově můžeme auditovat pouze určitou podkategorii (vylepšené nastavení nabízí Windows Server 2008 R2), u změn se loguje i původní a nová hodnota (ne jen kdo a jaký atribut změnil) a také se změnily ID událostí.
Situace okolo auditování událostí nad AD DS není jednoduchá. Musíme si dobře rozmyslet, co chceme sledovat. Jestli nám jde o podezřelé operace, failed události nebo dohled nad vytvářením a mazáním účtů. Pomocí Directory Service Access (DS Access) a detailního nastavení SACL, můžeme sledovat tisíce údajů (a špatným nastavením si pouze zaplníme log). Hlavní zde tedy je dobře pochopit a nastavit filtrování pomocí SACL.
Navíc použití DS Access není jediná možnost, i když je Microsoftem všude prezentovaná. Máme ještě kategorii Account Management. Tyto události můžeme použít na sledování změn lokálních účtů na stanici, ale stejně tak na doménovém řadiči pro doménové účty. Tato kategorie nám nenabízí tolik možností, ale její nastavení je jednodušší. A někdy doplňuje informace, které získáme z DS Access. Navíc myslím, že řadě lidí může tato kategorie stačit a vůbec nemusí použít pro logování DS Access.
Auditování kategorie DS Access
Abychom zapnuli auditování, tak musíme provést několik kroků:
zapneme auditování - máme dvě možnosti
globálně pomocí auditovací politiky
pro jednotlivé podkategorie – podpora od Windows Server 2008, opět dvě možnosti
pomocí příkazu auditpol.exe
pomocí nové rozšířené auditovací politiky – podpora od Windows Server 2008 R2
vybereme detailně, jaké operace pro jaké objekty chceme sledovat – pomocí SACL
(volitelně) nastavíme výjimky pro atributy – úpravou AD schema – provede se nastavením atributu searchFlags na hodnotu 256 u objektu, který nechceme logovat, této oblasti se zde nebudeme věnovat
Globální zapnutí auditování
Na DC aplikujeme politiku, která globálně zapíná auditování. Toto nastavení můžeme provést například v Default Domain Controllers Policy.
spustíme Group Policy Management
otevřeme politiku, třeba Default Domain Controllers Policy, v Group Policy Management Editor
proklikáme se do Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Audit Policy
otevřeme položku Audit directory service access
zaškrtneme Define these policy settings a zvolíme, jestli chceme sledovat úspěšné a neúspěšné událost - Success a Failed
Zapnutí auditování pro podkategorie
Od Windows Server 2008 můžeme vybrat subkategorii, kterou chceme auditovat. Není to povinné, pokud nastavíme politiku z předchozího bodu, tak se nám zapnout všechny podkategorie k dané kategorii. Standardně (bez politiky) je na serveru zapnuto pouze auditování Directory Service Access na Success. Jednotlivé podkategorie jsou:
Directory Service Access
Directory Service Changes
Directory Service Replication
Detailed Directory Service Replication
Nastavení pomocí auditpol.exe
Pokud nemáme Windows Server 2008 R2, tak pro nastavení jednotlivých podkategorií nemůžeme použít Group Policy, ale musí nám stačit řádkový příkaz auditpol.exe. Konfiguraci musíme provádět na jednotlivých doménových řadičích a postupně na všech, kde chceme, aby se uplatnilo.
Můžeme si vypsat jednotlivé podkategorie (všechny nebo z nějaké kategorie)
Auditpol /list /subcategory:* Auditpol /list /subcategory:"DS Access"
Můžeme provést zálohu nastavení
Auditpol /backup /file:C:\auditpolicy.csv
Můžeme zjistit aktuální nastavení (všech hodnot nebo z naší kategorie)
Auditpol /get /category:* Auditpol /get /category:"DS Access"
A pak můžeme měnit nastavení (povolovat nebo zakazovat jednotlivé podkategorie)
Auditpol /set /subcategory:"directory service changes" /success:enable Auditpol /set /subcategory:"Detailed Directory Service Replication" /success:disable /failure:disable
Většinu příkazů musíme spouštět na serveru a konfiguraci provádět na DC. Pokud se o něco pokusíme na stanici nebo ne pod administrátorským oprávněním (Run as administrator), tak dostaneme chybovou hlášku:
Auditpol /get /category:* Error 0x00000522 occurred: A required privilege is not held by the client.
Nastavení pomocí Group Policy
Windows Server 2008 R2 (a Windows 7) byl rozšířen o možnost konfigurovat audtitování na úrovni podkategorií pomocí Group Policy. Tyto politiky se nachází na trochu jiném místě ve skupině Advanced Audit Policy Configuration.
spustíme Group Policy Management
otevřeme politiku, třeba Default Domain Controllers Policy, v Group Policy Management Editor
proklikáme se do Computer Configuration/Policies/Windows Settings/Security Settings/Advanced Audit Policy Configuration/Audit Policy/DS Access
otevřeme položku Audit directory service access
vybereme jednotlivé podkategorie a u nich nastavíme Success či Failed
Když nastavíme nějakou hodnotu z Advanced Audit Policy Configuration, tak se automaticky vypnout všechny hodnoty z Local Policies/Audit Policy. Přesto se doporučuje ještě nastavit politiku, která toto zařizuje:
proklikáme se do Computer Configuration/Policies/Windows Settings/Security Settings/ Local Policies/Security Options
otevřeme položku Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings
a zapneme - Enabled
Určení, jaké objekty chceme sledovat - SACL
Nastavení oprávnění System Access Control List - SACL, umožňuje logovat přístupy k zabezpečeným objektům, určuje jaká operace a kým provedená se loguje. Dokud nenastavíme SACL odpovídajícím způsobem, tak se nám nebudou vytvářet žádné záznamy!
pomocí ADUC (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
Zde vidíme již nastavené SACL. Přidání nového:
klikneme na tlačítko Add
vybereme, pro koho chceme logování provádět, standardně Authenticated Users nebo Everyone
na záložce Object můžeme nastavovat operace, které chceme sledovat, například Create User objects a zatrháváme, jestli chceme sledovat Failed nebo Successful
na záložce Properties můžeme specifikovat přímo operaci Read/Write
na obou záložkách můžeme určit, na jaké objekty chceme aplikovat (pak se zobrazí pouze možné nabídky), v Apply onto, například Descendant User objects
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.
Události z kategorie DS Access a jejich ID
Audit generuje události do Security logu. Následuje seznam událostí v jednotlivých podkategoriích, oficiálně tento seznam naleznete na webu Microsoftu DS Access.
Audit Directory Service Changes
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
Event ID 4662 - An operation was performed on an object.
Audit Directory Service Replication
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
Event ID 928 - 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.
Auditování kategorie Account Management
Nastavení auditování kategorie Account Management je mnohem jednodušší. Spočívá pouze v zapnutí auditování dané kategorie. A stejně jako u DS Access to můžeme provést dvěma způsoby:
globálně pomocí auditovací politiky
pro jednotlivé podkategorie – podpora od Windows Server 2008, opět dvě možnosti
pomocí příkazu auditpol.exe
pomocí nové rozšířené auditovací politiky – podpora od Windows Server 2008 R2
Globální zapnutí auditování
Auditování povolíme stejně jako u kategorie DC Access, to znamená nejlépe přes Group Policy. Pouze tentokrát vybereme položku Audit account management.
Zapnutí auditování pro podkategorie
Opět můžeme vybrat pouze některé podkategorie pomocí příkazu příkaz auditpol.exe nebo pomocí politiky Advanced Audit Policy Configuration. Kategorie Account Management obsahuje podkategorie:
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
Události z kategorie Account Management a jejich ID
Audit generuje události opět do Security logu. Následuje seznam událostí v jednotlivých podkategoriích, oficiálně tento seznam naleznete na webu Microsoftu Account Management.
Audit User Account Management
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 5376 - Credential Manager credentials were backed up
Event ID 5377 - Credential Manager credentials were restored from a backup
Audit Computer Account Management
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 Application Group Management
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
Audit Distribution Group Management
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
Audit Other Account Management Events
Event ID 4782 - The password hash for an account was accessed
Event ID 4793 - The Password Policy Checking API was called
Audit Security Group Management
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
Zprávy v Event Logu
Pro nalezení záznamů, které nás zajímají, z velkého množství logů v Security logu, můžeme použít filtrování.
otevřeme Event Viewer
doklikáme se na Security
klikneme pravým tlačítkem a zvolíme Filter Current log
v kolonce Event sources vybereme Microsoft Windows security audting.
do kolonky Task category vybereme všechny kategorie, které nás zajímají, třeba:
Directory Service Changes
Directory Service Access
User Account Management
Computer Account Management
Obecně se samozřejmě počítá s tím, že si události posíláme na nějaký server, který je dále zpracovává. Může se jednat o standardní Syslog server (do Windows ale musíme doplnit Syslog klienta, aby se logy odesílaly) nebo třeba Microsoft SCOM (System Center Operations Manager).
Příklad zpráv
Malá ukázka, co se zaloguje, pokud je zapnuto DS Access i Account Management pro události Success i Failed. SACL je nastaveno na celou doménu pro uživatele Everyone přístup Create/Delete User objects. Zajímavé je, že není zalogována událost 5141.
Vytvoření uživatele
12:46:10 4662 An operation was performed on an object. / Object Access Create Child
12:46:10 4720 A user account was created.
12:46:10 4724 An attempt was made to reset an account's password.
12:46:10 4738 A user account was changed.
12:46:10 4722 A user account was enabled.
12:46:19 5137 A directory service object was created.
Smazání uživatele
13:01:52 4726 A user account was deleted.