Still Shines.

恶意代码发展简史

Word count: 4.6k / Reading time: 16 min
2018/09/10 Share

1977年夏天,作家托马斯•捷•瑞安出版了一本名为《P-1的春天》的科幻小说,作者在书中描写了一种可以在计算机中互相传染的病毒,这种病毒最后控制了 7,000 台计算机,造成了一场灾难。这本书曾在美国一度畅销,但在当时的人们看来,都觉得书中所写的事情是几十年甚至是几百年后都不会发生的。然而就在几年后,虚拟科幻小说世界中的东西,竟然真的成为了现实中电脑使用者的噩梦。

计算机技术的飞速发展给人类带来便利的同时,也有越来越多的人利用它牟取利益。恶意代码的出现,是必然的。现在的恶意代码可以分成五类:病毒、木马、蠕虫、移动代码和复合型病毒。发展到如今的恶意代码功能性更强,危害也更大。2017年5月让人记忆犹新的WannaCry勒索病毒在这一月爆发,这被认为是迄今为止最严重的勒索病毒事件,至少150个国家、30万名用户中招,造成损失达80亿美元。

image-20210731223540801

虽然有“计算机病毒之父”弗雷德•科恩给计算机病毒正名:“计算机病毒不是利用操作系统的错误或缺陷的程序,它是正常的用户程序。”但人们总是能想尽办法找到其妙用所在。技术本无罪,有罪的是人类无尽的自私和贪婪。就像恶意代码出现时从最初的研究为主要目的,到变为炫耀个人技术的工具,再到现在的勒索盈利。这里我们简单地讲讲恶意代码的历史, 看看它是怎样发展的。

摇篮时代

从一个故事说起:法拉第在表演他的圆盘发电机时,一位贵妇人问道:“法拉第先生,这东西有什么作用呢?”法拉第答道:“夫人,一个刚刚出生的婴儿有什么作用呢?”

新发明的诞生和新技术的出现,总是很难预测它对将来会产生怎样的影响。就像一个刚出生的婴儿,我们不知道他将来会成为怎样的一个人。对于一项技术的预见性,往往也只存在于科幻小说中。恶意代码的诞生之初,也并非就是一个立刻搞破坏的“坏孩子”。最初的概念是电脑的先驱者冯•诺依曼在1949年发表的论文《复杂自动机组织论》中提出的:一种能够实现复制自身的自动机。

image-20210731223548429
能够自我复制,能够自我繁殖,那岂不是等于说,这段代码拥有了生命?这个新奇的想法很快的调动了研究人员的好奇心。虽然有绝大部分电脑专家都无法想象,这种能自我繁殖的程序的存在是可能的。但在这短短十一年后,也就是1960年,一个名叫“磁芯大战”的游戏在贝尔实验室中诞生,使冯•诺依曼的设想成为事实。这项游戏是三个年轻人在工作之余所发明的,这三个年轻人分别是道格拉斯•麦耀莱、维特•维索斯基和罗伯•莫里斯,当时三人的年纪,都只有二十多岁。

“磁芯大战”从名字也可以看出来就是程序之间的战争,大家都设计一个程序,再把这些程序都放到内存中,然后开始“并发”运行。在于双方的程序进入电脑之后,玩游戏的人只能看着屏幕上显示的战况,而不能做任何更改。看最终的结果是谁的程序消灭了内存中的其他程序而活了下来。这也是这个游戏的特点。每个程序都要尽力的消灭其他程序,为了能够生存,程序应该能保护自己,不断移动自身来躲过其他程序的攻击或当自身受到攻击后能自我修复。因为它们都在电脑的记忆磁芯中游走,因此得到了“磁芯大战”之名。

image-20210731223555162

这一程序对抗模型可以看作是原始的病毒对抗。在摇篮时代就展现了其破坏力的一面:抢占系统内存资源,消灭其他的程序。但那时的电脑也都没有连线,是相互独立的,因此病毒代码很难传播。如果有某部电脑受到“感染”,失去控制,工作人员只需把它关掉便可。在计算机尚未普及的年代,电脑连线而成的网络还尚未成为社会结构的一部分,处在摇篮中的恶意代码,仅仅只是电脑工作者认为的一种娱乐游戏。

