【问题标题】:How to avoid antivirus during installation?安装过程中如何避免杀毒?
【发布时间】:2022-07-06 02:40:33
【问题描述】:

刚刚为我的 Qt 项目制作了一个安装程序(使用 QTIFW),但是当我尝试在其他机器上安装它时,360 Total Security 中断了安装过程。

它弹出并抱怨d3dcompiler_47.dll,要求用户允许/阻止该文件。如果用户什么都不做,或者不允许,它 似乎阻止 QTIFW 将其作为应用程序安装的一部分编写。 这导致了以下错误

无法创建C:\Program Files\company\project\d3dcompiler_47.dll"

这太可怕了。我想知道如何处理这种情况?

【问题讨论】:

  • 来自男性软件扫描仪的误报可能很难修复。我会将发布文件以及完整设置单独上传到virustotal.com,以查看哪些恶意软件扫描程序标记了哪些二进制文件。当您看到问题的范围时 - 如果有很多文件 - 您应该向后工作以查看如何将文件列入白名单。有时您可以选择不同的编译器设置来避免该问题,但通常您并不那么幸运。然后,您需要通过其他方式将您的文件列入白名单 - 例如联系供应商或签署文件。
  • 还要确保文件实际上没有感染真正的恶意软件! (明显地)。当我说联系供应商时,我的意思是恶意软件扫描程序供应商。不要对快速回答抱有希望,但您可以要求他们解释是什么让文件看起来像恶意软件。还要检查问题文件中的哪些 API 调用可能会导致安全警告(异常和/或危险的 API 方法)。这是 Qt 制作的文件吗?就像这是他们的运行时文件?如果有,请立即联系他们。
  • 对不起所有的 cmets,新的东西突然出现在脑海中:microsoft.com/en-us/wdsi/filesubmission ("Microsoft 安全研究人员分析可疑文件以确定它们是威胁、不需要的应用程序还是正常文件。提交您认为是恶意软件的文件或您认为被错误归类为恶意软件的文件。")。最后:On digital signatures and Microsoft's "trust model" for "SmartScreen".
  • 可以安全地假设其他恶意软件扫描程序也会检测到该文件 - 如果 360 Total Security 检测到它。您必须使用所有可用的扫描仪进行检查,以确定您的文件在客户端站点部署期间是否存在误报风险。
  • 安装程序文件是否经过数字签名?如果没有,我想许多防病毒和反恶意软件都会处于高度戒备状态。

标签: qt installation windows-installer silent-installer qt-installer


【解决方案1】:

误报:来自恶意软件扫描仪的误报可能很难处理。要检查是否使用多个恶意软件扫描程序,您可以单独上传发布文件以及完整设置到https://www.virustotal.com。该服务对提交的文件运行许多恶意软件扫描程序,因此您可以查看哪些恶意软件扫描程序标记了哪个二进制文件。还有一些其他此类反恶意软件在线扫描程序,例如KasperskyAvira 等...

更新:然后是Process Explorer。查看this tweet chain,了解如何检查正在运行的应用程序是否存在每个进程和加载文件的恶意软件攻击。

当您看到问题的范围(标记了多少文件)时,您应该向后工作以了解如何解决问题。这可能涉及获取被恶意软件供应商列入白名单的文件,从您的设置中删除它们,或修复标记文件的技术问题等......下面列出并详细说明了一些选项。


修复:您可以尝试技术和实用修复。不要指望这很容易。误报问题是一个非常严重的部署问题。以下建议的修复和解决方法是随机顺序的:

  • 编译器设置:有时您实际上可以选择 different compiler settings 来避免该问题,但通常您并不那么幸运。我已经在使用特殊 Spectre / Meltdown 缓解设置编译的文件中看到了这一点。它们被恶意软件扫描程序标记为未知。

  • 危险的 API 调用:您还应该检查问题文件中的 what API-calls are made,这可能会导致安全问题警告(异常和/或危险的 API 方法) - 如果可以,请删除它们。我听说过恶意软件供应商希望拒绝将您的二进制文件列入白名单的情况,因为二进制文件的作用对他们来说毫无意义(尝试调用嵌入式系统的固件更新作为安装程序的一部分,或者由您正在安装的安全工具)。

  • 消除文件Removing certain components from your application 有时也有帮助 - 特别是如果它们是为了方便而添加到您的应用程序的第三方组件.换句话说,您的应用程序在没有它们的情况下运行良好。解决问题比解决问题要简单得多。

  • Vanilla Installer:有时您可以split problem components into a separate setup,这样您的主要安装程序就可以顺利安装。这可以极大地帮助解决企业环境中的支持问题或整体应用程序批准。您还可以进行 2 个完整设置,其中一个已删除所有可能的误报触发器 - 您的 "vanilla setup" 应该在所有情况下都没有戏剧性地安装。

  • 数字签名:带有数字签名的Signing the file可以提供帮助,因为正确的证书"buys trust outright" in reputation-based score systems such as Microsoft SmartScreen。请注意,这需要是EV-level certificate

  • 恶意软件扫描程序白名单Submit file for white listing。然后是高级安装程序的 Bogdan Mitrache 解释的恶意软件供应商的正式方法:Antivirus Whitelisting Pains。您将文件提交给他们以列入白名单。本文解释了在交付软件时将二进制文件标记为恶意软件的真实体验。必读。

Microsoft SmartScreen:Microsoft 有自己的方式来提交文件以供分析和列入白名单:https://www.microsoft.com/en-us/wdsi/filesubmission。他们声明:“Microsoft 安全研究人员分析可疑文件以确定它们是威胁、有害应用程序还是正常文件。提交您认为是恶意软件的文件或您认为被错误归类为恶意软件的文件。” .


签名恶意软件:无论您做什么,请确保相关文件实际上不是真正的恶意软件!显然,您自己的文件可能会被感染。好好测试。如果您签署恶意软件并将其交付给您的客户,则数字签名可以证明您已将恶意软件交付给他们。不好。 And then.

有关数字签名的更多信息:一些信息和链接可让您的设置和/或文件签名:

【讨论】:

    猜你喜欢
    • 2022-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多