41

我刚刚遇到了一个烦人的问题。突然, Avira AntiVir开始将我软件中的一个可执行文件标记为病毒。

由于几乎所有用户的默认操作是单击“确定”并且 Avira 建议将病毒隔离,因此我的大多数用户都在删除此可执行文件。

好吧,我们不要自大,检查一下我是否真的被感染了。我将文件发布到http://www.virustotal.com并且在所有防病毒软件中,只有 Avira 将其标记为受感染。此外,我用两种不同的防病毒软件扫描了我的电脑,它是干净的。

我已经向我的用户发布了一封邮件,解释了正在发生的事情,但这对我的支持来说是一个开销,我真的不想要。

好的,问题是:有没有办法避免这种行为?除了签署文件之外,我想不出任何办法,(真的不知道它是否会解决)但让我们看看你是否有任何创意。

4

6 回答 6

27

令人惊讶的是,Delphi 应用程序被 AV 应用程序报告为(潜在)有害。它发生在我前一段时间,使用 Delphi 2009,请参阅http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Computing/2010_March_20#Delphi.2FAVG_Issue

在 SO,我们也有

还有很多。

它可能是真正的诱导病毒。但最有可能的是,这是一个误报。

于 2010-07-26T21:32:19.687 回答
24

安德烈亚斯的回答非常好;Delphi 应用程序经常发生这种情况。

签名代码没有任何区别——我让 NOD32 在签名的 Delphi 代码上抛出误报。

如果有任何技术可以避免误报,病毒作者将使用它们来避免检测。

不幸的是,我发现最好的行动方案是被动而不是主动。所有 AV 供应商都有报告误报的工具,我发现他们对报告有反应。

于 2010-07-27T00:53:47.573 回答
4

许多诚实的开发人员因为粗心的防病毒软件而遇到问题。另请参阅:如何防止我的软件出现误报病毒警报?

想象一下,对于他们显示的每一个误报,您都会失去一个可能的客户。程序员应该对此类防病毒产品采取行动,并迫使他们对误报更加小心,甚至为我们因这些产品而损失的销售额获得一些收入。

更新:
最近我观察到:

  • 当程序在“发布模式”(带有编译器优化)下编译时,VirusTotal.com 上的误报数量要比在“调试模式”下编译时高得多。
  • 使用 EurekaLog 时探测天空火箭。

因此,请在发布程序之前提交给 VirusTotal!


2019 年更新:
不幸的是,InnoSetup 也未能幸免。我使用 InnoSetup 创建了一个虚拟安装程序并将其上传到 VirusTotal。52 个程序中有 5 个报告了误报!更新更新:现在误报数扩大到 9!

于 2010-11-21T12:11:54.877 回答
3

作为解决方案,您可能希望:

1 - 验证你的 Delphi 编译器没有被感染
2 - 验证你的源代码和库没有被调和(那是Induc 病毒的 MO )
3 - 用 AV 检查你的(保证的)干净的 exe。如果他们报告误报,请联系他们,以便他们修复测试。

4 - 如果您需要在有机会更正 AV 之前分发,请签署您的 exe,以便您的用户可以验证它是干净的。

于 2010-07-27T00:45:18.003 回答
3

反病毒产品可能会在 Delphi 生成的 exe 上触发的原因有很多,一些常见的原因是:

  • 许多病毒是用 Delphi 编写的,因此您的 exe 可能有一些看起来与现有病毒相同的代码部分。
  • 程序的导入表用于确定 exe可能执行的操作,例如链接到凭据管理或磁盘管理功能会触发某些 AV。

正如之前建议的那样,尝试使用VirustotalJotti等在线服务扫描您的发布版本,并始终向供应商报告您的误报,而不是试图防止误报。我的经验是 AV 供应商在提交时反应非常快。

于 2010-07-27T07:21:20.393 回答
3

在 Free Pascal/Lazarus 组和 bugtracker 中,此类消息几乎在每个版本和/或每个月都会发生。

我们通常建议用户忽略所有“通用”或“启发式”扫描类型,并坚持基于签名的扫描(正如大多数公司病毒扫描程序所做的那样)。

这是因为它几乎总是一个启发式警报,而不是特定的恶意软件。从检测到的“病毒/特洛伊木马”几乎总是属于“通用”类型这一事实中可以很容易地看出这一点。通常病毒扫描仪也是典型的“家庭”病毒扫描仪,或普通病毒扫描仪的家庭版(诺顿曾经特别糟糕,现在它主要是规模较小的“廉价”家用扫描仪)

然而,我们主要与开发人员交流,并且已经难以传达此信息。我可以想象,当分发给无知的最终用户时,这是一个真正难以传达的信息。

尽管如此,也没有其他办法。

于 2010-07-27T10:08:51.413 回答