跳转到内容

自我复制自动机/历史

来自维基教科书,开放世界中的开放书籍

自我复制自动机是一种能够构建自身副本的机制;一般来说,假定构建材料来自自动机所在的宿主环境。抽象模型最早由约翰·冯·诺伊曼在 20 世纪 40 年代后期开发,称为运动学模型和镶嵌模型。运动学模型基于现代机器人学概念。镶嵌模型现在被称为元胞自动机。

自我复制代码的起源可以追溯到简单的恶作剧和极客幽默。社会不愿接受不可避免的变化及其固有的怀疑——这都是其适应性生存反应的产物——以及社会动物对个性的渴望,导致这些有趣的形式被视为一种传染病,而不是人工生命的初级阶段。

这种被视为传染病的观点反过来影响了整个社区的语言学,该社区本身由“病毒编写者”和“反病毒编写者”组成。为了延续这一传统,我们真诚地希望每次使用“病毒”一词时,都是出于善意。

现在将讨论当前自动机演化中的一些亮点。详细分析将在演化部分进行。

80 年代

[编辑 | 编辑源代码]

到 1990 年,至少有 50 种影响 IBM PC 的病毒和大约 15 种影响 Apple Mac 机器的病毒是众所周知的(由反病毒社区分析和研究)。

人们普遍认为,第一个在野外传播的病毒是Elk Cloner,它在 Apple II 软盘上传播。它大约出现在 1981-82 年。这一时期之后是弗雷德·科恩的传奇论文。到 1986 年,Brain 病毒的许多变种流行起来。它是一种引导扇区感染病毒。普遍的说法是,它起源于巴基斯坦,其作者是两兄弟。 Virdem,第一个文件感染病毒也出现在同一年。

1984 年,A. K. Dewdney 在《科学美国人》杂志上的一篇文章中向公众介绍了游戏“核心战争”。[1]

1987 年,许多文件感染病毒开始出现,尤其感染 COMMAND.COM。第一个这样的病毒被认为是Lehigh 病毒。文件感染病毒主要集中在简单的二进制格式或 COM 文件上。但关于如何开发 EXE 感染程序的研究也在进行。这最终导致了耶路撒冷 病毒家族的诞生。蠕虫的概念,即能够自我复制而无需感染的代码,到那时也得到了很好的发展。圣诞蠕虫,具有很高的复制率,在此期间感染了 IBM 大型机。

Robert Morris 于 1988 年发布了一个互联网蠕虫,导致了第一次互联网危机。90 年代初期,病毒交换 (VX) BBS 的出现,使程序员能够分享想法和代码。

90 年代

[编辑 | 编辑源代码]

到那时,反病毒软件主要通过使用某些签名或代码跟踪来搜索病毒的存在,这些签名或代码跟踪会出现在任何感染的文件中。但随着多态病毒的出现,这种理念不得不改变。1991 年,第一个多态病毒 Tequila 发布。

1992 年,米开朗基罗病毒从媒体获得了广泛的宣传。然后是来自 Dark Avenger 的 MtE。这一年还出现了带有下拉菜单和简单界面的病毒构建工具包,只需要很少的编程经验就可以创建病毒。

1995 年带来了病毒技术的新概念——宏病毒。Concept 是第一个宏病毒,它感染了 Word 文档。这标志着从简单感染可执行文件到感染数据文件的首次重大偏离。

在 Windows 95 发布后,第一个真正的 Win95 病毒 Boza 出现在 1996 年。这一年还出现了 Laroux,一种 Excel 电子表格感染病毒,以及 Staog,一种 Linux 病毒。1998 年观察到了一种名为 Strange Brew 的 Java 病毒,进一步扩展了受害者文件的可能性。

1999 年,Melissa 发布,导致了全球范围内的混乱。Corner 出现,它感染了 Powerpoint 演示文稿。Tristate 也出现了,它感染了文档、电子表格和演示文稿。

2000 年至今

[编辑 | 编辑源代码]

