1.1.4 计算机病毒实验起源
正如鲁迅先生所言:“其实地上并没有路,走的人多了就有了路。”任何事物都是在不断尝试中发展、不断探索中突破,量变之后才会迎来质变。有了计算机及编程语言之后,在前人的不断努力、反复探索下,在经历了数理、游戏、科幻等前世之后,计算机病毒的原始胚胎已逐渐形成并由此进入萌芽期。
1983年11月3日,美国南加州大学的学生弗雷德·科恩(Fred Cohen)在UNIX系统下,编写了一个能自我复制、可引起系统死机并能在计算机之间传播的程序。弗雷德·科恩为宣示证明其理论而将这些程序以论文Computer Virus-Theory and Experiments发表,在当时引起了不小的震撼。弗雷德·科恩编写的这段程序,将计算机病毒所具备的破坏性公之于众。在其导师伦·艾德勒曼(Len Adleman)的建议下,弗雷德·科恩将该程序命名为“计算机病毒”(Computer Virus),并提出了第一个学术性的、非形式化的定义:计算机病毒是一种计算机程序,它通过修改其他程序把它自己的一个复制体或其演化的复制体插入其他程序,从而感染它们。同时,他还提出了著名的科恩范式:不存在能检测所有计算机病毒的方法。这让安全研究者放弃了寻找安全永动机,从而走上了进行工程对抗的反病毒研究路线。弗雷德·科恩也因此而获得“计算机病毒之父”的美誉(见图1-6)。
图1-6 计算机病毒之父——弗雷德·科恩(Fred Cohen)
弗雷德·科恩提出“计算机病毒”概念时,正值计算机技术发展风起云涌之时。在硬件方面,Intel公司不断推陈出新,相继发布了Intel 80286、Intel 80386等CPU芯片;在软件方面,Microsoft公司发布了MS-DOS操作系统;蓝色巨人IBM公司则推出了集成Intel芯片与MS-DOS操作系统的IBM-PC机,极大地推动了计算机技术的发展与普及。至此,计算机病毒走完了从理论证明到实验验证的前世,并通过自我进化适应了其外部运行环境(主要指当时流行的MS-DOS操作系统),完成了破茧成蝶的演化。
1986年,首例真正意义上的计算机病毒——C-Brain病毒(又称巴基斯坦兄弟病毒)诞生,为巴基斯坦兄弟巴锡特(Basit)和阿姆杰德(Amjad)所编写。兄弟俩经营着一家销售IBM-PC机及其兼容机的小公司。为了提高公司营业额,他们开发了一些程序作为赠品。不料,这些程序很受欢迎,被很多人盗版使用。为了防止软件被非法复制,跟踪并打击盗版行为,兄弟俩接着开发了一个附加在程序上的“小程序”。该“小程序”通过软盘传播,只在软件被盗版复制时才发作,将盗版者的硬盘剩余空间占满。该“小程序”属于引导区病毒,是DOS时代的首例计算机病毒,还是第一例隐匿型病毒,被感染的计算机不会呈现明显症状。
C-Brain病毒的问世犹如打开了潘多拉盒子,随着MS-DOS操作系统的普及,研究者对其进行了深入细致的剖析,逐渐解开了其主要原理和诸多系统功能的调用机制。MS-DOS操作系统为计算机病毒发展提供了全方位生态平台——计算生态系统。“物竞天择,适者生存”,为适应外部运行环境,更好地生存于计算生态系统中,计算机病毒开始自我发展、自我进化,向着多类型、多形态、免杀、隐遁及对抗反病毒等方向全面发展。