Śledź, kto usunął plik/folder z systemu Windows Server 2016 za pomocą zasad audytu

nadal nie wiesz, jak śledzić, kto usunął plik / folder z systemu windows server 2016 za pomocą zasad audytu? Zajrzyj na ten blog.

tutaj w Bobcares widzieliśmy kilka takich błędów związanych z systemem Windows w ramach naszych usług zarządzania serwerami dla hostów internetowych i dostawców usług online.

dzisiaj zobaczymy, jak śledzić usunięte okna plików / folderów.

jak śledzić, kto usunął plik/Folder z systemu Windows Server 2016 za pomocą zasad audytu

teraz przyjrzyjmy się, w jaki sposób nasi inżynierowie pomocy technicznej znajdują, kto usunął plik / folder z serwera.

korzystamy z audytu zdarzenia dostępu do obiektu systemu plików, aby zidentyfikować konkretnego użytkownika, który utworzył, usunął lub zmodyfikował określony plik.

zobaczymy teraz, jak skonfigurować audyt zdarzeń dla plików w udostępnionym folderze sieciowym w systemie Windows Server 2016. Po skonfigurowaniu inspekcji używamy informacji z przeglądarki zdarzeń, aby znaleźć użytkownika, który usunął określony plik na serwerze plików.

jednak gdy usuniemy plik ze współdzielonego folderu sieciowego, Jest on natychmiast usuwany, a nie wysyłany do kosza użytkownika.

jak włączyć zasady kontroli dostępu do plików i folderów w systemie Windows

domyślnie Kontrola dostępu do obiektów systemu plików nie będzie włączona w systemie Windows Server. Możemy włączyć i skonfigurować ustawienia audytu za pomocą zasad grupy. Oto kroki, które wykonujemy, aby skonfigurować audyt na jednym serwerze za pomocą lokalnego Edytora zasad grupy.

    • najpierw otwieramy konsolę Edytora zasad grupy lokalnej-gpedit.msc
    • następnie przechodzimy do sekcji GPO z zaawansowanymi zasadami audytu: Ustawienia systemu Windows >> ustawienia zabezpieczeń >> Zaawansowana konfiguracja zasad audytu >> dostęp do obiektu
    • następnie otwieramy Zasady audytu systemu plików i określamy, że chcemy rejestrować tylko pomyślne zdarzenia dostępu do obiektów systemu plików (skonfiguruj następujące zdarzenia audytu >> sukces)
      jak śledzić, kto usunął plik/folder z serwera windows 2016 z zasadami audytu
    • na koniec zapisujemy zmiany i aktualizujemy ustawienia zasad lokalnych grupy za pomocą poniższego polecenia.
      gpupdate /force

Konfigurowanie ustawień inspekcji usuniętych plików w folderze udostępnionym

teraz konfigurujemy inspekcję we właściwościach udostępnionego folderu sieciowego, do którego chcemy śledzić dostęp.

1. Najpierw uruchamiamy Eksplorator plików i otwieramy właściwości folderu. Przechodzimy do zakładki Bezpieczeństwo i klikamy przycisk Zaawansowane. Następnie przechodzimy do zakładki audyty.

2. Jeśli pojawi się komunikat poniżej, kliknij przycisk Kontynuuj.

You must be an administrator or have been given the appropriate privileges to view the audit properties of this object

3. Następnie klikamy przycisk Dodaj, aby określić użytkownika lub grupę, dla której chcemy przechwycić zdarzenia audytu. Jeśli chcemy śledzić zdarzenia dostępu dla wszystkich użytkowników, określamy grupę Wszyscy.

4. Następnie określamy również, które prawa dostępu do obiektu mają być rejestrowane. Aby zapisać tylko zdarzenia usuwania plików w dzienniku zdarzeń, klikamy przycisk Pokaż zaawansowane uprawnienia. Na liście zdarzeń pozostawiamy audyt tylko dla zdarzeń usuwania folderów i plików-Usuń i usuń podfoldery i pliki.

w przypadku, gdy użytkownik usuwa dowolny plik lub folder w udostępnionym folderze sieciowym. Następnie w dzienniku zabezpieczeń pojawi się Zdarzenie File System – > audit Success file delete o Id zdarzenia 4663 ze źródła audytu zabezpieczeń systemu Microsoft Windows.

następnie otwieramy przeglądarkę zdarzeń MMC console (eventvwr.msc), rozwiń sekcję Windows Logs – > Security. Włącz filtr dziennika zdarzeń przy pomocy EventID 4663.

następnie otwieramy dowolne z pozostałych zdarzeń w przeglądarce zdarzeń. Widzimy, że zawiera informacje o nazwie usuniętego pliku, koncie użytkownika, który usunął plik i nazwie 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 włączeniu polityki kontroli dostępu do plików, możemy znaleźć poniższe szczegóły w dzienniku zabezpieczeń:

  • kto usunął Plik z udostępnionego folderu sieciowego i kiedy to się stało
  • jaka aplikacja (proces) została użyta do usunięcia pliku
  • jaka jest data przywrócenia kopii zapasowej

Jak zapisać zdarzenia usuwania plików do bazy danych SQL (MySQL/MSSQL)

jednak nawet jeśli włączony jest audyt usuniętych plików, może być kłopotliwe znalezienie coś w logach. Po pierwsze, dość trudno jest znaleźć konkretny wpis wśród tysięcy wydarzeń. Po drugie, jeśli plik został usunięty dawno temu, to zdarzenie może być nieobecne w logach, ponieważ zostało nadpisane przez nowe zdarzenia.

zapisujemy wszystkie zdarzenia usuwania plików do bazy danych SQL. W tym celu używamy baz danych Microsoft SQL Server, Elasticsearch lub MySQL/MariaDB do przechowywania zdarzeń.

na przykład zobaczmy, jak rejestrować zdarzenia audytu do osobnej tabeli bazy danych w MySQL. Możemy użyć następującego formatu tabeli:

  • Nazwa serwera
  • Nazwa usuniętego pliku
  • Data i czas
  • nazwa użytkownika, który usunął plik

zapytanie MySQL do utworzenia tej tabeli wygląda następująco:

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));

aby uzyskać zdarzenia z EventID 4663 z dziennika zabezpieczeń dla bieżącego dnia, używamy następującego skryptu 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}}

następny skrypt PowerShell zapisze dane, które trafimy do bazy danych MySQL na zdalnym serwerze (z adresem 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 zapisaniu zdarzeń do zewnętrznej bazy danych możemy wyczyścić ten dziennik zdarzeń.

teraz, aby dowiedzieć się, kto usunął plik ” AnnualReport.DOC”, uruchamiamy poniższy skrypt w konsoli 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()

wreszcie widzimy nazwę użytkownika i czas usunięcia pliku w konsoli PS.

rejestrowanie zdarzeń audytu usunięcia pliku do pliku tekstowego

jeśli nie chcemy używać oddzielnego serwera bazy danych, zapisujemy zdarzenia audytu usunięcia pliku do zwykłego pliku dziennika tekstowego. W tym celu używamy tego skryptu PowerShell, aby zapisać wyjście do pliku tekstowego:

$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}}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.