计算机病毒

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
计算机病毒的一种症状:随机重命名文件名和扩展名

电脑病毒(computer virus),或称电子计算机病毒。是一种在人为或非人为的情况下产生的、在用户不知情或未批准下,能自我复制或运行的电脑程序;电脑病毒往往会影响受感染电脑的正常运作,或是被控制而不自知,电脑正常运作仅盗窃资料、或者被利用做其他用途等用户非自发启动的行为。

病毒作者

有不少制作病毒的黑客被逮捕及起诉,判决的轻重各国皆不同,如罗马尼亚西欧班尼花费15分钟写的MSBlast.F变种大约只感染了1,000台电脑,按罗马尼亚的法律他就有可能最高会被判15年有期徒刑。1998年台湾病毒作者陈盈豪写的CIH病毒据猜测造成全球600万台电脑瘫痪,但他因为在被逮捕后无人起诉而免于法律制裁,在2001年有人以CIH受害者的身份起诉陈盈豪,才使他再次被逮捕,按照台湾当时的法律,他被判损毁罪,面临最高3年以下的有期徒刑。

中国大陆的木马程序“证券大盗”作者张勇因使用其木马程序截获股民账户密码,盗卖股票价值1,141.9万元人民币,非法获利38.6万元人民币,最终的判决结果是无期徒刑

一公司的分析报告称:目前全世界现有200万有能力写较成熟电脑病毒的程序员[1]

历史

学术工作

计算机病毒

第一份关于计算机病毒理论的学术工作(虽然"病毒"一词在当时并未使用)于 1949年由约翰·冯·诺伊曼完成。当时是以"Theory and Organization of Complicated Automata"为题的一场在伊利诺伊大学的演讲,稍后改以"Theory of self-reproducing automata"为题出版。冯·诺伊曼在他的论文中描述一个计算机程序如何复制其自身。

1972年,Veith Risak根据冯·诺伊曼在自我复制上的工作为基础发表"Self-reproducing automata with minimal information exchange"一文。该文描述一个以西门子4004/35计算机系统为目标,用汇编语言编写,具有完整功能的计算机病毒。

1980年,Jürgen Kraus于多特蒙德大学撰写他的学位论文"Self-reproduction of programs"。在他的论文中,他假设计算机程序可以表现出如同病毒般的行为。

“病毒”一词最早用来表达此意是在弗雷德·科恩(Fred Cohen)1984年的论文《电脑病毒实验》。

科幻小说

而病毒一词广为人知是得力于科幻小说。一部是1970年代中期大卫·杰洛德(David Gerrold)的《When H.A.R.L.I.E. was One》,描述了一个叫“病毒”的程序和与之对战的叫“抗体”的程序;另一部是约翰·布鲁勒尔(John Brunner)1975年的小说《震荡波骑士(ShakewaveRider)》,描述了一个叫做“磁带蠕虫”、在网络上删除数据的程序。[2]

病毒程序

1960年代初,美国麻省理工学院的一些青年研究人员,在做完工作后,利用业余时间玩一种他们自己创造的计算机游戏。做法是某个人编制一段小程序,然后输入到计算机中运行,并销毁对方的游戏程序。而这也可能就是计算机病毒的雏形。[来源请求]

感染策略

为了能够复制其自身,病毒必须能够执行代码并能够对内存执行写操作。基于这个原因,许多病毒都是将自己附着在合法的可执行文件上。如果用户企图执行该可执行文件,那么病毒就有机会运行。病毒可以根据执行时所表现出来的行为分成两类。非常驻型病毒会立即查找其它宿主并伺机加以感染,之后再将控制权交给被感染的应用程序。常驻型病毒被执行时并不会查找其它宿主。相反的,一个常驻型病毒会将自己加载内存并将控制权交给宿主。该病毒于背景中执行并伺机感染其它目标。

非常驻型病毒

非常驻型病毒可以被想成具有搜索模块和复制模块的程序。搜索模块负责查找可被感染的文件,一旦搜索到该文件,搜索模块就会启动复制模块进行感染。

常驻型病毒

