当文件打开或从 CD/DVD 复制时创建事件日志条目

当文件打开或从 CD/DVD 复制时创建事件日志条目

我的任务是配置组策略/编写 .NET Windows 服务,该服务会在用户从任何光学媒体(对可移动 USB 驱动器不感兴趣)打开或复制文件时将条目添加到 Windows 事件日志中。

我的第一个尝试是使用 C# 获取进程列表,查看它们打开了哪些文件以及路径是否以光驱号开头。这没有奏效,因为虽然有些程序会保持文件打开(例如 Acrobat Reader),但其他程序则不会(Internet Explorer、记事本)。我的第二次尝试是打开对象访问审计以及在磁盘驱动器上设置文件访问安全审核……这是你无法做到的,因为只读文件系统没有安全性。我最后的尝试是使用可移动存储审计组策略,但它不会为光学媒体添加任何日志条目(我测试了 USB 笔式驱动器并且确实创建了条目),此外它仅适用于 Windows 8+ 并且我需要支持 Windows 7。

因此,我已经没有任何主意了,所以我向这里的专家寻求帮助,看看您是否对如何解决这个问题有什么想法。

答案1

我怀疑这必须在较低的驱动程序级别上实现。我怀疑有可用于此的商业软件。

光驱通常使用 FAT(32) 作为文件系统,您已经注意到,它不支持审核。当然,您可以审核本地文件系统,但这无法让您区分来自光驱的写访问。

我会安装 SysInternals 的 Process Monitor,看看它是否报告光驱的文件传输 - 应该会。我会给你一个起点。

我个人认为这不是一件容易的事,因为您需要安装并与驱动程序交互。

也许其他人有其他想法。

答案2

由于 Windows 没有像大多数 UNIX 那样的文件系统挂钩,但恶意软件作者知道如何通过挂钩系统调用(又名 rootkit)来隐藏自己,您可能需要了解 rootkit 的工作原理。

您可以编写一个库,将其挂接到文件打开系统调用中并在那里生成事件日志条目。然后编写一个程序将该库自动加载到系统中。

如果您可以使整个日志记录机制隐藏起来,这是真正的 rootkit 风格,则可以获得加分。

相关内容