哈维·穆德学院计算机科学教授杰夫·库宁提供了这个解释。
恶意软件有几种形式,主要通过它们的传播方法来区分。最常见的两种形式是病毒和蠕虫。病毒会附着在现有程序上,以便在该程序执行时发生糟糕的事情。就像生物病毒一样,它不能在没有宿主的情况下生存。相比之下,蠕虫是一个独立的程序,它无需宿主程序即可自我复制。根据形式的不同,蠕虫可能能够在受害者不知情的情况下传播。今天的大多数恶意软件由蠕虫而不是病毒组成。
由于蠕虫和病毒的传播方法不同,它们需要略有不同的保护机制。病毒扫描器通过搜索已知病毒的签名来工作。签名是在每个病毒副本中出现的特征模式。它可能是一个字符串,例如病毒激活时将在屏幕上显示的消息,或者它可能是二进制计算机代码,甚至是嵌入在病毒中的特定数据位。这些模式由专门从事计算机安全的组织的技术人员识别,然后在安全网站上提供。病毒扫描器随后可以下载这些模式,以更新其内部模式列表。
支持科学新闻
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻事业 订阅。通过购买订阅,您正在帮助确保关于塑造我们当今世界的发现和想法的具有影响力的故事的未来。
这个方案有三个复杂之处。第一个是,如果模式选择不当,可能会合法地出现在未感染的文件中。例如,仅包含单词“hello”的模式不会非常有用。技术人员的工作之一是找到病毒独有的模式。
第二个复杂之处在于,病毒编写者不希望他们的病毒被检测到,因此他们进行了一场隐身技术的战争。例如,许多病毒以加密形式存储自身,并在传播过程中改变加密密钥,以便加密模式在每台受害者机器上都不同。病毒扫描器可以通过设置其模式来搜索解密病毒的程序部分(此代码必须是未加密的),或者在进行匹配之前复制解密操作来击败这种技术。
第三个复杂之处与性能有关。从理论上讲,病毒可以附着在任何可执行程序上。在现代计算机上,可能有数百甚至数千个潜在的宿主程序。每次运行病毒扫描器时都扫描所有这些程序将花费非常长的时间。因此,病毒扫描器通常将自己限制在较小的可能宿主列表范围内。例如,软盘和可移动磁盘是常见的病毒载体,因此通常在插入可移动磁盘时对其进行扫描。在Microsoft Windows上,\WINDOWS\SYSTEM文件夹中的程序是流行的病毒目标,因此病毒扫描器通常会检查这些文件。扫描器的内部模式列表还可以识别已知是特定病毒目标的其他文件。
因为蠕虫是独立的程序,所以它们比病毒更容易检测。由于是独立的,它们必须驻留在某处自己的文件中,并且该文件的构造方式必须使计算机自动执行它。这些约束限制了文件可以出现的位置以及如何命名等特征。扫描器可以简单地检查那些众所周知的位置,然后应用与病毒相同的模式匹配技术。
现在的扫描器还会查找已知的蠕虫传播途径。由于大多数蠕虫通过电子邮件传播,因此可以将扫描器设置为在传入电子邮件传递给用户之前查看传入电子邮件,并在发送传出消息时扫描传出消息。如果检测到蠕虫,则可以将其从消息中删除。如果蠕虫在传出的电子邮件中,则当然也必须将其从受感染的计算机中删除。
清理蠕虫或病毒后相对简单。如果软件制造商提供了受感染的文件,则可以用干净的副本替换它。私有文件通常无法替换,但是可以删除受感染的部分或用无害的东西覆盖它。除了检测模式外,扫描器的主模式列表还可以包含有关哪些文件通常被特定恶意软件感染以及如何清理它们的说明。与模式一样,安全技术人员会创建这些说明,通常与模式本身同时创建。