熊孩子

计算机技术和网络技术在飞速发展,当电脑连线而成的网络逐渐成为社会结构的一部分之后,电脑研究员意识到:一个能自我复制的病毒程序便很可能带来无穷的危害了。例如爬行者程序(“磁芯大战”游戏中的一种程序)就能够从一台机器“爬”到另一台机器中。因此,长久以来懂得玩“磁芯大战”游戏的电脑工作者都严守一项不成文的规定:不对大众公开这些程序的内容。但人们对它的探索从未停下脚步,也不断有人打破这些规则,使其的影响范围越来越大。

第一个已知被广泛传播的计算机病毒ELK Cloner诞生于1981年,而它的作者,只是一个15岁的高中生——里奇•斯克伦塔。病毒通过软盘传播,这个病毒开始作用,并随后将它自己拷贝到任何被访问的未感染的软盘中。因为那时的计算机有两个软盘驱动器,并因为磁盘经常在朋友之间传递,这个病毒就被频繁地复制。在被感染后,计算机每被启动50次,就会显示以下文字: 

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! 

image-20210731223603141

Elk Cloner并没有什么破坏性,而是设计来作为一个善意的玩笑。简单的讲只是一个具有传播特性的恶作剧代码。

1983年,当年一项杰出电脑奖得奖人肯•汤普逊,在颁奖典礼上作了一个演讲,他在演讲中打破了电脑工作者严守的规定,不但公开证实了电脑病毒的存在,而且还告诉所有听众怎样去写自己的病毒程序。他的同行全都吓坏了,但为时已晚,这个秘密已经流传出去了。

1983年11月3日,真正具有破坏性的计算机病毒诞生。当时还是南加州大学一名学生的弗雷德•科恩在UNIX系统下,编写了一个能够自动复制并在计算机间进行传染繁殖从而引起系统死机的程序,通过存储介质软盘传到了电脑上。虽然此前就已经知道电脑病毒可能存在的事实,但科恩却是第一个将其付诸实践的人。

image-20210731223608972

1984年,情况愈复杂了,这一年,《科学美国人》月刊的专栏作家杜特尼在5月刊号写了第一篇讨论“磁芯大战”的文章,并且只要寄上两块美金,任何读者都可以收到有关写程序的纲领,在自己家的电脑中开辟战场。
1985年3月份的《科学美国人》里,杜特尼再次讨论“磁芯大战”和病毒。在文章的开头他便说:“当去年5月有关‘磁芯大战’的文章印出来时,我并没有想过我所谈论的是那么严重的题目……”文中第一次提到“病毒”这个名称。他提到说,意大利的电脑程序员利用感染磁碟的方式使其它电脑受到破坏性程序的感染。

就这样,许多程序员都了解了病毒的原理,进而开始尝试编制这种具有隐蔽性、攻击性和传染性的特殊程序。病毒从隐秘走向公开,先是利用磁碟,然后是利用网络,迅速在全世界范围内扩散开来,成为电脑用户的头号敌人。

1986年初,在巴基斯坦的拉合尔(Lahore),巴锡特(Basit)和阿姆杰德(Amjad)两兄弟经营着一家IBM-PC机及其兼容机的小商店。他们编写了Pakistan病毒,即Brain。在一年内流传到了世界各地。当时,由于当地盗版软件猖獗,为了防止软件被任意非法拷贝,也为了追踪到底有多少人在非法使用他们的软件,于是在1986年年初,他们编写了”大脑(Brain)”病毒,又被称为”巴基斯坦”病毒。该病毒运行在DOS操作系统下,通过软盘传播,只在盗拷软件时才发作,发作时将盗拷者的硬盘剩余空间吃掉。

1988年3月2日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示”向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。

1988年冬天,发明“磁芯大战”的三个年轻人之一的罗伯•莫里斯的儿子,正在康奈尔大学攻读研究生的罗伯特•莫里斯,把一个被称为“蠕虫”的电脑病毒送进了美国最大的电脑网络——互联网。

