Website-Suche

Konfigurieren Sie die Datei- und Ordnerzugriffsüberwachung unter Windows (GPO).


Die Dateisystem-Überwachungsrichtlinie in Windows ermöglicht die Überwachung aller Zugriffsereignisse auf bestimmte Dateien und Ordner auf einer Festplatte. Ein Administrator kann die Überwachungsrichtlinie aktivieren, um Datei- und Ordnererstellungs-, Lese-, Änderungs- und Löschereignisse im NTFS-Dateisystem zu identifizieren. Die Dateisystemüberwachung wird am häufigsten verwendet, um den Zugriff und die Änderungen an freigegebenen Netzwerkordnern auf Windows-Dateiservern zu kontrollieren, auf die mehrere Benutzer gleichzeitig zugreifen können.

Aktivieren Sie die Überwachungsrichtlinie für den Zugriff auf Dateisystemobjekte unter Windows

Die Überwachung des Zugriffs auf Dateisystemobjekte ist in Windows standardmäßig nicht aktiviert. Die Zugriffsüberwachung kann über Gruppenrichtlinien aktiviert werden. Um die Überwachungsrichtlinie auf einem eigenständigen Server zu konfigurieren, verwenden Sie die lokale Gruppenrichtlinien-Editor-Konsole (

gpedit.msc

). Wenn Sie die Überwachungsrichtlinie auf mehreren Computern in einer AD-Domäne aktivieren müssen, verwenden Sie die Domänen-GPO-Verwaltungskonsole (

gpmc.msc

).

  1. Öffnen Sie den GPO-Editor und gehen Sie zu Windows-Einstellungen -> Sicherheitseinstellungen -> Erweiterte Überwachungsrichtlinienkonfiguration -> Systemüberwachungsrichtlinien -> Objektzugriff

  2. Öffnen Sie das Audit File System und geben Sie an, dass nur erfolgreiche Zugriffe auf Dateisystemobjekte protokolliert werden sollen (Konfigurieren Sie die folgenden Audit-Ereignisse -> Erfolg)

  3. Speichern Sie die Änderungen und aktualisieren Sie die lokalen Gruppenrichtlinieneinstellungen mit dem folgenden Befehl:

    gpupdate /force

Oder aktivieren Sie die Überwachungsrichtlinie für das lokale Dateisystem über die Eingabeaufforderung.

Verfügbare Audit-Kategorien auflisten:

AuditPol.exe /list /subcategory:*

Aktivieren Sie die Überwachung erfolgreicher Dateisystemobjektzugriffsereignisse:

AuditPol.exe /set /subcategory:"File System" /success:enable

Überprüfen Sie die aktuellen Audit-Einstellungen:

AuditPol.exe /get /category:"Object Access"

So wenden Sie eine Überwachungsrichtlinie auf einen Ordner oder eine Datei in Windows an

Auch wenn eine Richtlinie zur Überwachung des Zugriffs auf Dateien und Ordner aktiviert ist, werden keine tatsächlichen Ereignisse an die Ereignisanzeige gesendet. Audit-Einstellungen für die zu überwachenden Dateien und Ordner müssen vom Administrator manuell aktiviert und konfiguriert werden.

Ihre Aufgabe besteht beispielsweise darin, Lese-/Änderungs-/Erstellungsereignisse für alle Dateien im Ordner C:\Docs zu verfolgen.

  1. Öffnen Sie die Ordnereigenschaften und gehen Sie zur Registerkarte Sicherheit -> Erweitert -> Überwachung

  2. Klicken Sie auf „Hinzufügen“ und wählen Sie im Feld „Prinzipal“ die Benutzer und/oder Gruppen aus, deren Objektzugriffsereignisse Sie überwachen möchten. Wählen Sie Benutzer aus, um den Dateizugriff für alle Benutzer zu überwachen, oder wählen Sie Jeder aus, wenn Sie Dateizugriffsereignisse nach Systemprozess einbeziehen möchten

  3. Geben Sie unter Typ an, dass nur erfolgreiche Zugriffsereignisse verfolgt werden sollen (

    Success

    )

  4. Unter Gilt für können Sie angeben, ob die Überwachungsrichtlinie auf den Ordner, die Dateien oder Unterordner angewendet werden soll (Standardwert ist Dieser Ordner, diese Unterordner und Dateien).

  5. Wählen Sie in der Liste Erweiterte Berechtigungen nur die Aktionen für Dateien und Ordner aus, die Sie an das Überwachungsprotokoll senden möchten. Um beispielsweise nur Lese- und Dateiänderungsereignisse zu überwachen, wählen Sie die folgenden Optionen aus:

    List folder/read data

    ,

    Create files / write data

    ,

    Create folders / append data

    )

    Sehen Sie sich ein Beispiel für die Verwendung von Windows-Überwachungsrichtlinien an, um den Benutzer zu finden, der eine Datei aus einem freigegebenen Ordner gelöscht hat.

  6. Speichern Sie die Audit-Einstellungen.

Aktivieren Sie beim Konfigurieren von Überwachungsrichtlinien für den Dateisystemzugriff die Überwachung nur für die Ordner und Dateien, die Sie benötigen. Die Größe der Protokolldatei der Ereignisanzeige erhöht sich erheblich, wenn Sie die Zugriffsüberwachung für eine große Anzahl von Elementen aktiviert haben.