常驻型病毒包含复制模块,其角色类似于非常驻型病毒中的复制模块。复制模块在常驻型病毒中不会被搜索模块调用。病毒在被执行时会将复制模块加载内存,并确保当操作系统执行特定动作时,该复制模块会被调用。例如,复制模块会在操作系统执行其它文件时被调用。在这个例子中,所有可以被执行的文件均会被感染。常驻型病毒有时会被区分成快速感染者和慢速感染者。快速感染者会试图感染尽可能多的文件。例如,一个快速感染者可以感染所有被访问到的文件。这会对杀毒软件造成特别的问题。当执行全系统防护时,杀毒软件需要扫描所有可能会被感染的文件。如果杀毒软件没有察觉到内存中有快速感染者,快速感染者可以借此搭便车,利用杀毒软件扫描文件的同时进行感染。快速感染者依赖其快速感染的能力。但这同时会使得快速感染者容易被侦测到,这是因为其行为会使得系统性能降低,进而增加被杀毒软件侦测到的风险。相反的,慢速感染者被设计成偶而才对目标进行感染,如此一来就可避免被侦测到的机会。例如,有些慢速感染者只有在其它文件被拷贝时才会进行感染。但是慢速感染者此种试图避免被侦测到的作法似乎并不成功。

传播途径和宿主

由于操作系统桌面环境90%的市场都是使用微软Windows系列产品[3], 所以病毒作者纷纷把病毒攻击对象选为Windows。制作病毒者首先应该确定要攻击的操作系统版本有何漏洞,这才是他所写的病毒能够利用的关键。Windows当时并没有有效的安全与防御功能,且用户常以管理员权限运行未经安全检查的软件,这也为Windows下病毒的泛滥提供了温床。LinuxMac OS操作系统,因使用的人群比较少,病毒一般不容易扩散。大多病毒发布作者的目的有多种,包括恶作剧、想搞破坏、报复及想出名与对研究病毒有特殊嗜好。 病毒主要通过网路浏览以及下载电子邮件以及可移动磁盘等途径迅速传播。[4]

可移动驱动器

市面上大多的可移动驱动器都是属于可读写模式,因此很容易写入Autorun.inf文件以及许多恶意程序。受到感染的U盘病毒插入电脑里后,病毒会躲藏在操作系统中的进程,侦测电脑上的一举一动。当用户将其他干净的U盘插入受感染的电脑里,病毒会复制到干净的U盘里,然后一传十、十传百。公用电脑的使用亦导致USB病毒快速散播。[5]

解决方法
可移动驱动器插入电脑前,先将写保护功能打开;用户自行删除autorun.inf文件;使用杀毒软件来修复受感染的电脑;开启虚拟机检测USB的安全性。
中毒后主要症状
杀毒软件关闭;经常跑出看不懂的窗口;瘫痪电脑运作。

躲避侦测的方法

隐蔽

病毒会借由拦截杀毒软件对操作系统的调用来欺骗杀毒软件。当杀毒软件要求操作系统读取文件时,病毒可以拦截并处理此项要求,而非交给操作系统执行该要求。病毒可以返回一个未感染的文件给杀毒软件,使得杀毒软件认为该文件是干净未被感染的。如此一来,病毒可以将自己隐藏起来。现在的杀毒软件使用各种技术来反击这种手段。要反击病毒匿踪,唯一完全可靠的方法是从一个已知是干净的介质开始启动。

自修改

大部分杀毒软件透过所谓的病毒特征码来侦知一个文件是否有被感染。特定病毒,或是同属于一个家族的病毒会具有特定可识别的特征。如果杀毒软件侦测到文件具有病毒特征码,它便会通知用户该文件已被感染。用户可以删除或是修复被感染的文件。某些病毒会利用一些技巧使得透过病毒特征码进行侦测较为困难。这些病毒会在每一次感染时修改其自身的代码。换言之,每个被感染的文件包含的是病毒的变种。只能重灌或下载杀毒软件.

随机加密

胡搞更甚者是对病毒本身进行简单的加密。这种情况下,病毒本身会包含数个解密模块和一份被加密的病毒拷贝。如果每一次的感染,病毒都用不同的密钥加密,那病毒中唯一相同的部分就只有解密模块,常会附于文件尾端。杀毒软件无法直接透过病毒特征码侦测病毒,但它仍可以侦知存在解密模块,这就可以间接侦测病毒。因为这部分是存放在宿主上面的对称式密钥,杀毒软件可以利用密钥将病毒解密,但这并不必要。因为自修改代码很少见,杀毒软件可以先将这类文件标记成可疑。

一个古老但简洁的加密技术将病毒中每一个字节和一个常量做逻辑异或,欲将病毒解密只需简单的逻辑异或。一个程序若可修改自身代码就十分可疑,因此许多病毒定义中,将加解密部分视为病毒特征码的一部分。

