Verfolgen Sie, wer Datei / Ordner von Windows Server 2016 mit Überwachungsrichtlinie gelöscht hat

Sie sind sich immer noch nicht sicher, wie Sie verfolgen können, wer Datei / Ordner von Windows Server 2016 mit Überwachungsrichtlinie gelöscht hat? Schauen Sie sich diesen Blog an.

Hier bei Bobcares haben wir im Rahmen unserer Serververwaltungsdienste für Webhosts und Onlinedienstanbieter mehrere solcher Windows-bezogenen Fehler festgestellt.

Heute werden wir sehen, wie die gelöschte Datei / Ordner Windows verfolgen.

So verfolgen Sie, wer die Datei / den Ordner von Windows Server 2016 mit der Überwachungsrichtlinie gelöscht hat

Werfen wir nun einen Blick darauf, wie unsere Support-Ingenieure herausfinden, wer die Datei / den Ordner vom Server gelöscht hat.

Wir verwenden das File System Object Access Event Auditing, um einen bestimmten Benutzer zu identifizieren, der eine bestimmte Datei erstellt, gelöscht oder geändert hat.

Wir werden nun sehen, wie die Ereignisüberwachung für Dateien in einem freigegebenen Netzwerkordner unter Windows Server 2016 konfiguriert wird. Nach der Konfiguration der Überwachung verwenden wir die Informationen aus der Ereignisanzeige, um den Benutzer zu finden, der eine bestimmte Datei auf dem Dateiserver gelöscht hat.

Wenn wir jedoch eine Datei aus einem freigegebenen Netzwerkordner löschen, wird sie sofort gelöscht, anstatt in den Papierkorb des Benutzers gesendet zu werden.

Aktivieren der Datei- und Ordnerzugriffsüberwachungsrichtlinie unter Windows

Standardmäßig ist die Dateisystemobjektzugriffsüberwachung auf Windows Server nicht aktiviert. Wir können Überwachungseinstellungen mithilfe von Gruppenrichtlinien aktivieren und konfigurieren. Hier sind die Schritte, die wir ausführen, um die Überwachung auf einem Server mithilfe des lokalen Gruppenrichtlinien-Editors zu konfigurieren.

    • Zuerst öffnen wir die Konsole des lokalen Gruppenrichtlinien–Editors – gpedit.msc
    • Als nächstes gehen wir zum Abschnitt Gruppenrichtlinienobjekt mit erweiterten Überwachungsrichtlinien: Windows-Einstellungen >> Sicherheitseinstellungen >> Erweiterte Konfiguration der Überwachungsrichtlinie >> Objektzugriff
    • Danach öffnen wir die Überwachungsdateisystemrichtlinie und geben an, dass wir nur erfolgreiche Zugriffsereignisse auf Dateisystemobjekte protokollieren möchten (Konfigurieren Sie die folgenden Überwachungsereignisse >> Erfolg)
      So verfolgen Sie, wer Datei / Ordner von Windows Server gelöscht hat 2016 mit audit policy
    • Schließlich speichern wir die Änderungen und aktualisieren die lokalen Gruppenrichtlinieneinstellungen mit dem folgenden Befehl.
      gpupdate /force

Konfigurieren von Datei- und Überwachungseinstellungen in einem freigegebenen Ordner

Jetzt konfigurieren wir die Überwachung in den Eigenschaften des freigegebenen Netzwerkordners, auf den wir den Zugriff verfolgen möchten.

1. Zuerst führen wir den Datei-Explorer aus und öffnen die Ordnereigenschaften. Wir gehen zur Registerkarte Sicherheit und klicken auf die Schaltfläche Erweitert. Dann gehen wir zur Registerkarte Auditing.

2. Wenn die folgende Meldung angezeigt wird, klicken Sie auf die Schaltfläche Weiter.

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

3. Dann klicken wir auf die Schaltfläche Hinzufügen, um den Benutzer oder die Gruppe anzugeben, für die wir Überwachungsereignisse erfassen möchten. Wenn wir Zugriffsereignisse für alle Benutzer verfolgen möchten, geben wir die Gruppe Jeder an.

