如何使用武力完整性检查签名用户空间二进制(MSFT交叉签名)

发布于 2025-02-07 07:55:30 字数 1574 浏览 2 评论 0原文

我们曾经在使用VC ++/IntegrityCheck Flag构建的用户空间中运行二进制运行,该标志在可执行文件上设置Image_dllcharacteristics_force_integrity flag(请参见更多在这里wiki/contents/articles/255. forced-integrity-signing-of-potable-cocutable-pe-files.aspx“ rel =” nofollow noreferrer“> s einder )。我们用旧证书签名,并且运行顺利。现在,我们获得了新的证书,并通过安全检查(事件日志中的Defender提示 +日志)阻止二进制证书。

  • 是的,我们在受信任的商店中添加了证书。
  • 是的,我们在签名时使用了页面哈希(/pH)开关。
  • 如果我们在平台上启用测试标志(通过BCDEDIT),那么

新的证书正常运行,主要区别似乎是Microsoft不会交叉签名。 不再支持交叉签名所以也许有人知道是否有其他选择或如何解决问题?也许 /用户空间代码的IntegrityCheck标志不再有效?

我们在MSFT论坛上发现了同样的问题 https://learn.microsoft.com/en-us/aswers/questions/348812/signed-file-file-fails-file-fails-to-start-to-start-becauce-of-bad-bad-bad-bad-signatur.html 。仍然没有精确的答案如何解决它。

We used to have a binary running in user space built with VC++ /integritycheck flag which sets IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY flag on executable (see more here and here). We signed it with our old certificate and it run smoothly. Now we were given new certificate and binary is blocked by security check (defender prompt + log in event log).

Audit fail event

  • Yes, we added certificate to our trusted store.
  • Yes, we used page hash (/ph) switch while signing.
  • New cert running fine if we enable test sign on a platform (through bcdedit)

The major difference seems to be that new certificate is not cross signed by Microsoft. Cross signing is no longer supported so maybe anyone knows if there's alternative or how to workaround it? Maybe /integritycheck flag for user space code is no longer valid?

Same issue we found at MSFT forum https://learn.microsoft.com/en-us/answers/questions/348812/signed-file-fails-to-start-because-of-bad-signatur.html. Still no precise answers how to solve it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文