stále si nejste jisti, jak sledovat, kdo odstranil soubor/složku ze systému windows server 2016 pomocí zásad auditu? Podívejte se na tento blog.
zde v Bobcares jsme viděli několik takových chyb souvisejících se systémem Windows jako součást našich služeb správy serverů pro webové hostitele a poskytovatele online služeb.
dnes uvidíme, jak sledovat odstraněný soubor / složku Windows.
- jak sledovat, kdo odstranil soubor / složku ze systému Windows Server 2016 pomocí zásad auditu
- Jak povolit zásady auditu přístupu k souborům a složkám v systému Windows
- Konfigurace Nastavení auditu odstraněného souboru ve sdílené složce
- jak zapisovat události mazání souborů do databáze SQL (MySQL/MSSQL)
- protokolování souborů odstranit události auditu do textového souboru
jak sledovat, kdo odstranil soubor / složku ze systému Windows Server 2016 pomocí zásad auditu
nyní se podívejme, jak naši inženýři podpory zjistí, kdo odstranil soubor / složku ze serveru.
používáme audit událostí přístupu k objektům systému souborů k identifikaci konkrétního uživatele, který vytvořil, odstranil nebo upravil konkrétní soubor.
nyní uvidíme, jak nakonfigurovat audit událostí pro soubory ve sdílené síťové složce v systému Windows Server 2016. Po konfiguraci auditu použijeme informace z Prohlížeče událostí k nalezení uživatele, který odstranil konkrétní soubor na souborovém serveru.
když však odstraníme soubor ze sdílené síťové složky, okamžitě se odstraní místo toho, aby byl odeslán do koše uživatele.
Jak povolit zásady auditu přístupu k souborům a složkám v systému Windows
ve výchozím nastavení nebude v systému Windows Server povolen audit přístupu k objektům systému souborů. Nastavení auditu můžeme povolit a nakonfigurovat pomocí zásad skupiny. Zde jsou kroky, které sledujeme při konfiguraci auditu na jednom serveru pomocí Editoru místních zásad skupiny.
-
- nejprve otevřeme konzolu Editoru místních zásad skupiny-gpedit.msc
- dále přejdeme do sekce GPO s pokročilými zásadami auditu: Nastavení systému Windows >> Nastavení Zabezpečení >> Pokročilá konfigurace zásad auditu >> přístup k objektům
- poté otevřeme zásady systému souborů auditu a určíme, že chceme přihlásit pouze úspěšné události přístupu k objektům systému souborů (nakonfigurujte následující události auditu >> úspěch)
- nakonec uložíme soubor změny a aktualizace nastavení místních zásad skupiny pomocí níže uvedeného příkazu.
gpupdate /force
Konfigurace Nastavení auditu odstraněného souboru ve sdílené složce
nyní nakonfigurujeme audit ve vlastnostech složky sdílené sítě, ke které chceme sledovat přístup.
1. Nejprve spustíme Průzkumník souborů a otevřeme vlastnosti složky. Přejdeme na kartu Zabezpečení a klikneme na tlačítko Upřesnit. Pak přejdeme na kartu audit.
2. Pokud se zobrazí zpráva níže, klikněte na tlačítko Pokračovat.
You must be an administrator or have been given the appropriate privileges to view the audit properties of this object
3. Poté klikneme na tlačítko Přidat a určíme uživatele nebo skupinu, pro kterou chceme zachytit události auditu. Pokud chceme sledovat události přístupu pro všechny uživatele, určíme skupinu Everyone.
4. Poté také určíme, která oprávnění použitá pro přístup k objektu by měla být zaznamenána. Chcete-li uložit pouze události mazání souborů do protokolu událostí, klikneme na tlačítko Zobrazit pokročilá oprávnění. V seznamu událostí ponecháme audit pouze pro události odstranění složek a souborů-odstraňte a odstraňte podsložky a soubory.
v případě, že uživatel odstraní jakýkoli soubor nebo složku ve sdílené síťové složce. Poté se v protokolu zabezpečení s ID události 4663 ze zdroje auditu zabezpečení systému Microsoft Windows zobrazí událost odstranění souboru auditu ->.
pak otevřeme konzolu MMC Prohlížeče událostí (eventvwr.msc), rozbalte sekci Zabezpečení protokolů systému Windows ->. Povolit filtr protokolu událostí pomocí EventID 4663.
poté otevřeme některou ze zbývajících událostí v Prohlížeči událostí. Vidíme, že obsahuje informace o názvu odstraněného souboru, účtu uživatele, který soubor odstranil, a názvu procesu.
An attempt was made to access an object.Subject:Security ID: CORP\jonAccount Name: jonAccount Domain: CORPLogon ID: 0x32B12627Object:Object Server: SecurityObject Type: FileObject Name: E:\Distr\Backup.rarHandle ID: 0x7bc4Resource Attributes: S:AIProcess Information:Process ID: 0x4Process Name:Access Request Information:Accesses: DELETEAccess Mask: 0x10000
po povolení zásad auditu přístupu k souborům najdeme níže uvedené podrobnosti v protokolu zabezpečení:
- kdo odstranil soubor ze sdílené síťové složky a když se to stalo
- jaká aplikace (proces) byla použita k odstranění souboru
- jaké je datum obnovení zálohy
jak zapisovat události mazání souborů do databáze SQL (MySQL/MSSQL)
nicméně, i když je povolen audit smazaných souborů, může být obtížné najít něco v protokolech. Za prvé, je docela těžké najít konkrétní záznam mezi tisíci akcí. Za druhé, pokud byl soubor odstraněn již dávno, může tato událost v protokolech chybět, protože byla přepsána novými událostmi.
ukládáme všechny události mazání souborů do databáze SQL. K tomu používáme k ukládání událostí databáze Microsoft SQL Server, Elasticsearch nebo MySQL/MariaDB.
podívejme se například, jak zaznamenávat události auditu do samostatné databázové tabulky v MySQL. Můžeme použít následující formát tabulky:
- název serveru
- Název odstraněného souboru
- datum a čas
- jméno uživatele, který soubor odstranil
dotaz MySQL k vytvoření této tabulky vypadá níže:
CREATE TABLE deleted_items (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), file_name VARCHAR(255), dt_time DATETIME, user_name VARCHAR(100), PRIMARY KEY (ID));
Chcete-li získat události s EventID 4663 z protokolu zabezpečení pro aktuální den, použijeme následující skript PowerShell:
$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer}}
další skript PowerShell zapíše data, která dostaneme do databáze MySQL na vzdáleném serveru (s adresou IP 10.1.1.13):
Add-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$sql = New-Object MySql.Data.MySqlClient.MySqlCommand$sql.Connection = $Connection$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$File = $File.Replace('\','|')$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer$sql.CommandText = "INSERT INTO deleted_items (server,file_name,dt_time,user_name ) VALUES ('$Computer','$File','$Time','$User')"$sql.ExecuteNonQuery()}}$Reader.Close()$Connection.Close()
po uložení událostí do externí databáze můžeme tento protokol událostí vymazat.
nyní zjistěte, kdo odstranil soubor “ AnnualReport.DOC“, spustíme níže uvedený skript v konzole PowerShell.
$DeletedFile = "%AnnualReport.DOC%"Set-ExecutionPolicy RemoteSignedAdd-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$MYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand$MYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter$MYSQLDataSet = New-Object System.Data.DataSet$MYSQLCommand.Connection=$Connection$MYSQLCommand.CommandText="SELECT user_name,dt_time from deleted_items where file_name LIKE '$DeletedFile'"$MYSQLDataAdapter.SelectCommand=$MYSQLCommand$NumberOfDataSets=$MYSQLDataAdapter.Fill($MYSQLDataSet, "data")foreach($DataSet in $MYSQLDataSet.tables){write-host "User:" $DataSet.user_name "at:" $DataSet.dt_time}$Connection.Close()
konečně nyní vidíme uživatelské jméno a čas, kdy byl soubor odstraněn v konzole PS.
protokolování souborů odstranit události auditu do textového souboru
pokud nechceme používat samostatný databázový server, ukládáme události auditu odstranění souborů do souboru protokolu prostého textu. K tomu používáme tento skript PowerShell k uložení výstupu do textového souboru:
$Outfile = "C:\Logs\Deleted-file-history-log.txt"$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$strLog = $Computer + " " + $File + " " + $Time + " " + $User$strLog | out-file $Outfile –append}}