多态

多态是第一个对杀毒软件造成严重威胁的技术。就像一般被加密的病毒,一个多态病毒以一个加密的自身拷贝感染文件,并由其解密模块加以解码。但是其加密模块在每一次的感染中也会有所修改。因此,一个仔细设计的多态病毒在每一次感染中没有一个部分是相同的。这使得使用病毒特征码进行侦测变得困难。杀毒软件必须在一模拟器上对该病毒加以解密进而侦知该病毒,或是利用加密病毒其统计模板上的分析。要使得多态代码成为可能,病毒必须在其加密处有一个多态引擎(又称突变引擎)。关于多态引擎的技术细节请参阅Polymorphic code

有些多态病毒会限制其突变的速率。例如,一个病毒可能随着时间只有一小部分突变。或是病毒侦知宿主已被同一个病毒感染,它可以停止自己的突变。如此慢速的突变其优点在于,杀毒专家很难得到该病毒具有代表性的样本。因为在一轮感染中,诱饵文件只会包含相同或是近似的病毒样本。这会使得杀毒软件侦测结果变得不可靠,而有些病毒会躲过其侦测。

变形

为了避免被杀毒软件模拟而被侦知,有些病毒在每一次的感染都完全将其自身改写。利用此种技术的病毒被称为可变形的。要达到可变形,一个变形引擎是必需的。一个变形病毒通常非常庞大且复杂。举例来说,Simile病毒包含14000行汇编语言,其中90%都是变形引擎。

命名

以下表格所示是国际上对病毒命名惯用的前缀释义,DOS下的病毒一般无前缀:

前缀 含义
WM Word6.0、Word95宏病毒
WM97 Word97宏病毒
XM Excel5.0、Excel95宏病毒
X97M Excel5.0和Excel97版本下发作
XF Excel程序病毒
AM Access95宏病毒
AM97M Access97宏病毒
W95 Windows95、98病毒
Win Windows3.x病毒
W32 32位病毒,感染所有32位Windows系统
WINT 32位Windows病毒,只感染Windows NT
Trojan/Troj 特洛伊木马
VBS VBScript程序语言编写的病毒
VSM 感染Visio VBA(Visual Basic for Applications)宏或script的宏或script病毒
JS JScript编程语言编写的病毒
PE 32位寻址的Windows病毒
OSX OS X的病毒
OSXL OS X Lion或者更新版本的病毒
Virus 其他病毒(如感染型、引导型、终结型等)

中间部分指的是病毒的英文名,而后缀一般是变种代号。

特征

计算机科学里,电脑病毒是类似生物病毒一样的程序,它会复制自己并传播到其他宿主,并对宿主造成损害。宿主也是程序,通常是操作系统,从而进一步传染到其他程序、其他的电脑。电脑病毒在传播期间一般会隐蔽自己,由特定的条件触发,并开始产生破坏。

电脑病毒具有的不良特征有传播性、隐蔽性、感染性、潜伏性、可激发性[6]、表现性或破坏性,通常表现两种以上所述的特征就可以认定该程序是病毒。

计算机病毒的生命周期为开发期→传染期→潜伏期→发作期→发现期→消化期→消亡期。[4][7]

主要特征详解

传播性

病毒一般会自动利用电子邮件传播,利用对象为某个漏洞。将病毒自动复制并群发给存储的通讯录名单成员。邮件标题较为吸引人点击,大多利用社会工程学如“我爱你”这样家人朋友之间亲密的话语,以降低人的警戒性。如果病毒制作者再应用脚本漏洞,将病毒直接嵌入邮件中,那么用户一点邮件标题打开邮件就会中病毒。

隐蔽性

一般的病毒仅在数KB左右,这样除了传播快速之外,隐蔽性也极强。部分病毒使用“无进程”技术或插入到某个系统必要的关键进程当中,所以在任务管理器中找不到它的单独运行进程。而病毒自身一旦运行后,就会自己修改自己的文件名并隐藏在某个用户不常去的系统文件夹中,这样的文件夹通常有上千个系统文件,如果凭手工查找很难找到病毒。而病毒在运行前的伪装技术也不得不值得我们关注,将病毒和一个吸引人的文件绑扎合并成一个文件,那么运行正常吸引他的文件时,病毒也在我们的操作系统中悄悄的运行了。

感染性