4. Danach legen wir auch fest, welche Berechtigungen für den Zugriff auf das Objekt protokolliert werden sollen. Um nur Ereignisse zum Löschen von Dateien im Ereignisprotokoll zu speichern, klicken Sie auf die Schaltfläche Erweiterte Berechtigungen anzeigen. In der Ereignisliste belassen wir die Überwachung nur für die Ordner– und Dateilöschereignisse – Löschen und Löschen von Unterordnern und Dateien.

In diesem Fall löscht der Benutzer alle Dateien oder Ordner im freigegebenen Netzwerkordner. Dann wird das Ereignis File System -> Audit Success file delete im Sicherheitsprotokoll mit der Ereignis-ID 4663 aus der Microsoft Windows-Sicherheitsüberwachungsquelle angezeigt.

Dann öffnen wir die Ereignisanzeige MMC-Konsole (eventvwr.msc), erweitern Sie den Abschnitt Windows-Protokolle -> Sicherheit. Aktivieren Sie den Ereignisprotokollfilter nach der EventID 4663.

Danach öffnen wir eines der verbleibenden Ereignisse in der Ereignisanzeige. Wir sehen, dass es Informationen über den Namen der gelöschten Datei, das Konto des Benutzers, der die Datei gelöscht hat, und den Prozessnamen enthält.

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

Nach dem Aktivieren der Dateizugriffsüberwachungsrichtlinie finden Sie die folgenden Details im Sicherheitsprotokoll:

  • Wer hat die Datei aus dem freigegebenen Netzwerkordner gelöscht und wann es passiert ist
  • Mit welcher Anwendung (Prozess) wurde die Datei gelöscht?
  • An welchem Datum muss die Sicherung wiederhergestellt werden?

So schreiben Sie Ereignisse zum Löschen von Dateien in die SQL-Datenbank (MySQL / MSSQL)

Selbst wenn die Prüfung der gelöschten Dateien aktiviert ist, kann es jedoch schwierig sein, etwas im protokolle. Erstens ist es ziemlich schwierig, unter Tausenden von Ereignissen einen bestimmten Eintrag zu finden. Zweitens, wenn eine Datei vor langer Zeit gelöscht wurde, fehlt dieses Ereignis möglicherweise in den Protokollen, da es durch neue Ereignisse überschrieben wurde.

Wir speichern alle Dateilöschereignisse in der SQL-Datenbank. Dazu verwenden wir Microsoft SQL Server-, Elasticsearch- oder MySQL / MariaDB-Datenbanken, um die Ereignisse zu speichern.

Sehen wir uns beispielsweise an, wie Überwachungsereignisse in einer separaten Datenbanktabelle in MySQL protokolliert werden. Wir können das folgende Tabellenformat verwenden:

  • Servername
  • Name der gelöschten Datei
  • Datum und Uhrzeit
  • Name des Benutzers, der die Datei gelöscht hat

Die MySQL-Abfrage zum Erstellen dieser Tabelle sieht wie folgt aus:

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

Um Ereignisse mit der EventID 4663 aus dem Sicherheitsprotokoll für den aktuellen Tag abzurufen, verwenden wir das folgende PowerShell-Skript:

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

Das nächste PowerShell-Skript schreibt die Daten, die wir erhalten, in die MySQL-Datenbank auf einem Remote-Server (mit der IP-Adresse 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()

Nach dem Speichern von Ereignissen in einer externen Datenbank können wir dieses Ereignisprotokoll löschen.

Nun, um herauszufinden, wer die Datei gelöscht hat „AnnualReport.DOC“, führen wir das folgende Skript in der PowerShell-Konsole aus.

$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()

Schließlich sehen wir jetzt den Benutzernamen und den Zeitpunkt, zu dem die Datei in der PS-Konsole gelöscht wurde.

Protokollierung von Audit-Ereignissen zum Löschen von Dateien in einer Textdatei

Wenn wir keinen separaten Datenbankserver verwenden möchten, speichern wir Audit-Ereignisse zum Löschen von Dateien in einer Nur-Text-Protokolldatei. Dazu verwenden wir dieses PowerShell-Skript, um die Ausgabe in einer Textdatei zu speichern:

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.