我知道如何审核哪个用户访问一个文件。 我怎么知道哪个进程正在修改目录中的文件?
我猜测你可能在寻找比使用“Process Monitor”或反复运行“handle.exe”更长期的审计。 我们会看看我的精神力量是否在这里得到了回报。
“对象访问”审计可能是你正在寻找的。 如果您正在审核对计算机本地访问文件的访问权限,那么您将能够看到进程名称访问文件。 但是,如果远程访问文件,则只能看到访问文件的用户的名称和loginID(而不是访问文件的进程的名称)。
如果您要观看的文件位于服务器上,则需要修改该服务器上的本地安全策略(除非是域控制器计算机,否则您将被禁止添加或修改现有的GPO,所有域控制器计算机的安全策略)。 您要查找的组策略中的设置是“审核对象访问”,位于“审核策略”子目录组策略/本地策略中的“计算机configuration”的“Windows设置”子节点。 更新组策略(GPUPDATE)以使更改生效。
一旦你启用了这个设置(对于成功,失败,或者两者都有,取决于你想访问什么),你需要在文件夹或文件上添加一个SACL(系统访问控制列表)以允许审计。 在W2K3中,您可以通过在文件或文件夹的“安全”属性表单的“高级”对话框访问的“审核”选项卡中添加条目来修改SACL。 如果您只想审计来自特定用户或用户组的访问权限,请将其添加到SACL中。 如果你想审计所有的访问,只需添加“所有人”与“完全控制”权限(成功和失败,如果你想审计两个)到SACL。
在安全策略中打开审核,更新组策略并使用SACL标记要审核的项目后,您将开始在托pipe文件的计算机的“安全”事件日志中看到审核事件,喜欢:
事件来源:安全
事件ID:560
types:成功审计
类别:对象访问
Descrption:
对象打开:
对象服务器:安全性
对象types:文件
对象名称:C:\ Secret Docs \ World Domination Plan \ Chinchilla.txt
手柄编号:1904
操作ID:{0,233543114}
进程ID:3356
图像文件名称:C:\ WINDOWS \ system32 \ notepad.exe
主要用户名称:EAnderson
主要域:LAPTOP01
主loginID:(0x0,0x1C744)
客户用户名称: -
客户端域名: -
客户loginID: -
访问:READ_CONTROL
SYNCHRONIZE
ReadData(或ListDirectory)
WriteData(或AddFile)
AppendData(或AddSubdirectory或CreatePipeInstance)
ReadEA
WriteEA
ReadAttributes
WriteAttributes
特权: -
限制Sid数量:0
访问掩码:%18
“图像文件名称”显示进行访问的进程的名称。 不过,通过“文件和打印共享”访问文件创build的审核条目中不会显示“图像文件名”。 (我不确定对远程访问的文件进行长期审计是否有一个令人信服的“故事”,你必须至less在远程客户端上进行“stream程跟踪”,即使这样, t认为通过客户机和服务器计算机的安全日志之间的任何相关性,您将能够区分在远程用户环境下运行的各种程序所执行的访问…)
一种方法是使用Sysinternals工具之一Process Monitor中的filter。 帮助文件有一个类似的例子。 这不是一个核心的操作系统组件,所以你需要检查它是适当的安装它。
您可以从以下位置下载handle.exe:
http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
查看打开的句柄非常有用。