Windows GPO 软件限制策略不适用于 %TEMP% 变量

Windows GPO 软件限制策略不适用于 %TEMP% 变量

我正在尝试采取一些额外的恶意软件预防措施,通过限制在少数位置执行 *.exe - 特别是当用户可能选择直接从 Zip 文件打开可执行文件时,各种压缩工具解压到的临时文件夹。

来自 TechNet 文章,http://technet.microsoft.com/nl-nl/library/cc786941%28v=ws.10%29.aspx

您可以在路径规则中使用环境变量。由于路径规则是在客户端环境中评估的,因此使用环境变量(例如 %Windir%)的能力允许规则适应特定用户的环境。

...

路径规则可以包含 ? 和 * 通配符,允许诸如“*.vbs”之类的规则匹配所有 Visual Basic Sc​​ript 文件。以下示例说明了通配符的用法:

  • “\DC-??\login$” 匹配 \DC-01\login$、\DC-02\login$
  • “*\Windows” 匹配 C:\Windows、D:\Windows、E:\Windows
  • “c:\win*” 匹配 c:\winnt、c:\windows、c:\windir

我有这些路径规则(我已单独应用它们以及以各种组合应用它们):

  • %APPDATA%\*.exe
  • %APPDATA%\*\*.exe
  • %LOCALAPPDATA%\*.exe
  • %LOCALAPPDATA%\*\*.exe
  • %TEMP%\*.exe
  • %TEMP%\7z*\*.exe
  • %TEMP%\wz*\*.exe
  • %TEMP%\Rar*\*.exe

...理论上应该表示直接位于用户临时文件夹下的可执行文件,以及以 Winzip、WinRAR 和 7-zip 可能命名其临时文件夹的方式命名的临时文件夹中的可执行文件(例如%TEMP%\7zSF20.tmp\the_file.exe)。

和有效;%APPDATA%无效。%LOCALAPPDATA%%TEMP%出现在 %TEMP% 下被阻止,但这只是因为在默认设置下,它们也符合%LOCALAPPDATA%\*\*.exe规则(默认情况下,Temp 位于 AppData\Local 下)。

我原本以为这是部分文件夹名称中的通配符的问题,但看起来这是特定于 %TEMP% 变量的使用的问题(因此重写)。

我已经确认的两种解决方法(以及我不愿意使用它们的原因)是:

  1. %LOCALAPPDATA%\Temp代替使用%TEMP%

    • 严格来说,这是不正确的,因为%TEMP%变量可以设置为不同于%LOCALAPPDATA%\Temp
  2. 使用%HKEY_CURRENT_USER\Environment\TEMP%

    • 基于注册表的路径规则似乎适用于所有子文件夹——我更喜欢稍微轻松一点的方式(这样我就不必到处去白名单一切别的)
    • 基于注册表的规则似乎受到限制,因此您无法拥有更具体的规则,例如%HKEY_CURRENT_USER\Environment\TEMP%\7z*\*.exe
      • 我后来发现%HKEY_CURRENT_USER\Environment\TEMP%7z*会接近(\变量和子文件夹之间不应该指定,并且之后不能指定文件名掩码)
    • 从技术上来说这也是不正确的,因为这个注册表位置只包含应该在开始流程本身,而不是流程可能会被改变成什么在过程中该过程 - 例如,如果您打开命令提示符,SET TEMP=C:\从提示符发出并运行该程序,它将不适用)。

(不管怎样,我尝试在 GPO 的计算机和用户部分中同时独立配置 SRP,以防一个覆盖另一个,或者%TEMP%在计算机和用户级别以不同的方式解析。)

这个变量有什么特殊之处,%TEMP%以致它不适用于此,而类似的变量%LOCALAPPDATA%\Temp\\wz*\\*.exe却适用?


更新:

看来该限制专门针对%TEMP%环境变量。我已经编辑了该问题。

答案1

当您在 cmd.exe 或 command.com 中检查 %TEMP% 的内容时,程序可能会看到与您不同的内容。有时它们不一样。

但无论如何,在软件限制策略中使用环境变量是一个坏主意,因为恶意软件可以改变该变量。

答案2

我用它来阻止来自 %TMP% 和 %TMP%*\ 的 exe 文件,它看起来很奇怪,但它在 Win7 pro 客户端上运行良好,启用了 UAC,当前用户没有管理权限。

%HKEY_CURRENT_USER\Environment\TEMP%*exe
%TEMP%\*\*.exe

我尝试使用%TEMP%\Rar*\*.exe并成功阻止了从%TEMP%\Rar15\putty.exe和从运行%TEMP%\Rar14.tmp\putty.exe

我认为 %TEMP% 可能没有什么特别之处。我仔细检查了一下,我使用的注册表项路径不会影响%TEMP%\Rar*\*.exe

答案3

请尝试以下操作:

%HKEY_CURRENT_USER\Environment\TEMP%7z*/*.exe

在关闭 % 后省略反斜杠 (\),然后对子目录使用正斜杠 (/)

我找到了这个参考: https://www.sysadmins.lv/blog-en/software-restriction-policies-rule-creation.aspx

相关内容