在 90 年代后期,从病毒到蠕虫的重大转变可以观察到。越来越多的蠕虫开始出现。2000 年,Love Letter 蠕虫成为迄今为止传播速度最快的蠕虫。它也是社会工程学用于最大化传播的一个有趣例子。Streams,概念验证病毒,是第一个利用 NTFS 文件系统的备用数据流的病毒。

随着越来越多的语言和平台出现,编写病毒的新方法也随之发展。例如,Pirus 是用 PHP 脚本语言编写的。它试图感染 HTML 和 php 页面。另一个例子是专门攻击 Gnutella P2P 系统的 Gnuman。Winux,一种可以在 Windows 和 Linux 下运行的概念验证病毒,于 2001 年发布。另一个例子是 PeachyPDF-A,第一个利用 pdf 文件进行传播的蠕虫。

延续上述趋势,2002 年发布了 LFM-926,第一个感染 Shockwave Flash 文件(.swf)的病毒。2002 年 3 月,Sharp-A,第一个用 C# 编写的 .NET 蠕虫(据说是由一位名叫 Gigabyte 的女性黑客编写)发布。5 月下旬,出现了 Benjamin,它攻击了 Kazaa P2P 系统。另一个有趣的样本是 Perrun 病毒,它将自身的一部分附加到 JPEG 图像文件。

2003 年是蠕虫泛滥的一年。一些在此期间开始传播的蠕虫的例子包括 sobig(它有自己的 SMTP 引擎)、Slammer、Lovgate、Blaster 等。社会工程学技术也发展了不少。

2004 年 2 月,人们发现病毒编写者开始利用他们的技术赚钱。一家德国杂志成功地从 Randex 病毒的分销商手中购买了一份受感染 IP 地址列表。这些 IP 地址被出售给垃圾邮件发送者,他们可以使用受感染的机器作为邮件僵尸。

概念验证蠕虫 W64.Rugrat.3344 于 5 月下旬出现。据说它是第一个专门攻击 64 位 Windows 文件的恶意软件(它忽略了 32 位和 16 位文件)。它使用 IA64(英特尔架构)汇编代码创建。

6 月,Symb/Cabir-A 感染了诺基亚 Series 60 手机。它使用蓝牙技术传播到附近的蓝牙设备。9 月初,W32/Amus-A 出现。唯一使这个家伙值得一提的是,它使用 Windows 中的 Microsoft 语音引擎大声朗读:“hamsi。我看到了你。Ha-a-a-a-a。你必须来土耳其。我正在清理你的电脑。5. 4. 3. 2. 1. 0. Gule. Gule”。

9 月 14 日,那个免受病毒侵害的文件类型典范,JPEG 图像,遭到了攻击。准确地说,图像文件本身并没有那么大的责任,而是处理图像文件类型的 Microsoft 通用 .DLL 文件,它存在缓冲区溢出错误,这可能允许某人将恶意代码添加到 JPEG 图像中,然后通过攻击系统打开漏洞。不久之后,一些木马漏洞开始出现。

Santy 蠕虫在 2004 年底出现。它用 Perl 编写,使用 Google 搜索受害者,这些受害者是 phpBB 论坛,并利用 phpBB 代码中的某些漏洞进行传播。

2005 年 1 月底,Bropia 蠕虫出现,它以 MSN Messenger 为目标进行传播。这是一个复杂的蠕虫,通过电子邮件和 MSN 消息客户端传播。它的消息与真实用户发送的消息非常相似,并且首次尝试将回复地址伪造成来自反病毒公司(趋势或赛门铁克,以及微软,虽然来自微软已经成为一种社会工程学策略有一段时间了)。

大约在 2006 年,一些数学家开始探索一种计算机程序的可能性,这种程序不仅可以生成另一个相同程序的副本,还可以生成一个更好的程序。[2]

  1. Dewdney, A. K. (1984). "在名为 Core War 的游戏中,敌对程序会进行一场比特之战". 科学美国人. 检索于 2008-11-18. {{cite journal}}: 未知参数 |month= 被忽略 (帮助)
  2. Matt Mahoney. "递归自我改进程序模型". 2008. 这似乎是一种 w: 哥德尔机.
华夏公益教科书