![Windows 中的签名二进制文件](https://linux22.com/image/1311038/Windows%20%E4%B8%AD%E7%9A%84%E7%AD%BE%E5%90%8D%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6.png)
有没有办法阻止 Windows 运行未签名的二进制文件?我意识到从用户的角度来看这将是一个巨大的痛苦,但是 Windows 中是否有这样的机制可以实现此策略?
答案1
不可能限制于已签名的二进制文件据我所知,一般来说是这样。但是,如果您希望能够定义特定的二进制文件和/或发布者(即来自特定供应商的签名二进制文件),那么是可能。这可以通过应用程序锁。显然它仅在 Windows 7 Enterprise 和 Ultimate 以及 Windows Server 2008 中强制执行。
虽然您可以在运行 Windows 7 Professional 的计算机上创建 AppLocker 规则,但这些规则不会在这些计算机上强制执行。但是,您可以在运行 Windows 7 Professional 的计算机上创建规则,然后导出策略以在运行支持 AppLocker 规则强制执行的 Windows 版本的计算机上实施。
基本上,它是通过组策略设置的。我在这里向你介绍一个相对简单的设置。
打开组策略编辑器(需要专业版、企业版或旗舰版)。
gpedit.msc
在开始菜单中就可以了。展开并导航至左侧的
Local Computer Policy
>Computer Configuration
>Windows Settings
>Security Settings
>Application Control Policies
> 。AppLocker
通过或右键单击菜单创建新规则
Action
。首先,您需要创建默认规则。默认情况下,Windows 和 Program Files 中的所有可执行文件都是允许的,使用 NTFS 权限以确保仅有的管理员(以及系统等,不是普通用户)有写对这些文件夹的权限,否则用户可能会将未签名的可执行文件转储到其中并运行它们。我们必须允许其中已有的所有内容,否则您的操作系统将崩溃。默认规则操作是仅运行 AppLocker 规则集合中明确允许的应用程序。虽然没有设置来配置默认规则行为,但您可以使用 AppLocker 的默认规则集合来覆盖默认规则行为。为此,请创建一个允许规则,并将路径条件设置为 *。此配置将允许所有文件运行。然后,您可以创建拒绝规则来阻止特定文件。
创建新规则。使用它来允许发布者或文件哈希。您需要其中任何一个的示例。
引用微软文章的常见问题解答:
发行商规则条件只能用于由软件发行商进行数字签名的文件。此条件类型使用数字证书(发行商名称和产品名称)和文件属性(文件名和文件版本)。可以为整个产品套件创建此类规则,这使得规则在大多数情况下在应用程序更新时仍然适用。
路径规则条件基于特定应用程序的文件或文件夹安装路径。
文件哈希规则条件基于 Windows 为每个文件加密计算的唯一文件哈希。此条件类型是唯一的,因此每次发布者更新文件时,您都必须创建新规则。
- 我不会使用路径,除非您试图阻止的人被拒绝写访问权限。
我没有当前安装的企业版或旗舰版来进行检查,但我相信您必须在可执行规则(配置 AppLocker 执行?)之上启用 AppLocker。
另一种方法是仅允许未签名的可执行文件以基本用户身份运行,即禁用未签名文件的 UAC 提升。这也可以通过组策略完成,用户帐户控制:仅提升已签名和验证的可执行文件。
这具有用户能够自行签名文件的固有弱点。恶意软件也可能使用通用证书进行签名,这就是 AppLocker(以及 7 之前的软件限制策略)更加安全的原因。
答案2
是的,verifier.exe。我会确保使用 verifier.exe /bootmode oneboot 作为您设置的任何内容的补充 - 因为这可能会在启动期间或在登录屏幕出现后立即使 PC 蓝屏。如果启动到恢复/winPE 模式,可以通过在注册表中禁用验证程序服务来解决这两种情况。
/volatile 和 /reset 也很有用!