防病毒软件如何工作?


54

因此,我最近在考虑病毒,并且想知道反病毒到底如何保持正常运行?考虑到已经编码了几周的任何人都可以一起破解某些确实会对某人的PC造成不良影响的东西,仅此数量就可以构成一个简单的哈希禁止列表,那么杀毒软件该如何做呢?他们是否监视流程活动并且对执行类似病毒的行为有3条警告规则?如果是这样,是什么阻止它触发完全无害的事情(例如我在\ system32中移动文件)?

我做了一些谷歌搜索,但是常规的地方并没有特别的帮助,而且我在这里找不到骗子,所以我想问一下:)


4
@joe无需添加Windows标记。防病毒在任何操作系统中的工作方式几乎都是相同的。同样,AV的工作方式也不是主观的。
alex

哦。对不起,我当时以为这可能是主观原因。我了解
joe

6
当您购买笔记本电脑时,它们已经预装好了,并且要牢牢抱怨60天,您应该为它们注册/付款,直到最终从系统中取出它们。通常,它们的对话框是模态对话框,并且是最顶层的,因此它们可以有效地阻止您执行其他任何操作,并且它们从来没有提供简单的卸载方法。
Daniel Daranas 09年

碰到+1提出了一个非常好的问题
dag729 2010年

AV试探法很复杂,但是将无法检测到新威胁(或现有威胁的巧妙变体)。启发式方法通常会对完全良性的软件/代码产生误报。视音频软件很有用,但通常是拐杖,给用户一种虚假的安全感。我已经在(virustotal.com/en)上测试了许多已知病毒,赛门铁克(Symantec),迈克菲(McAfee)和AVG(AVG)等知名域名什么都检测不到(尽管卡巴斯基通常表现良好)。最好是了解您的系统,观察您的工作...并进行备份!
AlainD

Answers:


17

2002年的这篇文章讨论了如何构建防病毒引擎。

本文将从开发人员/软件工程师的角度从头开始描述开发防病毒程序所涉及的基本思想,概念,组件和方法。它将侧重于防病毒引擎(以下称为AV引擎)的主要元素,并将不包括图形用户界面,实时监视器,文件系统驱动程序和某些应用程序软件(例如Microsoft Exchange或Microsoft插件)的方面。微软办公软件。尽管可以以相同的方式设计在单个平台(例如Palm OS或EPOC / Symbian OS)上运行/扫描的AV引擎,但本文将重点介绍设计复杂得多的多平台扫描引擎。

还有一篇关于启发式技术来检测感染的文章。这也是一个有趣的阅读。


对该启发式文章进行+
1-

那确实是值得一读的。启发式部分至关重要:)
alex

看过之后,我对防病毒有了新的尊重,这是非常聪明的东西!
Phoshi

它们是非常复杂的应用程序。不幸的是,他们已经把它们变成了很多人,包括我自己,都讨厌的东西。自定义,草率,不直观的界面,只是为了在功能列表中添加另一个要点而膨胀的功能。这些东西使他们变成了噩梦。不过,情况正在发生转机。一个好的AV解决方案的最好的例子是MSE。
Alex

