1. Home
  2. Microsoft
  3. Windows
  4. Auditing File System → Löschprotokoll

Auditing File System → Löschprotokoll

Um Zugriffe auf Dateien und Ordner auf einem File-Server nachvollziehen zu können, kann auf den betreffenden Servern das Auditing aktiviert werden. In dieser Anleitung geht im Speziellen darum Lösch-Aktivitäten aufzuzeichnen.

Auditing über Gruppenrichtlinie aktivieren

Im ersten Schritt muss das Auditing grundsätzlich aktiviert werden. Navigieren Sie dazu zum Richtlinien-Objekt ComputerkonfigurationWindows-EinstellungenSicherheitseinstellungenErweiterte Überwachungsrichtlinienkonfiguration Systemüberwachungsrichtlinien Objektzugriff und aktivieren Sie die Richtlinienobjekte Dateisystem überwachen und Handleänderung überwachen, jeweils mit Erfolg und Fehler:

System Access Control List definieren

Im zweiten Schritt wird eine SACL (System Access Control List) definiert, welche die genauen Vorgänge definiert, die protokolliert werden sollen. Navigieren Sie dazu zu einem Ordner, von dem aus abwärts die Protokollierung stattfinden soll, zu den Eigenschaften → Register: SicherheitErweitert → Register: Überwachung Weiter Hinzufügen → Prinzipal auswählen: Jeder → Typ: Alles → Anwenden auf: Diesen Ordner, Unterordner und Dateien.

Klicken Sie auf den Link Erweiterte Berechtigungen anzeigen und auf Alle löschen und aktivieren Sie daraufhin jeweils die Checkbox bei Unterordner und Dateien löschen und Löschen

Nach dem Verlassen und Speichern des Dialogs wird die SACL auf die Objekte im ausgewählten Verzeichnis angewendet, was uU ein paar Minuten dauern kann.

Ereignisanzeige analysieren

In der EreignisanzeigeWindows-Protokolle Sicherheit werden nun im Event 4663 Quelle: File System die Zugriffe protokolliert.

Das Motiv ein Löschprotokoll zu führen liegt vermutlich darin, festzustellen wer und wann eine bestimmte Datei oder Verzeichnis gelöscht hat. Die GUI der Ereignisanzeige ist leider nicht hilfreich beim Durchsuchen großer Protokolldateien. Man kann zwar eine Benutzerdefinierte Ansicht erstellen und die Protokolle nach bestimmten Kriterien wie zB die Ereignis-ID filtern oder/und nur einen bestimmten Zeitraum definieren, aus denen man die Protokolle haben möchte aber man kann keine Volltextsuche zB nach Datei- oder Ordner-Namen durchführen.

Mit dem Powershell Cmdlet Get-EventLog kann jedoch eine Volltextsuche in den Ereignissen durchgeführt werden. Da ggf. eine sehr große Datenmenge durchsucht werden muss, ist es hilfreich den Zeitraum von Interesse einzugrenzen. Im folgenden Beispiel wird nach dem Verzeichnis VIP-Folder gesucht:

PS C:\Windows\system32> Get-EventLog -LogName Security -Message "*VIP-Folder*" -After 11.12.2022 -InstanceId 4663 | Select EventID, TimeGenerated, Message | fl
EventID       : 4663
TimeGenerated : 12.12.2022 11:44:42
Message       : Es wurde versucht, auf ein Objekt zuzugreifen.

                Antragsteller:
                        Sicherheits-ID:         S-1-5-21-873888264-1138833615-1381041810-1001
                        Kontoname:              dude
                        Kontodomäne:            DOMAIN
                        Anmelde-ID:             0x1460a6f0

                Objekt:
                        Objektserver:           Security
                        Objekttyp:              File
                        Objektname:             E:\IMPORTANT\VIP-Folder
                        Handle-ID:              0x7768
                        Ressourcenattribute:    S:AI

                Prozessinformationen:
                        Prozess-ID:             0x4
                        Prozessname:

                Zugriffsanforderungsinformationen:
                        Zugriffe:               %%1537

                        Zugriffsmaske:          0x10000

Die Zeile TimeGenerated (2) zeigt das Datum und die Zeile Kontoname (7) zeigt den Benutzer an, der das angegebene Objekt in der Zeile Objektname (14) gelöscht hat. In der Zeile Zugriffe (23) wird ein Schema-Wert %%1537 angezeigt, was übersetzt DELETE bedeutet.

Weitere Schema-Werte finden Sie im Microsoft Knowledgebase Artikel https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4663

Geplante Aufgabe um Ereignisse in separate Logdatei zu speichern

In der Regel ist in der Windows Ereignisanzeige eine Umlaufprotokollierung aktiviert. Das bedeutet, dass nach Erreichen einer bestimmten Größe der Protokolldatei ältere Einträge überschrieben werden. Dadurch ergibt sich nur ein sehr eingeschränktes Zeitfenster um eventuellen Ereignissen nachzugehen. Um die Ereignisse einen längeren Zeitraum verfügbar zu machen, kann zB jede Nacht ein Powershell-Skript ausgeführt werden, welche die in Event ID 4663 protokollierten Ereignisse in eine Textdatei exportiert, wo sie quasi unbegrenzt aufbewahrt werden können.

Folgendes Skript erledigt diese Aufgabe nach folgenden Kriterien:

  • Es wird für jeden Tag eine Textdatei erzeugt. (Outfile)
  • Es werden nur Ereignisse des aktuellen Tages protokolliert. ($today)
  • Der Pfad des gelöschten Elements wird protokolliert. ($File)
  • Datum und Uhrzeit der Löschung wird protokolliert. ($Time)
  • Der Benutzer der das Element gelöscht hat wird protokolliert. ($User)
Outfile = "C:\orgfiles\logs\$(Get-Date -f yyyyMMdd)_Deleted-file-history-log.txt"
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {
$event = [xml]$_.ToXml()
	if($event) {
		$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
		$File = $event.Event.EventData.Data[6]."#text"
		$User = $event.Event.EventData.Data[1]."#text"
		$strLog = $Computer + " " + $File + " " + $Time + " " +  $User
		$strLog  | out-file $Outfile –append
	}
}

Erstellen Sie eine geplante Aufgabe, die jede Nacht kurz vor Mitternacht ausgeführt wird.

Allgemeine Hinweise

Die oben konfigurierten Einstellung produzieren sehr viele Einträge in der Ereignisanzeige. Die Standardgröße von 1 GB kann auf stark frequentierten Servern schon recht knapp sein, um wenigstens die Ereignisse eines Tages zu erfassen. Eine Überprüfung des Setups welche Größe der Logdatei angemessen ist sollte in den ersten Tagen stattfinden. Es sollten wenigstens Daten von 24 Stunden erfasst werden, wenn Sie die Daten täglich in eine Textdatei exportieren wollen.

Die Einstellungen können in den Eigenschaften des betreffenden Protokolls überprüft bzw. vorgenommen werden:

Updated on 9. Februar 2023
Was this article helpful?

Related Articles