某些病毒具有感染性,比如感染中毒用户计算机上的可执行文件,如exe、bat、scr、com格式,通过这种方法达到自我复制,对自己生存保护的目的。通常也可以利用网络共享的漏洞,复制并传播给邻近的计算机用户群,使邻里通过路由器上网的计算机或网吧的计算机的多台计算机的程序全部受到感染。

电脑病毒潜伏性

部分病毒有一定的“潜伏期”,在特定的日子,如某个节日或者星期几按时爆发。如1999年破坏№BIOSCIH病毒就在每年的4月26日爆发。如同生物病毒一样,这使电脑病毒可以在爆发之前,以最大幅度散播开去。

可激发性

根据病毒作者的“需求”,设置触发病毒攻击的“玄机”。如CIH病毒的制作者陈盈豪曾打算设计的病毒,就是“精心”为简体中文Windows系统所设计的。病毒运行后会主动检测中毒者操作系统的语言,如果发现操作系统语言为简体中文,病毒就会自动对计算机发起攻击,而语言不是简体中文版本的Windows,那么你即使运行了病毒,病毒也不会对你的计算机发起攻击或者破坏。[8]

表现性

病毒运行后,如果按照作者的设计,会有一定的表现特征:如CPU占用率100%,在用户无任何操作下读写硬盘或其他磁盘数据,蓝屏死机鼠标右键无法使用等。但这样明显的表现特征,反倒帮助被感染病毒者发现自己已经感染病毒,并对清除病毒很有帮助,隐蔽性就不存在了。

分类

病毒类型根据中国国家计算机病毒应急处理中心发表的报告统计,占近45%的病毒是木马程序,蠕虫占病毒总数的25%以上,占15%以上的是脚本病毒,其余的病毒类型分别是:文件型病毒、破坏性程序和宏病毒。

木马/僵尸网络

  • 有些也叫作远程控制软件,如果木马能连通的话,那么可以说控制者已经得到了远程计算机的全部操作控制权限,操作远程计算机与操作自己计算机基本没什么大的区别,这类程序可以监视、摄录被控用户的摄像头与截取密码等,以及进行用户可进行的几乎所有操作(硬件拔插、系统未启动或未联网时无法控制)。而Windows NT以后的版本自带的“远程桌面连接”,或其他一些正规远控软件,如若未进行良好的安全设置或被不良用户篡改利用,也可能起到类似作用。但他们通常不会被称作病毒或木马软件,判断依据主要取决于软件的设计目的和是否明确告知了计算机所有者。
  • 用户一旦感染了特洛伊木马,就会成为“僵尸”(或常被称为“肉鸡”),成为任黑客手中摆布的“机器人”。通常黑客或脚本小子(script kids)可以利用数以万计的“僵尸”发送大量伪造包或者是垃圾数据包对预定目标进行拒绝服务攻击,造成被攻击目标瘫痪。

有害软件

  • 蠕虫病毒漏洞利用类,也是我们最熟知的病毒,通常在全世界范围内大规模爆发的就是它了。如针对旧版本未打补丁的Windows XP冲击波病毒震荡波病毒。有时与僵尸网络配合,主要使用缓存溢出技术。
  • 间谍软件流氓软件,是部分不良网络公司出品的一种收集用户浏览网页习惯而制订自己广告投放策略的软件。这种软件本身对计算机的危害性不是很大,只是中毒者隐私遭到泄露被收集走和一旦安装上它就无法正常删除卸载了。比如对Internet Explorer的广告软件会自动修改并锁定用户缺省主页以及加载广告公司的工具条。
  • 恶作剧的破坏性软件,如破坏性很大的“格盘炸弹”,运行程序后自动格式化硬盘,原本只为“愚人”目的,但这种恶意程序运行后就会对用户重要数据造成很大的损失。与此相同的还有文件感染器(File infector)以及在DOS下的根扇区病毒。
  • 文件型病毒通常寄居于可执行档(扩展名为.EXE或.COM的文件),当被感染的文件被执行,病毒便开始破坏电脑,这种病毒都是伪装成游戏,成人视频软件等钓鱼的形态出现引发用户点击,病毒便明显地或是偷偷的安装上去。

脚本病毒

  • 宏病毒的感染对象为Microsoft开发的办公系列软件,也有专门针对其他软件的变种。Microsoft WordExcel这些办公软件本身支持运行可进行某些文件操作的命令,所以也被Office文档中含有恶意的宏病毒所利用。openoffice.org对Microsoft的VBS宏仅进行编辑支持而不运行,所以含有宏病毒的MS Office文档在openoffice.org下打开后病毒无法运行。

