计算机病毒及其防治 Computer Virus Analysis and Antivirus
Episode I
计算机病毒的历史
FUDAN UNIVERSITY 3
世界上第一台计算机诞生
• 1946年2月14日,宾夕法尼亚大学莫尔电气学院
(Moore School of Electrical Engineering
)的莫
克利教授(John
Mauchly
)和埃克特工程师(J.
Presper
Eckert, Jr.
)设计制造出了世界上第一台
计算机ENIAC
(Electronic Numerical Integrator
And Computer
)。
John
Mauchly
J.
Presper
Eckert
FUDAN UNIVERSITY 4
FUDAN UNIVERSITY 5
“
病毒”
概念的最早出现
• 1945
年约翰·
冯·
诺依曼(John Von Neumann
)
提交了改进ENIAC
的EDVAC
(Electronic
Discrete Variable Automatic Computer
)设计方
案,引入了运算器、逻辑控制装置、存储器、输
入和输出设备的概念。
• 1949
年,冯·
诺依曼在《复杂自动装置的理论及
组织》(Theory and Organization of Complicated
Automata
)中提出了计算机程序能够在内存中自
我复制。
John Von Neumann
FUDAN UNIVERSITY 6
Von Neumann and his IAS
(Institute of Advance Study
)
IAS today
FUDAN UNIVERSITY 7
Darwin
游戏
• 60年代初,AT&T公司的贝尔实验室(Bell Labs)
中,三个年轻的小伙儿道格拉斯·
麦耀莱
(Douglas McIlroy)、维特·
维索斯基(Victor
A. Vyssotsky)和罗伯特·
莫里斯(Robert T.
Morris, Sr.)编制出了一个运行在IBM 7090
机
器上、叫做Darwin(达尔文)的游戏。
Douglas
McIlroy
IBM 7090
FUDAN UNIVERSITY 8
“
Worm
rmWo
”
程序
• 1982年,施乐(Xerox)公司研究中心的约
翰·
肖奇(John F. Shoch)和乔恩·
贺普
(Jon A. Hupp)设计出了能够占用其它机器
空闲资源的Worm程序。
• 爬行者 (Creeper) ,每一次把它读出时,它
便自己复制一个副本。爬行者的唯一生存目
的就是繁殖。
• “收割者”(Reaper),它的唯一生存目的便
是找到爬行者,把它们毁灭掉。当所有爬行
者都被收割掉之后,收割者便执行最后一项
指令:毁灭自己,从电脑中消失。
FUDAN UNIVERSITY 9
“
磁芯大战”
(Core War
eroCWa
)
• 磁芯大战(Core War)是1984年由
杜特尼(A.
K.
Dewdney)和琼斯(D.
G. Jones
)设计出来的,吸取了
Darwin游戏和Worm的思想。
Alexander
Keewatin
Dewdney
FUDAN UNIVERSITY 10
“
磁芯大战”
简介
• 1985
年专门成立了International Core War
Society
组织
• 因五、六十年代的计算机的存储器大多采用磁芯
(ferromagnetic core
),故称为Core War
eroCWa
• 编程语言:所谓的Redcode
,接近于汇编,解释
执行。两个标准:ICWS-88
I8CWS
、ICWS-94
I49CWS
• 运行环境:MARS
(Memory Array
Redcode
Simulator
),类似虚拟机
• 运行空间:
8000
个存储空间,环型队列
• 执行方式:2
个程序被调入存储空间的随机位
置,然后一方一条指令交替执行,最多执行
80000
回合
• MARS
的寻址方式:相对寻址
FUDAN UNIVERSITY 11
“
磁芯大战”
的规则
• 参与者在同一个MARS
内各自创建进程,
这些进程相互开展竞争,通过各种方式摆
脱对方进程的控制并占领计算机,取得最
终的胜利。
• 玩游戏的人只能看着屏幕上显示的战况,
而不能做任何更改,一直到某一方的程序
被另一方的程序完全“
吃掉”
,导致对方进
程无法执行为止。
FUDAN UNIVERSITY 12
RedCode
指令集
MOV 3 100
MOV 3 100
MOV 3 100
FUDAN UNIVERSITY 13
几个有名的“
磁芯大战”
程序
• 侏儒(Dwarf)
:它在记忆系统中前进,每到第五
个“
地址”
便把那里所储存的东西变为0
,这会使
原本的程序出错。
• 印普(Imp)
:只有一行指令,那就是MOV 0 1
,
当印普展开行动之后
,
电脑中原有的每一行指令
都被改为“
MOV 0 1
”
。
• Gemini
:将自己复制到当前位置+100
的存储空
间,然后跳转到那个备份,并从那里开始重新执
行。同类的还有Juggernaut
和Bigfoot
等。
imp
MOV
imp, imp + 1
bomb
dat
-1
dwarf
add
#5, bomb
mov
#0, @bomb
jmp
dwarf
FUDAN UNIVERSITY 14
• Raidar
:两端设立两个“
岗哨”
和“
缓冲区”
,一旦
发现某个“
岗哨”
被破坏,就将自身复制到这个被
破坏的“
岗哨”
的另一侧,并主动建立新的“
岗哨”
和“
缓冲区”
。主要针对Imp
,Dwarf
这一类的攻
击者。
几个有名的“
磁芯大战”
程序
FUDAN UNIVERSITY 15
几个有名的“
磁芯大战”
程序
• Scanner
raSncne
:在存储空间中创建2
个完全一样
的程序副本,从其中一个执行,并不断扫
描另一个程序副本是否和自己相同,如果
不相同则认为那个副本受到攻击,将自身
复制到那个副本,并将执行权交给那个副
本,反过来扫描自己。它总是假定正在执
行的副本是正确的。主要对付那些慢速移
动攻击者,如Imp
,Dwarf
faDwr
和Juggernaut
等。
FUDAN UNIVERSITY 16
虚幻的计算机战争
• 1975年,美国科普作家约翰·
布鲁勒尔(John
Brunner)写了一本《震荡波骑士》(The
Shockwave Rider),成为当年最畅销书之一。
• 书中描述一个极端主义政府利用超级计算机
网络控制民众,自由主义战士利用一种称为
“
tapeworm
”
的程序,感染了整个网路,致使
政府不得不关闭这个网络,最终打败了极端
主义政府。
John Brunner
FUDAN UNIVERSITY 17
“
计算机病毒”
概念的提出
• 1977年夏天,托马斯·
捷·
瑞安(Thomas J.
Ryan)的科幻小说《P-1的青春》(The
Adolescence of P-1)成为美国的畅销书。
• 作者幻想了世界上第一个计算机病毒(P-
1),可以从一台计算机传染到另一台计
算机,最终控制了7000台计算机,酿成了
一场灾难。
• Computer Virus这个词就是在这部科幻小
说中首次出现的。
FUDAN UNIVERSITY 18
第一例个人计算机的病毒
• 1982
年,运行在Apple II
IepAIpl
计算机上的病毒
Elk
Cloner
lroCne
被发现
• Richard
Skrenta
eaSntkr
编写,当时9
年级。
• 病毒感染磁盘,然后驻留内存,感染任何
插入磁盘驱动器的软盘。如果用被感染的
磁盘启动达到50
次,会在屏幕上出现:
Ref.
:http://
www.skrenta.com
/
Rich
Skrenta
"Elk
Cloner
: The program with a personality
It will get on all your disks
It will infiltrate your chips
Yes it's
Cloner
!
It will stick to you like glue
It will modify ram too
Send in the
Cloner
!"
FUDAN UNIVERSITY 19
实验室中的病毒
• 1983年11月3日,当时在南加州大学(USC:
University of Southern California)攻读
博士的弗雷德·
科恩(Fred Cohen)研制出一
种在运行过程中可以复制自身的程序。
• 他的导师伦·
艾德勒曼(Leonard M. Adleman)
将这种程序命名为“
Virus”
。
Fred Cohen
FUDAN UNIVERSITY 20
实验室中的病毒
• 经过8小时的努力,病毒代码在VAX 11/750计
算机系统上编写完成,一周内获得试验许
可,并进行了5次试验。11月10日F. Cohen将
病毒程序演示给安全讨论会成员,从而在实
验上验证了计算机病毒的存在。
• 病毒程序被称为vd,看上去为图形化展示目
录内容的功能,实际上感染了该病毒的程序
运行中将获得系统权限,并将权限传递给其
他用户。
• 1984年,科恩以Computer Virus - Theory
and Experiments为博士毕业论文,阐述了计
算机病毒实际存在,引起世界的广泛关注。
FUDAN UNIVERSITY 21
第一例特洛伊木马程序
• 1985
年,出现了第一例特洛伊木马
程序(Trojan horse
):EGABTR
• 该程序通过mailbox
传播,伪装成图
形增强程序,描述文字说可以提高
你的IBM EGA
显示性能,但实际上
运行后即删除磁盘上的FAT
表,并
在屏幕上显示"
Arf
!
Arf
! Got you!"
FUDAN UNIVERSITY 22
第一例IBM PC
病毒
• 1986年初,在巴基斯坦(Pakistan)
的拉合尔(Lahore),巴锡特(Basit
Farooq Alvi)和阿姆杰德(Amjad
Farooq Alvi)两兄弟编写了“
Brain
病毒”
• 又称为(C)Brain病毒、大脑病毒、
巴基斯坦大脑病毒、Pakistan病
毒,等
• 1987年,这个病毒流传到了世界各
地。它也是世界上第一例广泛传播
的病毒。
FUDAN UNIVERSITY 23
更多关于Brain
病毒的信息
• 初衷是为了保护自己搭卖的软件不被非法拷
贝。也有一种说法是为了扩大知名度故意编
了这个病毒。
• 只感染软盘,将卷标修改为(C) BRAIN
,并
显示:
现在的Brain公司:http://www.brain.pk
Welcome to the Dungeon
(c) 1986
Basit
&
Amjad
(
pvt
) Ltd.
BRAIN COMPUTER SERVICES
730 NIZAB BLOCK ALLAMA IQBAL TOWN
LAHORE-PAKISTAN
PHONE :430791,443248,280530.
Beware of this VIRUS....
Contact us for vaccination............ $#@%$@!!
FUDAN UNIVERSITY 24
x86
上首例试验型COM
文件病毒
• 1986
年,德国的程序员Ralf Burger
发现了通过在
COM
文件里加特定代码,使程序可以自己复制的
方法。
• 这个程序的试验版本被称作Virdem
• Burger
本人在1986
年12
月在汉堡开的黑客们的地
下计算机专栏Chaos Computer Club
里,专门演
示了Virdem
的性能。
• 当时,Chaos Computer Club
的主要会员,都是
VAX/VMS
系统的黑客,对会员中的一人专门研
究IBM
兼容机表示了失望。
• 1987
年,基于Virdem
思想的Vienna
病毒流行。调
查显示,Franz Svoboda
是从
Ralf Burger
那里拿
到这个病毒的。但是,Ralf Burger
坚持病毒是从
Franz Svoboda
那里拿到的。
FUDAN UNIVERSITY 25
最差劲的预言
• 1988
年,当时的著名程序员Peter Norton
在被采访时说,计算机病毒只是一个神
话,引起了不少争议。Peter Norton
是著
名的Norton Utilities
iltseoNrn 的作者。
• 有趣的是,当他把他的公司卖给赛门铁客
公司(Symantec
ceaSnytm
)以后,Symantec
ceaSnytm
用
Norton
这个品牌出品了不少软件。其中就
包括著名的反病毒软件Norton
AntiVirus
FUDAN UNIVERSITY 26
首例可感染硬盘的病毒
• 1988年,出现感染引导扇区的
Stoned病毒
• 感染的磁盘启动时会显示:“
Your
computer is now stoned.
”
或者"Your
PC is now Stoned!"
• 后来出现90多个变种,包括可以感
染主引导记录(MBR)的变种
FUDAN UNIVERSITY 27
我国的第一例病毒感染事件
• 1988年底据《计算机世界》报道,
在我国的统计部门多台计算机上发
现的“
小球病毒”
,也称为PingPong
病毒
• 小球病毒发作后,在电脑屏幕上生
成一个上下跳跃的小球
• “
小球病毒”
是我国报道的首例计算
机病毒感染事件
FUDAN UNIVERSITY 28
“
莫里斯蠕虫”
事件
• 1988年11月2日,就读于康奈尔大学
(Cornell University)的罗伯特·
莫里
斯(Robert Tappan Morris, Jr.)选择
从MIT大学节点向Internet网络释放了一
个自动寻找主机并向新的主机不断复制自
己的程序,这就是著名的“
莫里斯蠕虫”
(Morris Worm)。
• “
莫里斯蠕虫”
事件现在已被认定是计算机
病毒发展史上极具影响力的事件。
Robert T. Morris,
Jr
FUDAN UNIVERSITY 29
“
莫里斯蠕虫”
事件后续报道
• 2天内包括5个计算机中心和12个地区结
点,连接着政府、大学和研究所的大约
6,000~9,000
台计算机系统遭受攻击,造成
Internet不能正常运行。
• 有评估说这次事件造成的直接经济损失大
约在每个计算机系统$200~$53,000之间,
总合大约9600万美元。
• 小罗伯特·
莫里斯被判3年缓刑,罚款1万
美元,进行400小时的社区服务。
• 一个月后,CERT/CC组织成立。
FUDAN UNIVERSITY 30
“
莫里斯蠕虫”
技术简介
• 利用UNIX系统中sendmail
lseanidm
在debug模式下的
漏洞、fingerd的漏洞、字典攻击、rexec
和rsh。
• rlogin
、rshell
lsrhe
、rcopy
等命令被广泛使用。
只要能够登录一台系统,就能够访问其它
系统,甚至都不需要提供密码。
• 99
行源代码。
• 使得VAX
和Sun
计算机系统负载过重。
• 程序有bug
,使得它能够多次感染同一台
计算机系统,传播速度之快超过了莫里斯
的预期。
• rfc
文档(rfc1135
)也专门描述了此事。
FUDAN UNIVERSITY 31
病毒被第一次用于实战
• 1991年1月,在第一次海湾战争“
沙漠风暴”
行动(Operation:Desert Storm)前,美
军特工将计算机病毒植入伊拉克作战指挥
系统,旨在破坏伊拉克防空系统。
• 这是计算机病毒第一次用于实战。
• AF/91
:一种说法是通过植入打印机的特
定芯片传播;另一种说法是美国专家通过
分析找到伊拉克国家通讯网的接口,然后
将具有神经网络细胞式自我变异的病毒程
序传播进去。
• 伊拉克也使用了“
犹太人”
病毒和“
大麻”
病
毒
。
FUDAN UNIVERSITY 32
DOS
年代的病毒
• 1991年发现首例网络计算机病毒
GPI,它突破了NOVELL Netware网络
安全机制。
• 1992年出现实现机理与以文件型病
毒有明显区别的DIR II病毒。
• 1994年5月,南非第一次多种族全民
大选的记票工作,因计算机病毒的
破坏而停顿达30余小时,被迫推迟
公布选举结果。
FUDAN UNIVERSITY 33
宏病毒的出现
• 1995年,随着MS Windows 95的发布,微软
Windows操作系统和MS Office办公自动化
软件占据了主导地位。
• 1995年,出现第一个针对微软MS Word软件
的宏病毒(Macro Virus)“
Concept”
病
毒,又称为Prank病毒。
• 同时,第一例感染中文Word的宏病毒“
台湾
1号”
(Taiwan No.1)也出现了。
• 1997年,随着Office 97的发布,宏病毒进
入空前泛滥的阶段,这一年被公认为计算
机“
宏病毒”
年。
FUDAN UNIVERSITY 34
“
病毒生产机”
出现
• 1996
年我国出现专门用来生成病毒的“
病
毒生产机”
• “
病毒生产机”
的出现,使得计算机病毒的
编制变得非常容易。病毒进入了“
批量生
产”
的阶段
• 由于技术所限,“
病毒生产机”
所能够产生
的病毒仅限于DOS
病毒
• “
病毒生产机”
的代表:G2
、IVP
、VCL
• 其实国外早在1992
年就出现了类似软件
FUDAN UNIVERSITY 35
首例造成硬件故障的计算机病毒
• 1998年,出现直接攻击和造成计算机硬件
系统故障的CIH病毒。
• 三个重要的版本:CIH 1.2(每年4/26发
作),CIH 1.3(每年6/26发作),CIH 1.4
(改为每月26日发作)
• 1999年4月26日,CIH病毒在我国大规模爆
发,造成巨大损失。
陈盈豪
FUDAN UNIVERSITY 36
1998
年,在这一年…
• 8
月,出现首个具有自我复制能力的Java
程序病毒Java.StrangeBrew
erJaBwanvgae.,感染.class
lsacs
文
件
• 出现首例感染HTML
文件的病毒HTML
Internal
,仅能通过IE
进行传播。
• 11
月,出现首例利用VBS
进行传播的脚本
病毒VBScript.Rabbit
itraSpBVRbtcbi
,感染.
vbs
文件
FUDAN UNIVERSITY 37
1999
年,在这一年…
• 3月26日,出现第一例通过email进行传播
的Melissa病毒(梅丽莎病毒)。
• 挂接协议栈(wsock32.dll
lsokwc32.)进行传播的
Happy99
病毒
• Win32_PE格式破坏力极强的Funlove病毒
• 大量通过邮件系统传播的病毒,如
PrettyPark
teraykPrP
(美丽公园)、ExplorerZip
ieroxpEZrpl
等。
FUDAN UNIVERSITY 38
2000
年,在这一年…
• Win2000.Installer病毒,只能在
Windows 2000系统下感染。
• 2000年5月,LoveLetter(“
爱虫”
)
病毒在全世界爆发。
FUDAN UNIVERSITY 39
2001
年,在这一年…
• “
红色代码”
、“
蓝色代码”
、“
Nimda”
等大
量针对IIS漏洞的病毒
• 伪装成明星照片的“
库尔尼科娃”
病毒
• 国产的HappyTime(“
欢乐时光”
)病毒
• 通过P2P软件进行传播的Gnutelman木马
• 第一例跨Windows和Linux操作系统感染的
PEElf病毒
FUDAN UNIVERSITY 40
2002
年,在这一年…
• 通过ICQ的联系人名单传播的Klez病毒
(“
求职信”
病毒)
• 感染flash文件的SWF.LFM病毒
• 通过电子邮件偷偷向外发送Office
文档的
SirCam
病毒
• BugBear病毒(监控键盘输入,杀掉反病
毒程序进程)
FUDAN UNIVERSITY 41
2003
年,在这一年…
• 年初,出现攻击数据库系统的SQLSlammer
(SQL蠕虫)病毒
• 史上传播最快的大无极(SoBig)病毒
• 8
月12
日,出现利用RPC漏洞进行传播的
Blaster(冲击波)病毒,也被称为
lovesan病毒,原定8月16日攻击Windows
Update网站,但是微软在那一天临时关闭
了网站。
• 8
月19
日出现专门针对Blaster
lteraBs
的Welchia
lcahWi 病
毒,能够自动安装到感染了Blaster
lteraBs
的机器
上,并自动打补丁。以毒攻毒,但最终用
户只有受害,没有受益。
FUDAN UNIVERSITY 42
2004
年,在这一年…
• QQ小尾巴、MSN.Funny(MSN小尾巴)病毒,利用
即时通信软件传播,导致网站不可访问
• 5月,SASSER(震荡波)病毒
• 6
月14
日,出现第一个利用蓝牙技术进行传播的
手机病毒EPOC.Cabir(食人鱼病毒)
• 第一例感染PocketPC系统(WinCE)的概念型病
毒Dust
• 第一例64
位操作系统上的Rugrat
病毒,该病毒无
法在32
位操作系统上运行。
• MAC
机的木马MP3Concept
,伪装成MP3
文件
• 3
月3
日短时间内出现大量Netsky
、
Mydoom
、
Beagle
等蠕虫病毒的变种。这是病毒制造者们“
黑
帮火拼”
的结果,一方是Netsky
的作者,一方是
Mydoom
和Beagle
的作者。
FUDAN UNIVERSITY 43
2005
年,在这一年…
• 通过MSN
传播的MSN.DropBot
(MSN
“
性感
鸡”
)病毒
• 利用微软操作系统中即插即用服务漏洞的
Zobot
(极速波)病毒
• 出现感染Nokia
使用Sybian
操作系统智能手机
的SYMBOS_COMWAR
SBCRYOMWA
病毒
• 病毒逐渐体现出混合式攻击(Malware
Tandem
)的特点:木马式的隐藏入侵、蠕虫
式的迅速传播、间谍软件式的伪装和信息盗
取
• 针对反间谍软件、反病毒软件防护进行破坏
FUDAN UNIVERSITY 44
2006
年,在这一年…
• 病毒数量大幅增加,突出表现为木马、间
谍软件等恶意代码数量持续增长
• “
熊猫烧香”
、“
维金”
、“
灰鸽子”
等混合式
攻击病毒给互联网造成了严重的威胁
• 间谍软件呈现出商业化、集团化,带有明
显的利益特征,有窃取个人资料、各种帐
号密码等行为
• 流氓软件被炒得沸沸扬扬
• 采用加壳、Rootkits
tsokRoi 、网站挂马等技术进
行传播和对抗杀毒软件
FUDAN UNIVERSITY 45
有关计算机病毒起源的假说
• 恶作剧论
• 游戏论
• 陷阱论
• 无论哪种假说成立,计算机病毒确
实已经存在于我们身边了__