如何配置 Windows 不执行篡改的二进制文件?

blo*_*aak 6 digital-signatures windows-server-2008-r2 windows-server-2012

为了说明数字签名证书的好处,我编写了一个 .NET 可执行文件“demo.exe”,它调用“demo.core.dll”中的一个函数。我对两个可执行文件进行了数字签名。执行时,它会打印一条消息“你好。你好吗?”。

使用十六进制编辑器将“demo.core.dll”中的消息修改为“您已被黑客入侵”。“demo.core.dll”上的数字证书验证失败。运行“demo.exe”,显示“你被黑了”。

我预计 Windows 将无法执行 DLL。

这否定了数字证书的价值。如何配置 Windows 不加载具有无效证书的篡改二进制文件?

Rya*_*ies 9

编辑:我忘记了AppLocker

在执行以下过程之前,请确保您为阻止标准用户运行每用户应用程序中描述的规则集合创建了默认规则。

只允许运行已签名的应用程序


1.要打开本地安全策略 MMC 管理单元,请单击开始,键入 secpol.msc,然后按 Enter。

2.在控制台树中,双击“应用程序控制策略”,然后双击“AppLocker”。

3.右键单击可执行规则,然后单击创建新规则。

注意注意

此规则可防止运行未签名的应用程序。在实施此规则之前,请确保您要在组织中运行的所有文件都经过数字签名。如果任何应用程序未签名,请考虑实施内部签名流程,以使用内部签名密钥对未签名的应用程序进行签名。

4. 在开始之前页面上,单击下一步。

5.在“权限”页面上,单击“下一步”接受默认设置。

6.在“条件”页面上,单击“下一步”。

7.在发布者页面上,注意默认设置是允许任何签名文件运行,然后单击下一步。

8. 在“例外”页面上,单击“下一步”。

9.在“名称和描述”页面上,接受默认名称或输入自定义名称和描述,然后单击“创建”。