image-20210731223618040

1988年11月2日下午5点,互联网的管理人员首次发现网络有不明入侵者。它们仿佛是网络中的超级间谍,狡猾地不断截取用户口令等网络中的“机密文件”,利用这些口令欺骗网络中的“哨兵”,长驱直入互联网中的用户电脑。入侵得手,立即反客为主,并闪电般地自我复制,抢占地盘。

用户目瞪口呆地看着这些不请自来的神秘入侵者迅速扩大战果,充斥电脑内存,使电脑莫名其妙地“死掉”,只好急如星火地向管理人员求援,哪知,他们此时四面楚歌,也只能眼睁睁地看着网络中电脑一批又一批地被病毒感染而“身亡”。当晚,从美国东海岸到西海岸,互联网用户陷入一片恐慌。当加州伯克利分校的专家找出阻止病毒蔓延的办法时,短短12小时内,已有6200台采用Unix操作系统的SUN工作站和VAX小型机瘫痪或半瘫痪,不计其数的数据和资料毁于这一夜之间。造成一场损失近亿美元的空前大劫难!莫里斯事件震惊了美国社会乃至整个世界。

而比事件影响更大、更深远的是:更多的人从中受到启发,恶意代码从单纯的“熊孩子式”的破坏,往牟取利益的方向发展。黑客伦理失去约束,黑客传统开始中断。大众对黑客的印象也不再回复。

潘多拉之盒被打开了。

潘多拉之盒

1987-1988年间,此时的病毒仍是一个稀有事物,但这种情形被3个著名的病毒的出现改变了,它们是耶路撒冷,米开朗基罗和醉酒(stoned)。通过媒体的炒作,人们的心理充满了恐惧,开始到处寻求帮助。在这种气氛下,开发反病毒软件的公司如雨后春笋般纷纷冒出。从此,计算机病毒从此步入主流。病毒与反病毒技术也在对抗中发展。这一阶段的流行病毒种类有限,攻击目标单一,清除相对来说较容易,是计算机病毒的萌芽和滋生期,被称为第一代病毒。1988年底,在中国的国家统计部门发现的小球病毒是中国第一次病毒经历。

1989-1991年间,计算机反病毒技术的提高和反病毒产品的不断涌现,病毒编制者也在不断地总结自己的编程技巧和经验,千方百计地逃避反病毒产品的分析、检测和解毒,从而出现了第二代计算机病毒。第二代病毒又称为混合型病毒(又称为“超级病毒”),它是计算机病毒由简单到复杂,由单纯向成熟的阶段。计算机局域网的应用与普及,再加上网络系统尚未有安全防护的意识,结果出现了病毒第一次流行高峰。这一阶段的病毒攻击目标趋于混合型,一种病毒既可传染磁盘引导扇区,又可传染可执行文件,采取更为隐蔽的方法驻留内存和传染目标。它们往往采取了自我保护措施,增加了检测、解毒的难度。

1992-1995年间,第三代病毒学会了“变形”,此类病毒称为“多态性”病毒或“自我变形”病毒。所谓“多态性”或“自我变形”的含义是指此类病毒在每次传染目标时,进入宿主程序中的病毒程序大部分都是可变的,即在搜集到同一种病毒的多个样本中,病毒程序的代码绝大多数是不同的,这是此类病毒的重要特点。

此类病毒的首创者是MarkWashburn,他并不是病毒的有意制造者,而是一位反病毒的技术专家。他编写的1260病毒就是一种多态性病毒,此病毒1990年1月问世,有极强的传染力,被传染的文件被加密,每次传染时都更换加密密钥,而且病毒程序都进行了相当大的改动。他将此类病毒散发给他的同事,目的是为了证明特征代码检测法不是在任何场合下都是有效的。然而,不幸的是,为研究病毒而发明的此种病毒超出了反病毒的技术范围,流入了病毒技术中。
  
