Jak zjistit, kdo změnil oprávnění souboru/složky NTFS v systému Windows

V některých případech musí správce zjistit, který proces (program) nebo uživatel změnil oprávnění NTFS pro konkrétní složku nebo soubor na souborovém serveru Windows. Tento článek ukazuje, jak sledovat změny oprávnění NTFS provedené v objektech systému souborů pomocí zásad auditu, skriptů PowerShellu a nástroje ProcMon.

Chcete-li sledovat změny oprávnění NTFS u objektů systému souborů Windows, musíte nakonfigurovat zásady auditu.

  1. Otevřete Editor zásad skupiny. Pokud chcete nakonfigurovat zásady auditu systému souborů auditu na konkrétním serveru, otevřete konzolu Local Group Policy Editor (gpedit.msc). Pokud chcete povolit auditování na více zařízeních v doméně (například na všech souborových serverech), musíte vytvořit samostatný GPO pomocí konzoly Group Policy Management (gpmc.msc);
  2. Přejděte naKonfigurace počítače -> Zásady -> Nastavení Windows -> Nastavení zabezpečení -> Rozšířená konfigurace zásad auditu -> Zásady auditu -> Přístup k objektům;
  3. Povolte možnostAudit File Systema vyberteÚspěch;
  4. Nyní musíte povolit auditování ve vlastnostech adresáře, ve kterém chcete sledovat změny oprávnění. Otevřete vlastnosti složky -> přejděte naZabezpečenízáložka ->Moderní->Auditovánízáložka ->Pokračovat-> kliknětePřidata přidejte skupinu (vyberte hlavního), jehož aktivity chcete sledovat. Upřesnili jsmeKaždýzde; Dříve jsme vám ukázali, jak používat auditování systému souborů k nalezení uživatele, který smazal soubor nebo složku na souborovém serveru Windows.
  5. VybratTyp=Úspěcha povolitZměnit oprávněníaPřevzít vlastnictvímožnosti v pokročilých oprávněních:
  6. Nezapomeňte aktualizovat nastavení zásad skupiny na hostiteli:gpupdate /force

Nyní, pokud někdo změnil oprávnění NTFS u položek v zadané složce, událost sID události 4670se objeví v protokolu zabezpečení.

Viz také:Jak převzít vlastnictví a udělit oprávnění k úplné kontrole souborů a složek ve Windows 8/7/Vista

Otevřete konzolu Prohlížeče událostí (eventvwr.msc) -> Protokoly Windows -> Zabezpečení. Filtrujte seznam událostí podle EventID 4670 (Permissions on an object were changed) a otevřete nejnovější událost.

V popisu události uvidíte jméno uživatele, který změnil oprávnění (Název účtu:) a název procesu ( C:Windowsexplorer.exe ). Obsahuje také informace o předchozím ACL (Original Security Descriptor) a novém seznamu oprávnění (New Security Descriptor).

Pokud chcete do protokolu zabezpečení ukládat více událostí (v delším časovém intervalu), budete muset zvětšit velikost protokolu Prohlížeče událostí.

Upozorňujeme, že oprávnění jsou ve formátu DACL a je obtížné je pochopit. Naštěstí můžete použít vestavěnou rutinu PowerShellConvertFrom-SddlStringpřevést řetězec Security Descriptor Definition Language na PSCustomObject.

Chcete-li zjistit, které přístupové skupiny byly změněny v oprávněních NTFS objektu, porovnejte staré a nové popisovače zabezpečení (zkopírujte hodnoty SDDL z události 4670):

$oldperm=ConvertFrom-SddlString "D:PAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;S-1-5-21-1774357850-3643260196-2143367957-1125)(A;OICI;0x1301bf;;;S-1-5-21-1774357850-3643260196-2143367957-1124)"
$newperm=ConvertFrom-SddlString "D:PARAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;0x1301bf;;;S-1-5-21-1774357850-3643260196-2143367957-1124)(A;OICI;0x1200a9;;;S-1-5-21-1774357850-3643260196-2143367957-1125)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)"
Compare-Object -ReferenceObject $oldperm.DiscretionaryAcl -DifferenceObject $newperm.DiscretionaryAcl|FL

V tomto příkladu můžete vidět, že nový ACL uděluje oprávnění ke čteníBuiltinUsersskupina.

K prohledání protokolu událostí systému Windows můžete použít rutinu Get-WinEvent PowerShell. Můžete například použít následující kód k vyhledání událostí s ID události 4670 a získání hodnot OldSD a NewSD ze skriptu:

$event=Get-WinEvent -FilterHashtable @{logname="Security";id=4670} -MaxEvents 1
[xml]$xmlevent = $event.ToXml()
$eventobj = New-Object System.Management.Automation.PSObject
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[1].name -Value $xmlevent.Event.EventData.Data[1].'#text'
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[8].name -Value $xmlevent.Event.EventData.Data[8].'#text'
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[9].name -Value $xmlevent.Event.EventData.Data[9].'#text'
$eventobj|format-list

Můžete použít vestavěnýicacls.exenástroj neboGet-ACLRutina PowerShellu k zálohování aktuálních oprávnění NTFS pro adresář.

Pokud potřebujete pochopit, který proces a uživatel mění oprávnění NTFS u složky, můžete použítMonitor procesuutility. (https://learn.microsoft.com/en-us/sysinternals/downloads/procmon). Umožňuje vám lokalizovat zdroj změn oprávnění k objektům souborového systému v reálném čase.

  1. Stáhněte a spusťte procmon64.exe;
  2. Nakonfigurujte filtr: Filtr-> Filtr (CTRL+S)Cesta -> začít ->Specify the folder path->IncludeOperation -> je ->SetSecurityFile-> Zahrnout ;
  3. Od této chvíle, pokud někdo změní oprávnění NTFS pro jakýkoli objekt v této složce, uvidíte v okně ProcMon novou událost. Zde se zobrazí proces (explorer.exe) a jméno uživatele, který změnil oprávnění.

Related Posts