我正在尝试在域上设置组策略来阻止 cryptolocker(以及其他)。我主要遵循 Cryptolocker 预防工具包 (http://community.spiceworks.com/topic/396103-cryptolocker-prevention-kit-updated)。使用2008R2 DC。
但是,我需要为 Firefox 做一个例外,因为安装的是 7zipped exe,它们被阻止了。我添加了例外,在测试机器(Win 7)上执行了“gpupdate /force”,然后重新启动。但例外被忽略了。以下是来自 GPMC 的相关代码片段:
%LocalAppData%\Temp\7z*\*.exe
Security Level Disallowed
Description Block executables run from archive attachments opened with 7zip
Date last modified 11/8/2013 10:56:08 AM
%LocalAppData%\Temp\7z*\setup.exe
Security Level Unrestricted
如果这有任何区别的话,这些策略位于全局计算机策略中。根据事件查看器,被阻止的实际文件是 %LocalAppData%\Temp\7zSE455.tmp\setup.exe。7zSE455.tmp 中的“SE455”发生了变化,所以我无法对其进行硬编码。
我已经通过在测试机器的注册表中从事件查看器中搜索 SrpRuleGUID 来验证上述第一个策略是否正在执行阻止。我还在那里看到了不受限制的规则,因此它被应用了。
如果我删除上面的第一个策略/规则,执行 gpupdate 重启操作,那么它就可以正常工作,这意味着它是那条规则阻碍了我。
从我的阅读来看,“不受限制”应该优先于“不允许”。那么为什么我仍然被组策略阻止?
编辑:一份技术文档(http://technet.microsoft.com/en-us/library/bb457006.aspx) 表示更具体的规则匹配将覆盖不太具体的规则匹配。在我上面的例子中,setup.exe是比 *.exe 更具体。因此,我对无限制覆盖禁止的说法是错误的,但我的规则应该仍按预期工作。不幸的是,它们不能。
答案1
上面的 technet 文档是正确的,但不清楚。路径规则实际上是基于文件夹的。例如,假设您想阻止 c:\temp\xyz\*.exe 但允许 c:\temp\xyz\setup.exe。如果阻止规则是 c:\temp\xyz\*.exe ,则允许规则将被忽略。这是因为“如果对软件应用了两个具有不同安全级别的相同规则,则更保守的规则优先。”
此处的“相同”是指相同的文件夹/路径。由于小路c:\temp\xyz\*.exe 中的路径是 c:\temp\xyz ,而 c:\temp\xyz\setup.exe 中的路径也是 c:\temp\xyz ,则它们被视为相同的规则。即使 c:\temp\x*\*.exe 也会被视为相同的路径,因为 c:\temp\x* 可以匹配 c:\temp\xyz 。是的,对我来说这也像是错误,但事实就是如此。
为了运行setup.exe,您有两个选择:
- 为 setup.exe 创建哈希规则。哈希规则总是覆盖路径规则。它们也非常安全,并且在 Server 2008R2 中相当容易设置。只需创建一个新的哈希规则并浏览到该文件。它会为您创建哈希。这还允许该安装程序从任何路径运行,而不管您可能拥有的其他路径规则。缺点是每次 setup.exe 更改时,您都必须更新哈希规则。您还必须执行需要列入白名单的每个文件。
- 将禁止规则 c:\temp\x* (或 c:\temp\x*\*.exe 或 c:\temp\x*)更改为 c:\temp。在尾随的 \ 后面有一个可理解的 *.*。但是,它不会覆盖特定文件夹,因此不受限制的规则中的 c:\temp\xyz\ 将正常工作。但是,这是新的禁止规则 *.*,因此它可能会捕获您不想限制的其他文件夹,例如 c:\temp\rarc6da\setup.exe。在这种情况下,您需要为每个文件夹制定单独的路径规则。