免杀技术以及新特征

免杀是指:对病毒的处理,使之躲过杀毒软件查杀的一种技术。通常病毒刚从病毒作者手中传播出去前,本身就是免杀的,甚至可以说“病毒比杀毒软件还新,所以杀毒软件根本无法识别它是病毒”,但由于传播后部分用户中毒向杀毒软件公司举报的原因,就会引起安全公司的注意并将之特征码收录到自己的病毒库当中,病毒就会被杀毒软件所识别。

病毒作者可以通过对病毒进行再次保护如使用汇编花指令或者给文件加壳就可以轻易躲过杀毒软件的病毒特征码库而免于被杀毒软件查杀。

美国的Norton AntivirusMcAfeePC-cillin,罗马尼亚的Bitdefender,俄罗斯的Kaspersky Anti-Virus,斯洛伐克的NOD32等产品在国际上口碑较好,但杀毒、查壳能力都有限,目前病毒库总数量也都仅在数十万个左右。

自我更新性是近年来病毒的又一新特征。病毒可以借助于网络进行变种更新,得到最新的免杀版本的病毒并继续在用户感染的计算机上运行,比如熊猫烧香病毒的作者就创建了“病毒升级服务器”,在最勤时一天要对病毒升级8次,比有些杀毒软件病毒库的更新速度还快,因为开发者对代码编辑十分勤奋,所以就造成了杀毒软件无法识别病毒。

除了自身免杀自我更新之外,很多病毒还具有了对抗它的“天敌”杀毒软件和防火墙产品反病毒软件的全新特征,只要病毒运行后,病毒会自动破坏中毒者计算机上安装的杀毒软件和防火墙产品,如病毒自身驱动级Rootkit保护强制检测并结束杀毒软件进程,可以过主流杀毒软件“主动防御”和穿透软、硬件还原的机器狗[9],自动修改系统时间导致一些杀毒软件厂商的正版认证作废以致杀毒软件作废,从而病毒生存能力更加强大。

免杀技术的泛滥使得同一种原型病毒透过插件,理论上可以派生出近乎无穷无尽的变种,给依赖于特征码技术检测的杀毒软件带来很大困扰。近年来,国际反病毒行业普遍开展了各种前瞻性技术研究,试图扭转过分依赖特征码所产生的不利局面。目前比较有代表性产品的是基于虚拟机技术的启发式扫描软件,代表厂商NOD32,Dr.Web,和基于行为分析技术的主动防御软件,代表厂商中国的微点主动防御软件等。

防范与治疗

修补操作系统以及其捆绑的软件的漏洞
安装系统以及其捆绑的软件如Internet ExplorerWindows Media Player的漏洞安全补丁,以操作系统Windows为例Windows NT以及以下版本可以在Microsoft Update更新系统,Windows 2000SP2以上,Windows XP以及Windows 2003等版本可以用系统的“自动更新”程序下载补丁进行安装。设置一个比较强的系统密码,关闭系统默认网络共享,防止局域网入侵或弱口令蠕虫传播。定期检查系统配置实用程序启动选项卡情况,并对不明的Windows服务予以停止。
安装并及时更新杀毒软件与防火墙产品
保持最新病毒库以便能够查出最新的病毒,如一些反病毒软件的升级服务器每小时就有新病毒库包可供用户更新。而在防火墙的使用中应注意到禁止来路不明的软件访问网络。由于免杀以及进程注入等原因,有个别病毒很容易穿过杀毒以及防火墙的双重防守,遇到这样的情况就要注意到使用特殊防火墙来防止进程注入,以及经常检查启动项、服务。一些特殊防火墙可以“主动防御”以及注册表实时监控,每次不良程序针对计算机的恶意操作都可以实施拦截阻断。
不要点来路不明连接以及运行不明程序[10]
来路不明的连接,很可能是蠕虫病毒自动通过电子邮件或即时通讯软件发过来的,如QQ病毒之一的QQ尾巴,大多这样信息中所带连接指向都是些利用IE浏览器漏洞的网站,用户访问这些网站后不用下载直接就可能会中更多的病毒。另外不要运行来路不明的程序,如一些“诱惑”的文件名骗人吸引人去点击,点击后病毒就在系统中运行了。

参见

参考资料

外部链接