1992年上半年,在保加利亚发现了黑夜复仇者(DarkAvenger)病毒的变种“MutationDarkAvenger”。这是世界上最早发现的多态性的实战病毒,它可用独特的加密算法产生几乎无限数量的不同形态的同一病毒。
上世纪90年代中后期,远程网、远程访问服务的开通,病毒流行面更加广泛,病毒的流行迅速突破地域限制,首先通过广域网传播至局域网内,再在局域网内传播扩散。1996年下半年随着国内Internet的大量普及,Email的使用,夹杂于Email内的WORD宏病毒成为病毒的主流。
  
这一时期的病毒的最大特点是利用Internet作为其主要传播途径,传播快、隐蔽性强、破坏性大。网络的发展使得病毒的传播速度大大提高,感染的范围也越来越广。可以说,网络化带来了计算机病毒传染的“高效率”。另外,病毒的主动性、独立性更强了,变形(变种)速度极快并向混合型、多样化发展。

image-20210731223626353

病毒陈列室

1982年——在APPLE-II的计算机中发现Elk cloner
1986年——第一个PC病毒:Brain virus
1987年——“李海”(Lehigh)病毒最早在美国的李海大学(Lehigh University)被发现。
1988年——Morris Internet worm——感染了6000多台(蠕虫病毒,特点)
1989年——“黑暗复仇者”(Dark Avenger)/“埃迪”(Eddie)病毒是最早的反杀毒软件病毒
1989年——“费雷多”(Frodo)病毒出现。这个病毒感染文件后具有一定隐蔽性
1990年——virus construction set——病毒生产机
1990年——加壳病毒(Armored Virus)首次出现。此类病毒很难分解。如 Whale病毒。
1991年——Tequila病毒出现
1992年——DAMN病毒由Dark Avenger Mutation Engine编写
1992年——Michelangelo病毒出现后感染所有类型的磁碟。
1993年——出现的Satanbug/Little Loc/Natas病毒
1994年——Good Times(joys)
1995年——首次发现macro virus
1996年——netcat的UNIX版发布(nc)
1996年——Laroux/Excel宏病毒
1998年——第一个java virus(StrangeBrew)
1998年——netcat的Windows版发布
1998年——back orifice(BO)/CIH
1999年——Melissa/worm(macrovirus by email)
1999年——back orifice(BO)for WIN2k
1999年——DOS/DDOS-Denial of Service TFT/trin00
1999年——knark内核级rootkit(linux)
2000年——love Bug(VBScript)
2001年——Code Red-worm(overflow for IIS)
2001年——Nimda-worm(IIS/outlook/file share etc.)
2002年——setiri后门
2002年——SQL slammer(sqlserver)
2003年——hudan的steganography工具
2003年——MSBlaster/Nachi
2004年——MyDoom/Sasser
2006年——熊猫烧香
2006年——Leap-A/Oompa-A
2007年——机器狗病毒
2010年——Stuxnet(工业蠕虫)
2012年——火焰病毒
2017年——WannaCry
……

结束语

正义和邪恶的斗争是永恒存在的,计算机病毒的发展也必然会促进计算机反病毒技术的发展。从恶意代码的发展史来看,对技术的兴趣和爱好是其发展的源动力。但越来越多迹象表明,物质利益将成为推动计算机病毒发展的最大动力。2017年的“勒索”病毒,更是明目张胆地以勒索钱财为目的。直到2018年9月9日,WannnaCry勒索病毒的幕后黑手才被正式指控。

如今的恶意代码在功能上,分工也越来越细化,实现的关键技术也在不断的变化。移动端的飞速发展,也给恶意代码创造了新的土壤。未来也将会面临更多的挑战。但所谓魔高一尺,道高一丈,每一次的安全危机,都促使着人们安全意识的提高。

参考文章:
http://news.163.com/17/0611/04/CMKFRE6R00018AOP.html
https://baike.sogou.com/v40108.htm?fromTitle=%E8%8E%AB%E9%87%8C%E6%96%AF%E8%A0%95%E8%99%AB

CATALOG
  1. 1. 摇篮时代
  2. 2. 熊孩子
  3. 3. 潘多拉之盒
  4. 4. 病毒陈列室
  5. 5. 结束语