前几日参加了一个学术会议,是在Shrevport召开的,会议是我导师主持的,他是这个地区网络安全研究中心的director。 参加会议的目的无非就是参观学习,听了很多人的发言。但是也没有找到自己感兴趣的东西。这几天一直在苦苦寻找自己以后的研究课题。美国这边就是这样,导师不给你定题目,需要自己去找,到处查资料,看别人做的东西,然后发现自己的感兴趣的地方,或者别人有什么问题,提出质疑,加以改进,或者在原有的基础上找到创新点。 当然有的导师也会给你定好题目,但我们导师是不会的。他说,如果我亲自把题目给你定好了,那就不叫PhD了。 其实这也是自主性的一种体现,这么做的话,可以尽量拓宽研究的领域,而不会被导师现有的研究框架给限定住。有利于注入新鲜血液。同时,如果学生在新的领域取得了成果也会对导师的研究起到促进作用。得以良性循环。 还是说会议,其实在会议上,真是没法满足我的要求,因为我的目的太直接,就是想找一些感兴趣的东西,做为自己的研究课题,作为以后自己博士论文的内容。因为我觉得,如果能够尽早的把博士的研究题目确定好的话,以后做的每一项工作都会是非常有效的。因为我们学校提供Assistantship 叫做 Research Assistantship。所以,在整个学习的过程当中,是有义务去发表一些文章,是有义务来做出一些研究,来给导师做贡献。所以如果一时半会找不到题目的话,还是得去发表一些文章,即使和自己的博士论文无关。如果是这样的话,就达不到一种统一。就会被逼无奈,去写一些和自己的博士期间的最终目标不相关的东西。这样虽然可以暂时应付导师这一块,但是对自己的研究却是作用很小。 在这一次,学术会议上,有一个和我同时过来的PhD,只来了三个多月,就在上面做了报告。其实,看起来,好像是取得了不小的成绩,但是这样的东西是不可能出现在自己的博士论文中的。理论上没有什么突破,也只是把别人的算法加以了实现。充其量只能算是硕士的工作。 说起来也奇怪,会议上没有找到自己感兴趣的东西。晚上回到房子里,却又突然想到了一些东西。然后在google上敲下了,virus spread,发现了很多好东西。真是有心栽花花不发,无心插柳柳成荫。 说起在google上这一敲,其实也是有基础的,要不然,平白无故的怎么回敲这几个字。 还要回到最近一直在研读的一片好文章上面来。这篇文章的名字叫做,scaling law of human travel,真是一篇好文章。比较有趣,数据是根据一个网站所发起的一件有意思的事情得来的。可能大家以前也听过,就是 where is George 其实从这句话中,大家千万别给错误领会了,不是要去找 George Washington ,而是去找有George Washington的钞票流通到那里了。方法很简单,其实大家如果来了美国,有好事者,也可以做。就是,自己刻一个橡皮章,然后写上此钞票已经注册,如果有哪位仁兄再次拿到这张钞票请到,http://www.wheresgeorge.com/ 注册此钞票出现的时间和地点。 可能一般人,对于这种事情只会觉得有趣而已,但不同的人,由于文化背景所从事的职业,思维习惯的不同,看问题的方法就有所不同,这不就被D. Brockmann, 一位来自德国的科学家,给派上了大用场。其实,思路也很简单,因为钞票的流通,反映了人类旅行的规律,而一些传染病就是靠着人为载体进行的传播。所以这样一些数据再加以分析就可以用于分析传染病的传播规律。其实如果再往深一点去说的话就是,天地是一太极,人体也是一太极,万事万物所遵循的最根本规律都是一致的。 然后在开会的时候,我也没有闲着,一直在思考。所以有进一步联想到了病毒的传播。
猛犸 发表于2008-08-13 星期三 11:17 分类: 其他 | | 本文将发表于《先锋国家历史》,与发表版有所不同。 现在的计算机用户似乎都有了些共识。当计算机运行不正常的时候,当显示器蓝屏、频繁死机、文件打不开的时候,大部分用户的第一反应就是:我是不是中了病毒? 往往是这样。在大概十年以前,曾经听说过戴口罩防止被计算机病毒传染的笑话。现在不会再有人把这个笑话当真了,因为计算机病毒已经成为了我们在使用计算机的过程中必然会接触到的东西。在接下来的部分里,我们将会带领读者,一起去看看这些在我们计算机中不受欢迎的小小程序。 一、早期的计算机病毒 在生物学领域中,病毒本来是指一类比较原始的、有生命特征的、能够自我复制和只能够在细胞内寄生的非细胞生物。但在计算机科学领域里,所谓病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。(1994年2月18日颁布的《中华人民共和国计算机信息系统安全保护条例》第二十八条) 从这个定义可以看出,计算机病毒(Computer Virus)与其他计算机程序的重要区别在于自我复制性以及它的破坏性。 实际上早在电子计算机发明以前,约翰冯诺依曼(John Von Neumann)就在一篇名为《复杂自动装置的理论及组识的进行》的论文里提出了可自我复制的程序的概念。顺便提一句,现在几乎所有计算机都是按照冯诺依曼提出的构想而设计的,都属于冯诺依曼机,而冯诺依曼本人也被称为计算机之父。 冯诺依曼,帅哥 在20世纪60年代初,美国电报电话公司(ATT)的贝尔实验室(Bell Lab)中的三个年轻人维克多A维索特斯克(Victor A Vysottsky)、马尔科姆道格拉斯迈克尔罗伊(Malcolm Douglas McIlroy)和罗伯特H莫里斯(Robert BobH Morris)在忙于设计和开发UNIX操作系统之余,开发了一个叫做达尔文(Darwin)的游戏,在一台IBM 7090计算机上运行,以模拟生物的进化过程。他们这个游戏中,应用了冯诺依曼曾经提到过的程序自我复制的理论。后来这个程序也被称为磁芯大战(Core War),参与者自己撰写程序来和别人的程序争夺地盘,并且争取消灭别的程序。当时他们使用的编程语言是Redcode。1983年A.K.Dewdney(Alexander Keewatin Dewdney)在《科学美国人》(Scientific American) 杂志上发表了一篇名为《计算机娱乐》(Computer Recreations)的文章,把这种游戏介绍给大众。因为这种游戏只能在指定的环境中运行,因此虽然其中的某些程序具备了自我复制的能力,但是还不能称之为病毒。实际上,在他发表这篇文章的时候,计算机病毒这个名词还没有被发明出来呢。这个名词是直到1983年11月才首次提出的。 1983年,弗雷德科恩(Fred Cohen)正在南加州大学(University of Southern California)攻读他的博士学位,他写出了可自我复制及感染能力的程序。他发现,这个程序能够在一个小时内传遍他的整个电脑系统,快的话只需要五分钟。11月10日他在一个电脑安全研讨会上公布了自己的研究结果,并且指出:这一类型的程序可在电脑网络中象在电脑之间一样传播,这将给许多系统带来广泛和迅速的威胁。他的导师艾德勒曼(Len Adleman)将这一类型的程序命名为计算机病毒。(BTW,艾德勒曼也是牛人来的。RSA加密算法中的A,就是他。) 弗雷德科恩 这下子人们终于知道该怎么称呼去年的一个恶作剧了。1982年初,就读于Mt.Lebanon高中的九年级学生理查德斯克伦塔(RichardRich Skrenta)在苹果II型(Apple II)计算机上写出了一个叫做Elk Cloner的程序,并且把它拷贝到游戏软盘中去。当时人们对于软件的版权问题还不太在乎,盗版情况十分严重,相互复制软件是十分平常的事。当写入了Elk Cloner的软盘运行或启动时,它就会把自己复制一份放在计算机内存里,一旦有人将一张没有这个程序的软盘插进被感染计算机并输入指令来查看文件列表时,Elk Cloner就会再复制一次并且把副本写入那张未被感染的软盘中。于是,这个程序就开始传播开来。当第50次启动被感染的软盘时,将会出现斯克伦塔写的一首短诗: Elk Cloner: The program with a personality It will get on all your disks It will infiltrate your chips Yes its Cloner! It will stick to you like glue It will modify ram too Send in the Cloner! 它会传染你的磁盘; 它会渗进你的芯片; 它在克隆哪。 它会和你如影随形; 还会修改你的内存; 继续传染吧。 这首诗写得倒像是使用说明。 理查德斯克伦塔,资深帅哥 这个恶作剧的影响超出了斯克伦塔的想象。直到10年后,一个水兵在海湾战争期间还曾遭遇过它。而这个时候,斯克伦塔已经从西北大学毕业好几年了。 无论如何,斯克伦塔的Elk Cloner的破坏性还不很突出。1986年初,在巴基斯坦的拉合尔(Lahore),巴锡特(Basit Farooq Alvi)和阿贾德(Amjad Farooq Alvi) 两兄弟编写了巴基斯坦(Pakistan)病毒,也被称为(C)Brain病毒。这是一种具有破坏性的病毒,在DOS操作系统下运行,会把自己复制到磁盘的引导区里,并且把磁盘上一些存储空间标记成不可用。对于DOS来说,计算机启动的最后一个步骤是读取并执行磁盘上的主引导记录。主引导记录读取并执行磁盘上第一个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS最基本的系统文件。主引导记录和分区引导记录像是一本书上的目录,失去了它们,计算机这个机器脑袋就不会找到磁盘上存放的文件了。巴基斯坦病毒在一年之内就流传到了世界各地,并且很快衍生出了很多变种,其中有一些变种造成的损失比原始病毒造成的损失还大。这两兄弟在当地经营着一家销售IBM PC兼容机和软件的小商店,他们在接受时代周刊的采访时说,写出这个病毒的初衷只不过是为了保护自己写出的软件不被盗版而已。 有时候理想和现实之间的差距就是这么大。 被巴基斯坦病毒改变的引导区 又过了两年,罗伯特T莫里斯(Robert Tappan Morris)写出了世界上第一个通过网络传播的病毒。还记得我们刚才提到的达尔文游戏的三个发明者吗?其中有一个叫做罗伯特H莫里斯,正是这个莫里斯的父亲。那是1988年,小莫里斯正在康奈尔(Cornell)大学读研究生。他想统计一下当时连接在网络上的计算机的数目,所以就写了一个程序,并且在11月2日从麻省理工学院(Massachusetts Institute of Technology,MIT)的一台计算机上释放了出去。考虑到网络管理员们可能会删除掉他的程序,从而让他的的统计结果不够准确,所以他设置了一个自认为比较合理的方案:他让这个程序有一定的概率对自己进行复制,无论它所在的计算机有没有被感染都是这样。 罗伯特T莫里斯,青涩帅哥 标签: 信息化 , 技术 , 计算机病毒
猛犸 发表于2008-08-15 星期五 9:54 分类: 其他 | | 本文将发表于《先锋国家历史》,与发表版有所不同。 二、Windows和互联网时代的病毒和蠕虫 1995年8月24日,微软公司发布了划时代的操作系统Windows 95(视窗95)。这是微软公司推出的第一套完全采用图形化用户界面(Graphical User Interface,GUI)的操作系统在此之前的Windows系列版本只不过能算是在DOS上运行的一个软件而已。Windows 95迅速占据了大量的市场,其基于鼠标操作的直观的使用方式让计算机用户的学习成本大大降低。人们终于可以不再记忆那些复杂的命令和参数,只用动动鼠标就能完成自己的工作。这对于普通用户来说真是一大福音。 Windows 95,划时代的操作系统之一 但同时也是对病毒制造者的一大挑战。全世界的病毒制造者都在研究,怎样战胜声称百毒不侵的Windows 95。1996年,VLAD的Boza病毒首先做到了这一点。这个病毒会在每月的30号发作,受到感染的计算机将会显示一段文字说明,告诉用户这是VLAD组织的杰作。这是一个良性病毒,并不会造成什么损失,仅仅是表明自己的技术实力罢了。 在这一时期,最出名的Windows病毒应该算是在1998年由台湾人陈盈豪编写的CIH病毒了。这个病毒一共有从V1.0到V1.4五个版本,其中造成最大损失的是V1.2版。在每年4月26日发作,改写磁盘引导区数据,并且可能会修改主板上的基本输入输出系统(Basic Input/Output System)芯片,甚至造成主板损坏。1999年4月26日,CIH V1.2首次大范围爆发,在全球有超过六千万台电脑被不同程度破坏,在2000年4月26日,又一次大范围爆发,估计在全球造成的损失超过十亿美元。这个病毒也被叫做切尔诺贝利(Chernobyl)病毒,因为4月26日是切尔诺贝利核电站发生核泄漏的日子。但是后来据陈盈豪自己供称,这个病毒和切尔诺贝利核电站一点关系都没有,26号只不过是他高中的学号而已。台湾警方很快逮捕了陈盈豪,随后发现,破坏力更大的CIH V2.0已经接近开发完成了。 CIH 1.2 在陈盈豪没有写出CIH之前,一类制作起来更容易但是传播速度更快的病毒就出现了。这就是宏病毒(Macro Virus)。宏是微软公司的Office软件包提供的一种工具,可以让用户避免重复工作。它就像是在DOS下的批处理,在用户发出指令后,完成预先定义好的一系列工作。在Office中,宏有两种定义方式,其一是用宏录制器录制用户操作,二是通过Visual Basic语言编辑器手工编辑。在默认情况下,Word将宏存贮在 Normal.dot这个模板文件中,当打开一个文档时,会首先加载这个模板文件,以便让所有的Word文档都能使用。 宏病毒就利用了这一特性。一般来说,宏病毒附在文档中,当在未被感染的计算机上打开的时候,这个宏就会改写模板文件,把自己添加进去。以后只要一执行Word,这个受感染的通用模板便会感染其后所编辑的所有文档中去。如果在其他计算机上打开了感染病毒的文档,宏病毒又会转移到这台计算机上。 一段宏病毒代码 Visual Basic语言学习起来比较容易,宏病毒的门槛比传统病毒低得多,但是传染性惊人,破坏力也不容小觑。后来微软在Office里加入了宏扫描功能,当遇到带有不正常宏的文档的时候,会首先让用户选择是否要运行文档中的宏。杀毒软件也迅速跟进,现在宏病毒已经比较少见了。 但是通过互联网工具传播的病毒终于开始泛滥起来,病毒中的蠕虫这一分支越来越人丁兴旺了。 莫里斯撰写的蠕虫的特征是在网络上疯狂搜寻,寻找一切没有被传染的计算机。这一类病毒在发作时会大量占据计算机的运算资源和内存,并且造成网络拥堵。只要连接互联网,它就会传播,令人防不胜防。后来的大量病毒借鉴了这一做法,梅丽莎(Melissa)、爱虫(ILOVEYOU)、红色代码(Code Red)、SQL监狱(SQL Slammer)、冲击波(Blaster)、震荡波(Sasser)等是其中的最为知名的,并且都衍生出了数十种至数百种其他的变种。 梅丽莎(Melissa)蠕虫最早是在1999年3月26日被发现的,当时它导致了一台电子邮件服务器死机。被这个蠕虫感染的计算机会自动向微软电子邮件管理软件Outlook的联系人名单中前五十个邮件地址发送带毒的电子邮件,每份邮件都带着一个Word文档作为附件。当收到邮件的用户打开这个Word文档的时候,他的计算机就会感染这个病毒,并且进行新一轮的邮件发送。这种传染方式快得惊人,并且会占据了过多的网络带宽以及导致电子邮件服务器崩溃。据统计,这个蠕虫最终导致的损失可能超过8,000万美元。梅丽莎蠕虫的制造者是当时31岁的戴维L史密斯(David L. Smith),他说梅丽莎这个名字来自于他认识的佛罗里达州的一位舞女。在FBI和新泽西州警察的合作下,戴维史密斯很快就被抓获了,并且被判处20个月的监禁以及5,000美元罚款。这是美国历史上第一次对病毒撰写者判处如此严厉。 一封带有梅丽莎病毒的邮件 仅仅就在梅丽莎发作一年之后的2000年五月四日,在香港首次发现了爱虫蠕虫。爱虫和梅丽莎的传播方式类似,但是要凶狠得多。用户可能会接到一封电子邮件,主题是ILOVEYOU,还带有一个名为LOVE-LETTER-FOR-YOU.TXT.vbs的附件。当用户打开这个附件的时候,将会把同样的邮件发给用户地址簿里所有的地址。它还能查找本地磁盘和网络驱动器,并在所有目录和子目录中搜索可以感染的目标,能够感染超过十种类型的文件,甚至连MP3文件都不放过。爱虫在不到二十四小时的时间里传遍了全世界,仅仅一天就造成了大约55亿美元的损失。当然,这可能和它的名字也有一定关系。受到袭击的包括一些重要机构,美国国防部和CIA也在其中。在没有合适的杀毒程序的情况下,许多机构不得不关闭了电子邮件服务器。计算机安全专家大声呼吁用户在接到邮件时不要轻易打开附件,但是这种蠕虫还是持续蔓延开来,并且通过修改Windows操作系统中最重要的数据库之一注册表,来保证它自己开机后就能自动运行。 2001年7月13日,红色代码从网络服务器上传播开来。它专门针对运行微软互联网信息服务器(Internet Information Server,IIS)软件的网络服务器来进行攻击,并且主动寻找其他易受攻击的主机进行感染。这个行为持续大约20-27天,之后它就开始对某些特定IP地址发起拒绝服务(Denial of Service,DoS)攻击,让目标计算机不能被访问。在短短不到一周的时间内,这个病毒感染了近40万台服务器,据估计多达100万台计算机受到感染。实际上,在六月中旬,微软曾经发布了一个叫做MS01-033的补丁来修补这个漏洞,但是大多数网管都没有安装这个补丁。 SQL监狱也被称为蓝宝石(Sapphire),2003年1月25日首次出现。这个蠕虫需要满足较为苛刻的条件才会发作:它只感染服务器;它随机产生IP地址,并向这些IP地址发送自身的副本;如果当前的计算机刚好运行着未打补丁的微软SQL服务器桌面引擎(SQL Server Desktop Engine)软件,那么马上就会变成下一个传染源。然而,互联网上没有安装补丁的服务器为数可不少。这个蠕虫在十分钟之内感染了7.5万台计算机,甚至导致了大量的网络设备被迫关闭。 好容易到了夏天,冲击波又袭来了。这个蠕虫最早于8月11日被检测出来,短短两天之内就达到了攻击顶峰。被传染的计算机当连接上互联网时就会弹出一个对话框,告诉用户这台计算机将在1分钟内关闭。对于这种会反复传染的病毒,人们实在不厌其烦,不得不发明了一些简单的土方法。其中最常见的一种是在提示关机后的一分钟内,把计算机的系统时间向前调一天。除此之外,这个病毒的作者似乎还想表达些别的什么。在病毒的可执行文件MSBLAST.EXE代码中隐藏着这样的信息:桑,我只想说爱你!(I just want to say LOVE YOU SAN!!)以及比尔盖茨,你为什么让这种事情发生?别再敛财了,修补你的软件吧!(billy gates why do you make this possible? Stop making money and fix your software!!)和红色代码类似,在冲击波蠕虫发作前一个月,微软其实已经推出了相应的补丁MS03-026和MS03-039,但是却没有得到用户的重视。 冲击波病毒感染后,提示一分钟内关机 一年以后,震荡波发作了。这个蠕虫是德国一名17岁的高中生编写的,他在18岁生日那天释放了它。震荡波从2004年8月30日起开始传播,其破坏能力之大令法国一些新闻机构不得不关闭了卫星通讯。它还导致德尔塔航空公司(Delta)取消了数个航班,全球范围内的许多公司不得不关闭了网络。与先前多数病毒不同的是,震荡波的传播并非通过电子邮件,也不需要像梅丽莎或者爱虫那样需要用户的交互动作,完全自己一手包办了。它利用了未升级的Windows 2000/XP系统的一个安全漏洞,一旦传染到计算机上,它便主动扫描其他未受保护的系统并将自身传播过去。后来德国警方逮捕了这个孩子,但是由于编写这些代码的时候他还是个未成年人,虽然被法庭认定从事计算机破坏活动,但还是仅判了缓刑。 在这一个阶段,病毒制造者似乎还没有和经济利益有任何关系,看起来,他们只是往往为了宣扬自己的名声或者对现实生活不满。但是接下来,情况却奇怪地扭曲了。 标签: 信息化 , 计算机病毒