防病毒软件如何相互冲突?


59

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

我很好奇两个人如何冲突。我目前只能弄清的唯一情况是,当两者都检测到同一病毒并尝试同时隔离它时,这可能导致“病毒征服之战”。对我而言,这当然不是说不安装两个AV软件的令人信服的理由。


更不用说系统性能问题了。我想我的Intel Kaby Lake i7可以通过安装的16 GB内存轻松处理它们。


1
冲突/争执问题(由您在回答中提到)被夸大了;操作系统旨在处理/解决此类问题。我觉得这是因为防病毒程序的数据库存储着他们正在寻找的已知病毒的特征。因此,一个反病毒程序可以将另一个反病毒程序检测为恶意程序,反之亦然。
木屑

2
@sawdust,我理解您的发言,但是只有多个AV可以进行主动检查是可以的,如果不兼容是由于疏忽检测到彼此的签名数据库而导致的,则不可能。
弗兰克·托马斯

尽管有答案,@ PeterMortensen的“防病毒扫描程序”听起来还是很奇怪。我个人更喜欢“软件”,无论它是否是可数名词。
iBug

Answers:


83

普通的防病毒扫描程序可以共存,没有任何问题。可能导致AV干扰的带电保护功能。

具有实时保护功能的AV软件将其自身深深地集成到操作系统中。它修补了一些OS代码,以便它可以观察任何程序尝试执行的操作,并在必要时阻止它们执行操作。操作系统没有开箱即用的功能,因此AV使用较少的传统方法来达到这种效果。

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

不幸的是,修补OS代码不仅对于AV来说是必要的,而且也是可疑的。如果您正在创建病毒,您是否还希望能够拦截系统操作,例如防止AV扫描病毒文件?

因此,AV具有防护装置,可以监视其代码挂钩是否仍在适当的位置,并在必要时重新安装它们。此时,您应该看到前进的方向...

两个具有实时保护的AV可以开始保护您免受彼此的可疑行为的侵害。从轻微的性能故障到系统崩溃,这可能导致任何事情。

在某些情况下,即使没有带电保护的AV扫描仪也会干扰。AV如何检测病毒?好吧,他们有自己的病毒签名,即。已知病毒特征的数据库。因此,碰巧这种数据库也可能看起来可疑,因为它们具有病毒的独特功能。因此,一个AV可以假设将其他AV的签名检测为恶意代码。

也有旨在与其他AV共存的AV引擎,例如Hitman Pro。ClamWin(免费和开源)在共存时也应该相对没有问题,因为它仅包含扫描仪而没有任何实时保护。


41
从某种意义上说,防病毒软件本身就是病毒。想象一个城市,有两个警察无法沟通,也没有穿制服。该人员使用手电筒在建筑物内寻找犯罪分子,就像将另一部门人员的关节包裹在犯罪现场一样。
TJL

@ComicSansMS有时,甚至一个危害大于病毒。例如中文的“免费”视听软件。
iBug

30
@iBug除了“中文”和“免费”之外,我已经看到许多知名品牌(McAfee,Norton / Symantec,Panda等)的不良行为。
鲍勃(Bob)

1
请注意,这两个扫描仪中只有一个需要实时检测才能引起严重问题-我曾经遇到一个问题,那就是持久性很强的CCleaner和不情愿的Symantec Endpoint Protection都在为删除文件而斗争。
桑契斯(Sanchises)'17

2
@Bob:我们甚至都没有开始谈论它们的漏洞...
Matteo Italia

14

程序在尝试使用相同资源时会发生冲突。当多个程序尝试同时在一个资源上运行时,存在并发问题的风险。当一个进程对资源进行更改时,另一个程序(中间是它自己对资源的修改)不知道并因此无法容纳,因此会发生并发问题。

这里有一些教科书并发问题的例子。

最后胜利问题

想象一下,您正在使用FTP目录共享一个文档,您和您的同事正在此文档上进行协作。您下载文档,对其进行编辑,然后再次发布,就像您的同事一样。

  1. 您下载文档,并开始一组更改,这些更改需要1个小时。
  2. 您的同事在下载文件的同时进行下载,但仅需半小时即可完成并重新上传他们的更改。

结果:上载文档时,您将覆盖它们的更改,并且这些更改将丢失。

陈旧数据

在相同的情况下,您的同事会进行一些您需要的更改,而不会告诉您。您的文件副本没有更改,

结果:您自己用稍有不同的词写了相同的更改,或者更糟糕的是,发出了一封有关丢失方式的讨厌电子邮件。

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

计算错误

一对已婚夫妇拥有一个共享的银行帐户和ATM卡。他们的帐户中有1000美元。在日常生活中,他们在城镇的对面,并且都在同一时刻访问ATM。他们俩都提取了1000美元。ATM都知道余额为1000,因此它们允许取款,然后将新余额为0写回中央数据库。

结果:银行现在有1000美元,甚至都不知道。

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

解决方案

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

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

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

你的答案

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

Windows充当仲裁程序,通过在程序针对特定操作打开文件锁定文件来解决文件系统并发问题。

这意味着这两个程序都在争相访问该文件,而首先到达该文件的人将获得该锁。在较低的级别上,这会导致某些磁盘崩溃,因为两个程序都开始它们自己的I / O活动,迫使硬件分别执行两个任务,但又交织了IO指令,这使得效率大大降低,最终只有一个他们会赢。对方将旋转并等待能够建立自己的锁。


9
如果防病毒1注意到已访问该文件并对其进行扫描,则并发问题甚至会变得更糟,然后防病毒B依次看到该文件已被访问,因此防病毒B对其进行了扫描,然后防病毒A注意到该文件在访问后已被访问。上次扫描,因此会再次扫描,等等...(我在我的朋友笔记本电脑上看到这种情况,Windows在启动后约10-20分钟后冻结,在该截止日期之前变得更慢)
Ferrybig

4
并发是一个或多或少已解决的问题,而不是真正针对AV的问题。我之所以投反对票,是因为我认为您的答案完全没有解决核心问题,而是着重解决了一个问题,如果该问题没有得到解决,它将对大多数计算机软件产生影响,但这并不是因为它已经解决。
gronostaj

1
@gronostaj,请问,您认为核心问题是什么?对磁盘上所有读/写事件做出反应的活动AV会产生一个非常独特的并发问题,因为它们都想对同一事件做出反应。这在其他软件中并不常见。至于它是如何解决的,在乎澄清吗?
弗兰克·托马斯

2
我已经尝试在回答中解决这个问题。从两个AV并行尝试导致竞争状态的意义上说,它们不会竞争磁盘I / O。每个人都将尝试将自己注入操作系统。当一种AV被另一种AV扫描时,两种情况都将以稳定的方式解决,或者以易碎的混乱结束,或者AV继续尝试相互支配。
gronostaj

1
@gronostaj从根本上来说,两个答案都不都是排他性的吗?为什么OS钩子争用不存在问题(即:为“写文件”而战)... AND ...并发问题?如果我错了,请纠正我,但两个问题看起来都像是“互补”问题,这会使另一个问题激怒(同时在其上添加其他问题-每个AV都存在安全性故障,性能问题,膨胀软件等)。似乎这是将一个大问题压缩成一个问题的斗争……也是确定谁有“那个”问题的斗争。
WernerCD '17

3

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

它使CPU陷入瘫痪,并且没有优势,因为大多数AV制造商共同共享签名,因此在更新彼此之前,两家都不会检测到恶意软件。

即使您有容易受感染的鲁infection习惯,并且与同时使用10个AV产品一样有效,单个,广受业界认可的AV将足以保护您的系统。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.