每次我们重新发布软件时如何阻止防病毒误报?

Posted

技术标签:

【中文标题】每次我们重新发布软件时如何阻止防病毒误报?【英文标题】:How to stop antivirus false positives everytime we re-release software? 【发布时间】:2019-02-20 22:08:55 【问题描述】:

Windows Defender 和 AVG/Avast 每次发布时都会将我们的软件应用程序视为病毒/误报。我们有一个代码签名证书并添加了标记。

每次我们发布软件时,我们都必须在多个 AV 供应商网站上进行误报。

我们如何才能让我们的公司代码签名证书标记为安全或避免每次发布时耗时的误报报告流程?

编辑:我们是否可以支付任何首映支持来自动完成这项工作?

Edit2:由于这些误报,我们的证书实际上是由于“恶意软件分发”而被吊销的。似乎除了再买一个之外别无他法。

【问题讨论】:

不是您要查找的内容,而是:将您的可执行文件上传到 virustotal.com,检查您被标记的产品以及启发式匹配的内容(如果有的话)。接下来,尝试删除部分代码并重新上传。分而治之,找到触发 AV 的位元。这就是恶意软件作者的工作流程,对他们来说效果非常好;) 这就是我们所做的,但每个新版本都会再次重新标记。所以我们每次更新时都必须提交误报。我们的应用程序被混淆和打包,所以这就是触发误报的原因,我们有太多的熵,所以它看起来像加密。我们添加了一个启发式存根(基本上是一个非常简单的 notepad.exe 之类的程序到标题中,它丢弃了 50% 的误报(因为它们只扫描前 4kb 左右的文件)但是仍有不少人扫描整个文件和标记它。 我明白了。在这种情况下,恐怕您要么不得不忍受这种情况,要么自动化误报提交过程,要么放弃混淆/打包。只是出于好奇:您的产品中是否存在如此重要的 IP,以至于从业务角度来看,混淆是有意义的?您可以切换到 DRM 方案吗? 我们有电话回拨代码,当人们尝试使用我们的软件时,它会告诉我们。它每周发生一次。我想知道游戏制造商如何处理这个问题,他们使用混淆和打包程序。 【参考方案1】:

签名证书在大多数情况下无济于事,它可能是一种类似于其中列出的病毒的编码模式,你能做的最好的就是联系 AV 将你列入白名单以通过它。

【讨论】:

问题是白名单是每个哈希。所以每次发布我们都必须再次经历这个过程。大公司在这种情况下会做什么?【参考方案2】:

我的建议是与 AV 供应商联系并告诉他们您的问题。可能您的软件定义了一些可能触发 AV 启发式的字符串或模式。您可以尝试在基本代码中轻松找到这些字符串并对其进行 base64/xor/加密,看看 AV 会发生什么,这可能有助于解决您的问题

【讨论】:

我们已经这样做了。问题是它是每个散列的,我们必须在每个版本中都这样做。【参考方案3】:

虽然您的软件肯定有可能与已知的恶意软件有一些共同特征,但我猜这是一种“云”检测。

通过marketing speak,它基本上意味着(以及其他可能的原因)如果您的文件在许多其他 PC 上没有被看到,它就会被标记为可疑。

【讨论】:

我们使用加密的打包程序,因此分析器引擎无法分析任何内容。【参考方案4】:

尝试删除任何可能激活防病毒标志的内容,例如自解压、UPX、文件加密、可疑网站请求或可疑行为。

为什么要删除这些?

    自解压被触发,因为它是一种可疑行为(不正常) 检测到 UPX 是因为一些恶意软件试图通过 UPX 压缩来隐藏恶意软件,因为防病毒软件需要对其进行解压缩。 文件加密很容易被检测为 Riskware / EncoderTool / Ransomware 可疑网站:Evit 从奇怪的 URL 下载文件。

我在程序自动更新时遇到了这个问题,防病毒软件将其检测为 ***Downloader。

如果你的程序不做这些事情,我帮不了你更多,因为这是程序员社区的问题。

希望能帮到你

【讨论】:

这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review 我已经编辑了评论以澄清,对不起,我是 Stack Overflow 的新人。现在我解释一下防病毒软件如何检测到它们。

以上是关于每次我们重新发布软件时如何阻止防病毒误报?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止我的软件出现误报病毒警报? [复制]

正在运行的 Windows 服务阻止文件下载的防病毒软件

我的可执行文件中的防病毒误报

如何让已安装的防病毒软件检测到程序?

从 python 代码构建 exe 以避免 AV 误报的最佳方法

Delphi 7 中的病毒