这是启发式的技巧,对不起joe:P好的答案,无论:) @alex; have,我必须同意,但是理解下面的复杂性会使我更加同情。它是复杂的内容,没有足够的理由来吸引潜在的客户,而“可定制的颜色GUI!” 可能:(
Phoshi

13

大约一年前,我参加了F-Secure的主要研究人员之一MikkoHyyppönen的演讲。他展示了他们的自动化测试网络,其中他们为发送给他们的每个样本创建虚拟机,分析其结构,使其运行,记录其所做的一切,将其与以前的样本进行交叉引用,并生成摘要供以后检查。如果人类认为这是病毒,则系统会自动生成检测签名并将更新发送给客户。我想象其他供应商也有类似的系统来保持其签名数据库为最新。


4

摘自防病毒软件如何工作?(AntivirusWorld):

防病毒软件程序是一种计算机程序,可用于扫描文件以识别和消除计算机病毒和其他恶意软件(恶意软件)。

防病毒软件通常使用两种不同的技术来完成此任务:

  • 通过病毒字典检查文件以查找已知病毒,从任何计算机程序中识别出可能表明感染的可疑行为
  • 大多数商业防病毒软件都使用这两种方法,重点是病毒词典方法。

病毒词典方法 在病毒词典方法中,当防病毒软件检查文件时,它指的是由防病毒软件的作者识别出的已知病毒的词典。如果文件中的一段代码与字典中标识的任何病毒均匹配,则防病毒软件可以删除该文件,对其进行隔离,以使其他程序无法访问该文件,并且其病毒无法传播或尝试通过从文件中删除病毒本身来修复文件。

为了在中长期取得成功,病毒词典方法要求定期在线下载更新的病毒词典条目。当发现新病毒是“狂野的”时,具有好奇心和技术倾向的用户可以将其感染的文件发送给防病毒软件的作者,然后由其在词典中包含有关新病毒的信息。

基于字典的防病毒软件通常在计算机的操作系统创建,打开和关闭文件时检查文件;以及通过电子邮件发送文件的时间。这样,可以在收到已知病毒后立即对其进行检测。通常,还可以安排该软件定期检查用户硬盘上的所有文件。

尽管字典方法被认为是有效的,但病毒作者还是试图通过编写“多态病毒”来保持这种软件的领先地位,“多态病毒”会对自己的某些部分进行加密或以伪装的方式对其进行修改,以使其与病毒的签名不匹配。在字典中。

可疑行为方法 相反,可疑行为方法不是试图识别已知病毒,而是监视所有程序的行为。例如,如果一个程序试图将数据写入可执行程序,则将其标记为可疑行为,并向用户发出警告,并询问该怎么做。

因此,与字典方法不同,可疑行为方法可提供针对任何病毒词典中尚不存在的全新病毒的保护。但是,它还听起来会产生大量误报,并且用户可能对所有警告不敏感。如果用户在每个此类警告上均单击“接受”,则该用户显然无法使用防病毒软件。在过去的7年中,此问题尤其严重,因为更多的非恶意程序设计选择了修改其他.exe,而没有考虑这个假阳性问题。因此,大多数现代防病毒软件越来越少地使用此技术。

其他检测病毒的方法 某些防病毒软件会在将控制权转移到可执行文件之前,尝试模拟正在执行的每个新可执行文件的代码开头。如果该程序似乎正在使用自修改代码或以其他方式显示为病毒(它会立即尝试查找其他可执行文件),则可以假定该可执行文件已被病毒感染。但是,此方法会导致很多误报。

另一检测方法是使用沙箱。沙箱可模拟操作系统并在此模拟中运行可执行文件。程序终止后,将对沙箱进行分析以查找可能表明有病毒的更改。由于性能问题,这种类型的检测通常仅在按需扫描期间执行。

关注的问题

如果Microsoft可以修复与Outlook相关的Microsoft Outlook和Microsoft Office中的安全漏洞,则可以更廉价,更有效地预防宏病毒(可以说是最具破坏性和最广泛的计算机病毒),而无需所有用户购买防病毒软件。执行下载的代码,并提高文档宏的传播和破坏能力。

用户培训与防病毒软件一样重要。简单地对用户进行安全计算实践的培训,例如不从Internet下载并执行未知程序,将减慢病毒的传播速度,而无需使用防病毒软件。

计算机用户不应始终以管理员权限访问自己的计算机来运行。如果它们仅在用户模式下运行,则某些类型的病毒将无法传播。

由于不断产生新病毒,词典方法通常不足以检测病毒,但由于误报问题,可疑行为方法无效。因此,当前对杀毒软件的了解永远不会战胜计算机病毒。

有多种加密和打包恶意软件的方法,这些方法甚至会使知名病毒无法被防病毒软件检测到。要检测这些“伪装”的病毒,需要强大的拆包引擎,该引擎可以在检查文件之前对文件进行解密。不幸的是,许多流行的防病毒程序没有此功能,因此通常无法检测到加密的病毒。

销售反病毒软件的公司似乎在经济上有动机编写和传播病毒,并让公众对威胁感到恐慌。

(我喜欢这篇文章,我只是从AntivirusWorld复制并粘贴。)


谢谢:)对于字典方法,这是否意味着如果我复制了一个已知病毒的代码并将其放在应用程序中,就会被检测到,但是如果我编写类似的代码,则必须等待可疑行为?(当然是假设的)
Phoshi

是的..它将是。

这是有道理的,如果您无法阻止病毒的产生,那么停止现有代码是相当不错的(并且在无穷多的时间内,可以阻止所有可能的病毒-不错:P)
Phoshi

这就是签名。多种病毒共有的一部分恶意机器代码。
alex

如果AV将文件与包含10,000种已知病毒的字典进行比较,那么为什么要这么快?如何扫描每个文件需要毫秒
。.– LantisGaius

3

Phoshi,您的问题很有趣,但是我建议您从另一个开始。我建议这样做,因为对您所提问题的答案可能会误导您。

我建议您首先考虑一下您认为病毒,其定义是什么。

精英病毒作者是安全研究人员,而不是脚本小子。他们对病毒的定义是:“病毒是一段可以自我繁殖的代码”。而已。如您所见,这里没有提到破坏性功能。所有强制性的病毒都是邪恶的-这是您从专有防病毒制造商处获得的FUD,因此他们可以出售其软件。

恕我直言,明智的做法是将病毒视为整个软件生态系统的一部分,而不应视为外部邪恶的“外星人”。


好吧,我确实问过AV的工作原理,所以我认为答案...回答得很好,但是您提出了一个很好的观点,这是值得考虑的问题:)
Phoshi

看着同一台计算机上的两种杀毒软件试图杀死对方也很有趣。随便问他们为什么这样做:-)
怪胎

1

查看病毒的一种非常重要的方法是另一种方法。病毒如何危害系统。这通常是通过软件漏洞引起的。防病毒软件意识到了这些漏洞,并正在寻找影响这些漏洞的软件。无论哪种方式,病毒总是会产生某种作用。因此,他们需要一个工作流程来尽其所能。有时这是存在的,有时是他们自己创造的。

但是,MOST病毒的工作方式相似,病毒扫描程序可以轻松区分它们。利用同一漏洞的病毒有很多!

http://en.wikipedia.org/wiki/List_of_computer_viruses

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.