Um die Überwachung für ein bestimmtes Verzeichnis zu aktivieren, kann PowerShell verwendet werden:

$Path = "C:\Docs"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('BUILTIN\Users', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

Listen Sie die Ordnerüberwachungseinstellungen auf:

(Get-Acl "C:\Docs\" -Audit).Audit

Wenn Sie alle Verzeichnisse rekursiv durchsuchen und die Unterordner finden möchten, für die die Dateisystemüberwachung aktiviert ist, verwenden Sie dieses Skript:

$folders=Get-ChildItem "c:\docs" -Recurse |Where-Object {$_.PSIsContainer}
foreach ($folder in $folders)
{
$auditacl=(Get-Acl $folder.FullName -Audit).audit
if ($auditacl -ne "") {write-host $folder.FullName}
}

Anzeigen von Dateisystemzugriffsereignissen unter Windows

Die Überwachungsrichtlinie schreibt ein Protokoll in die Ereignisanzeige, wenn Aktionen an Dateien im Ordner mit aktivierter Überwachung durchgeführt werden. So zeigen Sie Ereignisse an:

  1. Öffnen Sie das Snap-In „Ereignisanzeige“ (

    eventvwr.msc

    )

  2. Gehen Sie zum Abschnitt „Windows-Protokolle -> Sicherheit“ und filtern Sie die Ereignisse nach Quelle:

    Microsoft Windows security auditing

    , Aufgabenkategorie:

    File System

  3. Öffnen Sie alle gefundenen Ereignisse. Zum Beispiel das Ereignis mit der EventID 4663 („

    An attempt was made to access an object

    „) enthält Informationen über den Benutzer, der mit der Datei interagiert hat:

    Account Name

    :
    Dateiname:

    object_name

    :
    Art der Operation (in diesem Fall in Datei schreiben): Zugriffe:

    WriteData (or AddFile)

Allerdings sind die Filter- und Suchfunktionen der Event Viewer-Konsole recht dürftig und die Suche nach allen Aktionen für eine bestimmte Datei ist unpraktisch.

Es ist besser, PowerShell zu verwenden, um alle Zugriffsereignisse für ein bestimmtes Dateisystemobjekt zu finden und aufzulisten. Das folgende PowerShell-Skript sucht und listet alle Zugriffsereignisse für eine angegebene Datei in der Ereignisanzeige auf (das Cmdlet „Get-WinEvent“ wird zum Abfragen der Ereignisanzeige verwendet):

$fileName = "C:\\docs\\new_test_file.txt"
$results = Get-WinEvent -FilterHashtable @{logname='Security'; id=4663,4659} |`
Where-Object { $_.message -match $fileName -and $_.message -notmatch "Account Name:\s*machine$*"}`
foreach ($result in $results) {
    $Account = $result.properties[1].Value
    $objectName = $result.properties[6].Value
    $accessMask = $result.properties[8].Value
    if ( $accessMask -like "*00000000-*") { $accessMask=$result.properties[9].Value}  
    $accessMask2 = $result.properties[9].Value
        $fileOperation = ""
        switch -Wildcard ($accessMask) {
            "*%%1538*" { $fileOperation = "READ_CONTROL" }
            "*%%4416*" { $fileOperation = "ReadData (or ListDirectory)" }
            "*%%4417*" { $fileOperation = "WriteData (or AddFile)" }
            "*%%4418*" { $fileOperation = "AppendData (or AddSubdirectory or CreatePipeInstance)" }
            "*%%4419*" { $fileOperation = "ReadEA" }
            "*%%4420*" { $fileOperation = "WriteEA" }
            "*%%4423*" { $fileOperation = "ReadAttributes" }
            "*%%4424*" { $fileOperation = "WriteAttributes" }
            "*%%4426*" { $fileOperation = "Delete" }
            "*%%4428*" { $fileOperation = "ReadControl" }
            "*%%4429*" { $fileOperation = "WriteDAC" }
            "*%%4430*" { $fileOperation = "WriteOwner" }
            "*%%4432*" { $fileOperation = "Synchronize" }
            "*%%4433*" { $fileOperation = "AccessSystemSecurity" }
            "*%%4434*" { $fileOperation = "MaximumAllowed" }
            "*%%4436*" { $fileOperation = "GenericAll" }
            "*%%4437*" { $fileOperation = "GenericExecute" }
            "*%%4438*" { $fileOperation = "GenericWrite" }
            "*%%4439*" { $fileOperation = "GenericRead" }
            "*%%1537*" { $fileOperation = "DELETE" }
            default { $fileOperation = "Unknown" }
        }
        Write-Host   $result.Id  $result.TimeCreated  $Account $objectName $fileOperation  
} 
Write-Host $result.Id $result.TimeCreated $Account $objectName $fileOperation
}

Sie können die resultierende Liste der Zugriffsüberwachungsereignisse an Ihren Protokollsammler, Ihre Datenbank oder Ihre Textprotokolldatei senden oder mit Send-MailMessage eine E-Mail-Benachrichtigung senden, wenn auf eine überwachte Datei zugegriffen/geändert wird.