0

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

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

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

谢谢

4

1 回答 1

4

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

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

话虽如此,在使用低完整性进程写入网络共享时,您可能会遇到拒绝访问消息。这个原因可以通过在运行您的应用程序 http://live.sysinternals.com/ProcMon.exe的计算机上使用 procmon并过滤以包括 Result is "ACCESS DENIED" 并且 Process Name is - 您的进程的名称来找到。

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

根据 MSDN 文档:

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

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

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

于 2011-10-10T04:31:06.023 回答