防病毒软件之间有何冲突?

防病毒软件之间有何冲突?

我被告知永远不要安装防病毒 (AV) 软件,因为它们会发生冲突。即使是 Windows Defender(自 Windows 8 起)在检测到另一个 AV 软件时也会自行禁用。

我很好奇两者怎么会发生冲突。我目前能想到的唯一情况是,当两者都检测到同一种病毒并试图同时隔离它时,这可能会导致一场“病毒征服战”。对我来说,这肯定不是一个令人信服的理由不是安装两个AV软件。


更不用说系统性能问题了。我想我的 Intel Kaby Lake i7 可以凭借 16 GB 的安装内存轻松处理这些问题。

答案1

普通防病毒扫描程序可以共存而不会出现任何问题。实时保护可能会导致 AV 产生干扰。

具有实时保护功能的 AV 软件会将自身深度集成到操作系统中。它会修补部分操作系统代码,以便能够观察程序试图执行的任何操作,并在必要时阻止它们执行这些操作。操作系统不提供此类开箱即用的功能,因此 AV 软件使用非常规方法来实现此效果。

例如,它可以用其自定义函数替换操作系统提供的“写入文件”函数。当程序尝试写入文件时,它将调用“写入文件”函数。但该函数已被 AV 修补,程序的请求将被重定向到 AV。AV 将对其进行检查并确定它是否正常。如果正常,它将调用实际的“写入文件”函数。否则,它将采取适当的措施以防止恶意软件造成任何损害。

不幸的是,修补操作系统代码不仅是杀毒软件的必要条件,而且也是可疑的。如果你正在创建病毒,难道你还希望能够拦截系统操作,例如阻止杀毒软件扫描病毒文件吗?

因此,AV 有防护装置,可以监视代码钩子是否仍在原位,并在必要时重新安装它们。此时您应该知道这是怎么回事了……

两台具有实时保护功能的 AV 可以开始保护您免受彼此的可疑行为的侵害。这可能会导致从轻微的性能故障到系统崩溃等各种问题。

在某些情况下,即使没有实时保护的 AV 扫描仪也会产生干扰。AV 如何检测病毒?它们有自己的病毒特征,即已知病毒独特特征的数据库。因此,这样的数据库也可能显得可疑,因为它们具有病毒的独特特征。因此,一个 AV 可以假设将其他 AV 的特征检测为恶意代码。

还有一些 AV 引擎设计用于与其他 AV 共存,例如 Hitman Pro。ClamWin(免费且开源)在共存时也应该相对没有问题,因为它仅包含一个扫描器而没有任何实时保护。

答案2

当两个程序都尝试使用同一资源时,就会发生冲突。当多个程序同时尝试操作同一资源时,存在以下风险:并发问题。当一个进程对资源执行更改,而另一个程序(中间正在进行对资源的修改)没有意识到这一点,因此无法适应时,就会发生并发问题。

以下是教科书并发问题的一些示例。

后进先出问题

假设您正在使用 FTP 目录共享一个文档,您和您的同事正在协作处理一个文档。您下载该文档,编辑它,然后再次发布,您的同事也这样做了。

  1. 您下载文档,并开始进行一系列需要 1 小时的更改。
  2. 您的同事与您同时下载该文档,但仅需半小时即可完成并重新上传他们的更改。

结果:当您上传文档时,您会覆盖他们的更改,并且这些更改将会丢失。

过时的数据

在同样的场景中,你的同事在没有告诉你的情况下做了一些你需要的更改。你的文件副本没有更改,

结果:您自己用略有不同的词语写下相同的更改,或者更糟的是,发送一封恶意的电子邮件,说明它是如何缺失的。

这看起来像是一个简单的场景,但在多访问数据库等高级情况下,如果您在某人更新记录的同一毫秒内选择记录,则可能会遇到严重的问题。

计算错误

一对已婚夫妇拥有一个共同的银行账户和 ATM 卡。他们的账户中有 1000 美元。在日常生活中,他们住在城镇的两端,并且同时使用 ATM。他们都提取了 1000 美元。两台 ATM 都知道余额为 1000 美元,因此允许提款,然后将新余额写回中央数据库,即新余额为 0。

结果:银行现在已经损失了 1000 美元,但却不知道。

在所有这些例子中,都有多方同时或大约同时对共享资源执行操作。因此有术语“并发”或“同步性”。

解决方案

有几种方法可以解决此类问题。一种方法是使用在访问资源的多方之间进行仲裁的软件。这些仲裁程序有两种选择,具体取决于操作的范围和可预测性:

  • 智能地合并操作
  • 阻止/锁定两个操作之一,直到注意到的第一个操作完成。

也可以阻止/锁定,只要两个程序都设计为检查指示资源状态的共享标志。这通常需要定制开发。

您的答案

在您的特定情况下,资源是磁盘上的文件。同步性来自文件读/写等事件,这些事件会触发两个 AV 程序中的访问扫描。

Windows 充当仲裁者,通过以下方式解决文件系统并发问题:锁定文件当程序打开它们进行特定操作时。

这意味着两个程序都在争相访问文件,谁先到达谁就获得锁定。在较低级别,这会导致一些磁盘抖动,因为两个程序都开始自己的 I/O 活动,迫使硬件分别执行这两项任务,但 IO 指令却交错,导致两者效率大大降低,最终只有其中一个会获胜。另一个将旋转并等待能够建立自己的锁定。

答案3

两个检查过程相互竞争,检查驱动器和网络 I/O。

它会拖慢 CPU,而且没有任何优势,因为大多数 AV 制造商都共享签名,所以在对方更新之前,任何一方都无法检测到恶意软件。

即使您有容易受到感染的鲁莽习惯,单一的、知名的和业界认可的 AV 也能充分保护您的系统,并且其效果与同时使用 10 个 AV 产品一样有效。

相关内容