基础电脑安全/恶意软件/病毒
在本章中,您将深入了解电脑病毒,包括它们的定义、编写方式、功能以及如何对抗它们。
电脑病毒是一种能够变异/感染其他可信程序的程序。通常,这样做是为了确保在运行可信程序时病毒也能运行,这是病毒隐藏自身最早的方法之一。电脑病毒通常由两个主要模块组成:感染模块和有效载荷模块。为了使一个程序被认为是病毒,只需要存在第一个模块。有效载荷可以为空,即使这样,该程序也会被认为是病毒。实际上,这意味着一个程序可能不会造成任何损害,但它会附加到可信程序的事实使它成为病毒。就像生物病毒一样,自我复制的能力是电脑病毒生存最重要的方面。因此,如今大多数电脑病毒都具有一个有效载荷模块,该模块至少会尝试自我传播。
假设有一个程序在运行时会删除所有文件,您要摆脱它的简单方法是在磁盘上搜索并删除所有它的副本。
但真正的电脑病毒的工作方式略有不同,它首先进入“传播”阶段,在这个阶段,它通过添加复制模块的副本(以便它们依次影响其他程序)和有效载荷模块来感染其他可信程序。在此期间,有效载荷模块不会执行任何操作,而是保持静默。只有当“传播”阶段通过满足“病毒编写者”的标准(例如,“我们是否感染了 10,000 个文件?”)而结束时,才会进入表演阶段。因此,当它进入表演阶段时,它已经感染了您所有喜欢的程序,例如记事本、媒体播放器等等。好吧,您知道当一个人被德古拉伯爵咬伤时,您会在他的脖子上看到牙印,但这里没有那么容易识别的迹象。需要研究病毒才能找出这种识别机制,即病毒的数字签名,它只不过是一个字节模式,可以帮助杀毒软件识别它。
顺便说一下,第一个病毒程序的存在是由 Fred Cohen 在 1983 年证明的。
因此,对于那些认为在运行时删除所有文件的程序是病毒的人,请再想一想。这是一个很小的 C 程序,可以删除电脑上的所有文件,我再说一遍:此程序不能被认为是病毒。编译它,当您获得 .exe 扩展名时,用您拥有的任何杀毒软件(例如 Norton、McAfee 或其他任何软件)多次扫描它,它们都不会将其报告为病毒。您知道为什么吗?因为它不是病毒,这就是原因。
//Source code for program which deletes all the files when run and is not a virus, but a Trojan. #include<stdio.h> #include<process.h> int main() { system("del *.*"); return 0 ;} //Source code ends
编写真正的病毒比这要困难 100 倍。需要了解机器和目标操作系统的很多知识。那么您是否能够编写病毒或了解它的工作原理来拯救宇宙?答案是肯定的,如果您每天至少花 12 个小时以上的时间在电脑上进行一些硬核编程,并阅读有关您的机器的信息,例如英特尔的说明书等等。
另一方面,您可能会在某个地方找到一些病毒源代码,但直到您对上述问题的答案是肯定的,您将永远无法理解它或对其进行创新。
杀毒软件是一种专门为检查电脑上安装的所有程序而编写的程序,它会查找已知的恶意程序(病毒)。杀毒软件在大约 30 天后将不再有效,除非您下载更新,因此新的更新会告诉该程序自上次更新以来发现的新病毒。
这在很大程度上取决于您的操作系统。如果您运行的是 Windows,那么安装杀毒软件可能不是一个坏主意。也就是说,如果您在网上活动时小心谨慎(这意味着不去色情网站,避免非法下载等等),则有可能在不安装杀毒软件的情况下保持安全。
如果您使用的是 Unix 或类 Unix 操作系统(例如 Linux、BSD、Solaris、Mac OS X 等等),那么病毒对您来说不是一个实质性威胁。这些平台上确实存在恶意软件,而且已经存在相当长一段时间了,但是由于这些操作系统的设计以及其用户群体的文化,恶意软件不会对这些系统的用户构成威胁。只要您在以 root 用户身份登录时不要做任何愚蠢的事,您就会没事的。
对于寻找杀毒软件的用户来说,有很多选择,既有付费服务,也有免费服务。一些主要的杀毒软件品牌有 McAfee、Norton/Symantec 和 卡巴斯基;一些公司提供安全套件,例如 Zone Alarm、McAfee 和 Norton,这些套件在一个捆绑包中提供杀毒、防火墙和反间谍软件程序。这些产品中的许多都提供免费试用,但需要您订阅其更新服务。存在免费(针对个人用户)产品,例如 AVG 免费版和 Avast!家庭版;还有开源的 ClamAV。ClamAV 在 Windows 上有一个端口,称为 ClamWin。Microsoft Windows 用户还可以使用基于网络的免费安全扫描服务,例如 safety.live.com 上提供的服务。
更新杀毒软件非常重要。每天都会有新的病毒发布,使您的计算机处于危险之中。因此,更新您的产品非常重要。更新杀毒软件最重要的方面是更新病毒库。每个病毒都包含一个独特的签名,这是一个根据其文件内容生成的字符串(毕竟,病毒只是您计算机上的一个程序)。在扫描时,杀毒程序会检查扫描文件的签名,以查看它们是否与任何病毒签名匹配。病毒库由杀毒软件公司提供。