文件系统驱动程序可以过滤基于用户ID的操作吗?

时间:2011-08-09 12:10:02

标签: winapi filesystems driver minifilter

跟进:Windows Filesystem Minifilter Drivers: can I monitor and prevent FS operations using them?

我正在寻找一种方法来过滤对某些文件系统资源的访问。 这包括可移动媒体和非ntfs文件系统 - 因此标准ACL不起作用。

从我读到的文件系统驱动程序过滤器可能会有所帮助 - 但我没有找到获取启动用户的用户ID的方法。 这可能吗?

其他建议\也欢迎参考现有工具。

2 个答案:

答案 0 :(得分:2)

我不确定“用户ID”是什么意思。但这可能有用:

  1. 处理IRP_MJ_CREATE时,请查看IrpSp-> Parameters.Create.SecurityContext-> AccessState。
  2. ACCESS_STATE包含SecurityDescriptor和SubjectSecurityContext。
  3. 如果您需要,可以从SubjectSecurityContext检索PACCESS_TOKEN(调用SeLockSubjectContext和SeQuerySubjectContextToken)。
  4. 度过美好的一天!

答案 1 :(得分:0)

在大多数情况下,获取发起呼叫的用户的安全信息(令牌)是可能的,至少对于诸如文件打开和目录枚举之类的操作(当您计划阻止用户访问时,这些是过滤的主要点)到资源)。然后您可以根据需要取消或修改请求。我能想到的唯一限制是网络重定向器代表被模拟为本地系统帐户的远程用户访问磁盘。但这些是您需要在特定任务中调查自己的边界情况。