如何授予网络共享访问低强制级别流程的权限?

Iva*_*vic 1 windows security winapi uac network-security

有没有办法向低强制级别进程 (UAC) 授予对网络共享的访问权限?

进一步说明:为了迁移一些第三方库安全问题,我们正在考虑将完整性模式设置为将进程隔离为低,但我们确实需要让进程从指定的单个文件系统共享(UNC 路径,可能在单独的计算机上)自由读/写。

有谁知道有没有办法做到这一点?

谢谢

Mal*_*ery 5

是的,默认情况下可用。进程的完整性仅影响本地安全,不影响远程安全。这可以通过创建记事本的低完整性版本来证明 -

  1. 将 C:\windows\system32\notepad.exe 复制到某个位置,即 C:\test\lownote.exe
  2. 运行 icacls C:\test\lownote.exe /setintegritylevel Low
  3. 运行低音
  4. 使用 Process Explorer (http://live.sysinternals.com/procexp.exe) 确认它正在以低完整性运行。请注意,您可以打开 HDD 上的文件,但无法保存到其中,除非用户配置文件的低完整性部分使用 UNC 共享浏览到网络、路径 - 您可以正常打开/保存文件。

话虽这么说,当使用低完整性进程写入网络共享时,您可能会遇到访问被拒绝的消息。可以通过在运行应用程序http://live.sysinternals.com/ProcMon.exe的计算机上使用 procmon 并过滤以包含结果为“访问被拒绝”且进程名称为 - 您的进程的名称来找到此原因。

不可用的是驱动器映射...尝试读取 HKCU[驱动器号的位置] 时,您将看到抛出“访问被拒绝”的消息

根据 MSDN 文档:

但是,您可以在低完整性进程和较高完整性进程之间使用其他类型的通信。您可以使用的通信类型包括:

  • 剪贴板(复制和粘贴)
  • 远程过程调用 (RPC)
  • 插座
  • 通过调用 ChangeWindowMessageFilter 显式允许较高完整性进程从较低完整性进程接收的窗口消息
  • 共享内存,其中完整性较高的进程显式降低共享内存部分上的强制标签(重要提示这特别危险,完整性较高的进程必须小心验证写入共享部分的所有数据。)
  • COM 接口,其中启动激活权限由较高完整性进程以编程方式设置,以允许来自低完整性客户端的绑定
  • 命名管道,创建者在管道上显式设置强制标签以允许访问完整性较低的进程

参考http://msdn.microsoft.com/en-us/library/bb625960.aspx