La política de auditoría del sistema de archivos en Windows permite monitorear todos los eventos de acceso a archivos y carpetas específicos en un disco. Un administrador puede habilitar la política de auditoría para identificar eventos de creación, lectura, modificación y eliminación de archivos y carpetas en el sistema de archivos NTFS. La auditoría del sistema de archivos se usa más comúnmente para controlar el acceso y los cambios a las carpetas de red compartidas en servidores de archivos de Windows a las que varios usuarios pueden acceder simultáneamente.
Contenido:
- Habilite la política de auditoría de acceso a objetos del sistema de archivos en Windows
- Cómo aplicar una política de auditoría a una carpeta o archivo en Windows
- Visualización de eventos de acceso al sistema de archivos en Windows
Habilite la política de auditoría de acceso a objetos del sistema de archivos en Windows
La auditoría de acceso a objetos del sistema de archivos no está habilitada de forma predeterminada en Windows. La auditoría de acceso se puede habilitar a través de la Política de grupo. Para configurar la política de auditoría en un servidor independiente, use la consola del Editor de políticas de grupo local (gpedit.msc). Si necesita habilitar la política de auditoría en varias computadoras en un dominio AD, use la consola de administración de GPO del dominio (gpmc.msc).
- Abra el editor de GPO y vaya aConfiguración de Windows -> Configuración de seguridad -> Configuración de política de auditoría avanzada -> Políticas de auditoría del sistema -> Acceso a objetos
- Abre elAuditar el sistema de archivosy especifique que solo se debe registrar el acceso exitoso a los objetos del sistema de archivos (Configure los siguientes eventos de auditoría -> Éxito)

- Guarde los cambios y actualice la configuración de la política de grupo local con el comando:
gpupdate /force
O habilite la política de auditoría del sistema de archivos local desde el símbolo del sistema.
Listar las categorías de auditoría disponibles:
AuditPol.exe /list /subcategory:*
Habilite la auditoría de eventos exitosos de acceso a objetos del sistema de archivos:
AuditPol.exe /set /subcategory:"File System" /success:enable
Verifique la configuración de auditoría actual:AuditPol.exe /get /category:"Object Access"


Cómo aplicar una política de auditoría a una carpeta o archivo en Windows
Incluso si se habilita una política para auditar el acceso a archivos y carpetas, no se envía ningún evento real al Visor de eventos. El administrador debe habilitar y configurar manualmente la configuración de auditoría para los archivos y carpetas que se van a monitorear.
Por ejemplo, su tarea es realizar un seguimiento de los eventos de lectura/cambio/creación de todos los archivos en la carpeta C:Docs.
- Abra las propiedades de la carpeta y vaya aSeguridad->Avanzado->Revisión de cuentaspestaña


- Hacer clicAñadir y en elPrincipal, seleccione los usuarios y/o grupos cuyos eventos de acceso a objetos desea monitorear. SeleccionarUsuariospara auditar el acceso a archivos para todos los usuarios o seleccionarTodossi desea incluir eventos de acceso a archivos por proceso del sistema
- En Tipo, especifique realizar un seguimiento solo de los eventos de acceso exitosos (
Success) - BajoSe aplica a, puede especificar si la política de auditoría debe aplicarse a la carpeta, los archivos o las subcarpetas (el valor predeterminado es Esta carpeta, subcarpetas y archivos)
- En elPermisos avanzadosEn la lista, seleccione solo las acciones en archivos y carpetas que desea enviar al registro de auditoría. Por ejemplo, para monitorear solo eventos de lectura y modificación de archivos, seleccione las opciones:
List folder/read data,Create files / write data,Create folders / append data)

Vea un ejemplo de cómo utilizar las políticas de auditoría de Windows para encontrar al usuario que eliminó un archivo de una carpeta compartida. - Guarde la configuración de auditoría.
Al configurar políticas de auditoría de acceso al sistema de archivos, habilite la auditoría solo para las carpetas y archivos que necesite. El tamaño del archivo de registro del Visor de eventos aumenta significativamente si tiene habilitada la auditoría de acceso para una gran cantidad de elementos.
Para habilitar la auditoría para un directorio específico, se puede utilizar PowerShell:
$Path = "C:Docs"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('BUILTINUsers', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl
Enumere la configuración de auditoría de carpetas:
Más lectura:Cómo agregar o eliminar carpetas fijadas para acceso rápido con PowerShell y GPO
(Get-Acl "C:Docs" -Audit).Audit


Si desea escanear recursivamente todos los directorios y encontrar las subcarpetas para las cuales está habilitada la auditoría del sistema de archivos, use este script:
$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}
}
Visualización de eventos de acceso al sistema de archivos en Windows
La política de auditoría escribirá un registro en el Visor de eventos si se realiza alguna acción en los archivos de la carpeta con la auditoría habilitada. Para ver eventos:
- Abra el complemento Visor de eventos (
eventvwr.msc) - Vaya a la sección Registros de Windows -> Seguridad y filtre los eventos por fuente:
Microsoft Windows security auditing, Categoría de tarea:File System
. - Abra cualquier evento encontrado. Por ejemplo, el evento con EventID4663(“
An attempt was made to access an object“) contiene información sobre el usuario que interactuó con el archivo:Account Name:
Nombre del archivo:object_name:
tipo de operación (escribir en archivo en este caso): Accede a:WriteData (or AddFile)

Sin embargo, las capacidades de búsqueda y filtrado de la consola del Visor de eventos son bastante deficientes y su uso para buscar todas las acciones en un archivo en particular es un inconveniente.
Es mejor usar PowerShell para buscar y enumerar todos los eventos de acceso a un objeto del sistema de archivos en particular. El siguiente script de PowerShell busca y enumera todos los eventos de acceso para un archivo específico en el Visor de eventos (el cmdlet Get-WinEvent se usa para consultar el Visor de eventos):
$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
}


Puede enviar la lista resultante de eventos de auditoría de acceso a su recopilador de registros, base de datos, archivo de registro de texto o enviar una notificación por correo electrónico mediante Send-MailMessage cuando se accede o modifica un archivo monitoreado.














