【发布时间】:2016-09-22 19:59:46
【问题描述】:
是否可以通过进程限制对命名管道的访问(图像名称或进程 ID 都可以)?
这里的上下文是一个过滤器微型驱动程序,它必须与执行大部分业务逻辑的用户空间服务进行通信。由于这种通信是安全敏感的,我想保护它免受外部干扰,而默认情况下,由驱动程序创建的命名管道似乎可以与 any 用户空间进程进行通信知道管道的名称(通过静态或动态分析很容易发现)。
这是我已经知道的:管道是 Windows 中的安全对象,因此,它们具有安全描述符。此安全描述符可以包含一个 DACL,它应该限制对对象的访问。我已经广泛搜索了条件 ACE 的文档和示例,我希望它们可以做我想做的事情,但是我没有找到任何相关的东西。
编辑:我接受了 MSalters 的回答。人们普遍接受SYSTEM == ring0,虽然驱动程序的代码签名可能看起来很重要,但SYSTEM 可以轻松禁用代码签名,因此无需将权限从SYSTEM 提升到ring0 - 他们已经一样了。另一方面,即使是默认的安全描述符(在 minifilter 驱动程序上下文中 - 参见 FltBuildDefaultSecurityDescriptor)也包含一个限制,因此只有 SYSTEM 和管理员可以访问该对象,因此不需要进一步的操作(或可能,似乎)。
【问题讨论】: