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

时间:2011-10-10 03:39:10

标签: windows security winapi uac network-security

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

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

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

由于

1 个答案:

答案 0 :(得分: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共享的路径 - 您可以正常打开/保存文件。
  5. 据说,当使用低完整性进程写入网络共享时,您可能会遇到拒绝访问的消息。可以通过在运行应用程序http://live.sysinternals.com/ProcMon.exe的计算机上使用procmon找到此原因,并过滤以包含Result为“ACCESS DENIED”,Process Name为 - 您的进程名称。

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

    根据MSDN文档:

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

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

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