acm-header
登录

ACM通信

数字村

红色代码蠕虫


把“夏季新口味的软饮料”和“虫子”结合在一起的概念似乎意味着一种不含酒精的龙舌兰酒,而不是一个重大的互联网安全漏洞。然而,在过去的8月,红色代码蠕虫有了不祥的意义。在本专栏中,我将讨论这种最新的“恶意软件”是如何钻进网络空间的。

以下的FBI警报提供了一个有用的方法,以衡量红色代码蠕虫对互联网社区的潜在威胁:

  • 立即发布:美国东部时间2001年7月29日下午3点
  • “互联网面临的一个非常真实和现实的威胁是:7月31日的行动截止日期。
  • 摘要:红色代码蠕虫及其变异对互联网用户构成持续和严重的威胁。必须立即采取行动消除这一威胁。部署了易受蠕虫攻击的软件(Microsoft IIS版本4.0和5.0)的用户必须安装…一个重要的安全补丁。
  • “问题有多严重?”7月19日,“红色代码”蠕虫在短短9小时内感染了超过25万个系统。该蠕虫扫描互联网,识别脆弱的系统,并通过安装自己感染这些系统。每一个新安装的蠕虫连接所有其他的,导致扫描速度迅速增长。扫描的这种不受控制的增长直接降低了互联网的速度,并可能在所有类型的系统中造成零星但广泛的中断。红色代码很可能在美国东部时间2001年7月31日晚上8点再次开始传播,并且已经发生变异,因此可能会更加危险。这种传播有可能扰乱商业和个人对互联网的应用,如电子商务、电子邮件和娱乐。”

该警报由微软和FBI国家基础设施保护中心、美国信息技术协会、CERT协调中心、SANS研究所、互联网安全系统和互联网安全联盟“Who’s Who”联合发布,该联盟由关注互联网安全的主要机构和组织组成。但什么是红色警报,又是怎么发生的呢?

回到顶部

蠕虫的任何其他名字

红色代码最初只是另一个恶意软件(在现代技术术语中称为“恶意软件”)。恶意软件的两种最常见形式是病毒和蠕虫及其组合。

计算机病毒附着在原本“健康”的主机程序上,并由此发起对计算机系统的攻击和感染。绰号为“耶路撒冷”、“圣诞节”、“米开朗基罗”、“切尔诺贝利”和其他各种变异的病毒,从20世纪80年代开始广泛传播,最初通过磁盘共享传播,后来通过数字网络传播。现代病毒经常以嵌入在分布式数据文件(电子邮件附件、电子表格和字处理宏)中的可执行内容的形式出现。截至2001年9月3日,赛门铁克的诺顿杀毒软件检查了52,911种已知病毒。


在最初的感染和潜伏期过后,“红色代码”被设定为针对白宫政府网站的实际IP地址,对白宫政府网站发起拒绝服务攻击。


另一方面,蠕虫作为自主的、独立的程序运行。蠕虫在不需要毫无戒心的宿主程序进行感染或繁殖的情况下实现其恶意。被动蠕虫通过电子邮件等数据传输进行传播(就像VBS/AnnaKournikova垃圾邮件蠕虫使用Visual Basic利用Microsoft Outlook的漏洞将自己复制到主机的电子邮件地址簿中的每个人)。梅丽莎和情书虫都很被动。

另一方面,主动蠕虫利用网络和操作系统软件的安全弱点,积极地进入计算机系统。“绦虫”和“蠕虫”与数字网络的联系源于约翰·布伦纳1975年的科幻小说,冲击波骑士而关于蠕虫程序的早期经验的最初讨论是由John Schoch和Jon Hupp在1982年提供的(通信, 1982年3月)。

今天,蠕虫技术是如此广泛,以至于可以(也许已经)开发出一个词汇来描述每一个变种。红色代码是一个活跃的蠕虫,就像1987年的莫里斯·康奈尔网络蠕虫和Linux Raymen蠕虫一样。截至2001年3月,CNET报告称,蠕虫占互联网入侵恶意软件的80%(见news.cnet.com/news/0-1003-201-5125673-0.html)。

毫不奇怪,现代恶意软件已经变得杂交了。例如,梅丽莎不仅是病毒和蠕虫,还是特洛伊木马。此外,与病毒不同的是,蠕虫通常驻留在主内存中,而不是磁盘内存中,因此大多数病毒扫描程序不会检测到它们。

红色代码还包含了一些独特的变化:

  1. 它通过TCP/IP Web端口80进行传播;
  2. 它在英文网站上污损“欢迎来到www.worm.com!”被中国人黑了!”
  3. 自我传播是通过一个“随机的”IP地址生成器来控制的,它有一个bug;而且
  4. 在最初的感染和潜伏期过后,“红色代码”被设定为针对白宫政府网站的实际IP地址,对白宫政府网站发起拒绝服务攻击。

事实证明,后者具有深远的意义。

回到顶部

红色代码的发现

2001年7月12日,星期四,化学文摘服务公司的高级安全工程师Ken Eichman注意到CAS Web服务器受到27台不同计算机的611次攻击。到了下一个星期六,艾克曼注意到攻击源的数量超过了1000个。周日,dshield确认了蠕虫的存在,7月16日周一,eEye数字安全公司的程序员开始对恶意代码进行逆向工程。

随着咖啡因引起的对新软饮料“红色代码”(Code Red)的愤怒,由eEye首席黑客官Marc Maiffret领导的eEye团队在7月17日星期二(Red代码首次从中国的一所大学部署一周后)确定,新的蠕虫利用了微软的互联网信息服务(Internet Information Services)的一个安全漏洞,部署在数以百万计的微软Windows NT、Windows 2000和Windows XP测试版服务器上。从技术上讲,这个安全漏洞被称为“索引服务器漏洞”。缺陷在于微软的Internet Information Services(简称IIS)的第4和第5版使用了一种名为“ISAPI”过滤器的索引工具,它可以自动将数据文件分配给可执行程序环境。但是,该工具不检查缓冲区溢出,未检测到的溢出是红色代码蠕虫的接入点。

到7月18日星期三,eEye团队确定红色代码旨在终止传播并对白宫发起拒绝服务(d-o-s)攻击。格林尼治标准时间7月19日午夜。D-o-s攻击用如此多的无用数据使互联网服务器无法正常工作。eEye团队还发现,黑客针对白宫网站的是IP地址,而不是URL地址。这是发现过程中的关键时刻,因为最终的修复只不过是将Whitehouse.gov服务器重新定位到另一个IP地址。正如预测的那样,d-o-s攻击按时开始,但没有对白宫的网络服务器造成重大影响。据CNET报道,截止到d-o-s启动时,超过35.9万台受感染的计算机中的每台在4.5小时后将在白宫服务器上卸载400MB无用数据。

结束吗?不完全是。在专栏的开头简要回顾一下FBI的警报,会发现它的日期是10天后。到那时,一个新的改进的红色代码已经出现了,一些人认为是因为eEye发布的红色代码安全建议。重新讨论这个问题会适得其反,但是红色代码的改进版本将在格林威治标准时间午夜发布。7月31日的部署是无可争议的。这个新的改进版本是联邦调查局红色代码警报的主题。幸运的是,当新的红色代码被触发时,Windows补丁已经被广泛部署,可以将损害转移到特定目标上。然而,第二个版本的传播范围比第一个要广得多(见www.digitalisland.net/codered)。的数字描述了第二个红色代码蠕虫在其生命的第一周内的传播情况。第二个版本避免了破坏Web页面,并修复了错误的随机IP地址生成器。

最后一点。我提到了上一节中的“转折”(3)和(4)意义深远。我还没有触及(3)的意义。在最初的红色代码中,错误的一个有趣的副产品是,红色代码没有创建到每个受感染服务器的随机路径,而是通过与前一个服务器相同的路径感染每个新服务器,从而在每次新的感染时留下受感染服务器的日志。在隐藏个人踪迹方面的失败(如果肇事者被查明,也许我们应该在软件设计方面给他或她一个荣誉的“F”)。在任何情况下,这种性质的漏洞都是互联网取证的圣杯。

回到顶部

索引服务器的缺陷

如果我不提供红色代码问题的技术方面的一个简单概述,那就太失职了。

该漏洞的本质是Windows使用动态链接库(dll)处理缓冲区溢出的方式。带有预定义文件名扩展区(例如.html)的传入数据被自动分配给dll进行解释和处理(例如sincc .dll)。如果一切顺利,则在DLL文件的帮助下“理解”了输入字符串,并对当前缓冲区中的数据字符串采取了适当的操作。但是,如果数据字符串太长,无法放入缓冲区,会发生什么情况呢?如果DLL是在系统上下文中执行的,那么任何异常都可能对计算机系统造成威胁。

Code Red通过主Web端口(#80)访问服务器,而不管主机操作系统是什么。在Microsoft的IIS服务器中,入侵问题更大,尽管其他服务器的入侵也可能导致不可预测的结果。蠕虫本身实际上是作为Web查询中一个输入缓冲区的数据之后的数据块发送到服务器的。这个想法很简单。

假设您正在向某个Web服务器上的Perl程序发送数据。实现这一点的一种方法是将程序名和数据包含在通过浏览器输入的查询字符串中。为了说明这一点,Web查询字符串“http://www.website.net/greeting.cgi?data=25nnn”将通过website.net上的端口80,这将导致服务器执行名为“greeting.cgi”的Perl程序,接受“25nnn”作为输入。

为了加快处理速度,操作系统被设计成自动将具有一定区段的文件与内置程序相关联。当用户在工作站上单击目录索引中的.jpeg图像文件时,就会自动启动Photoshop或其他程序来渲染图形。在微软服务器上,带有。ida和。idq扩展名的文件由IIS通过ISAPI扩展名idq.dll自动处理,该扩展名在核心系统程序'inetinfo.exe'中运行。

这就是问题所在。像.ida和.idq这样的文件应该是包含索引信息的脚本文件。Windows IIS中的错误是由于当假定与.ida文件相关联的数据对缓冲区来说太长时,超出缓冲区的数据将导致操作系统执行“受感染的”代码。这就好像'greeting.cgi'是一些流氓代码,被设计成只接受两个整数输入(例如,"25"),并将控制转移到任何二进制可执行文件,或随后的指针(例如"nnn")。

临时解决方案让我们通过了红色代码蠕虫的第一次迭代,以及其他类似的蠕虫,只是将有害的DLL从有害的文件区中分离出来。然而,除非底层逻辑已经更改,否则这至多只是一个补丁。

回到顶部

幻觉再现

说红色代码代表着严重的威胁是轻描淡写的。一个如此简单的安全漏洞就能让成千上万的互联网计算机受到感染,这一事实暴露出我们处理数据交换标准的方式存在根本性缺陷。在红色代码的修订版遭到攻击后的第一周内,第二代代码红色II出现了,目标是有线电视和DLS ISP网络,这一事实证实了这一点。与红色代码v1和v2不同,红色代码II打开了受感染服务器的后门,后续的攻击者可以通过这些后门(参见侧边栏有关连结)。我们显然还没有听到红色警报的最后一声。

更重要的是,所有这些大胆行为对经济的影响。的表格说明了由参与攻击的计算机数量和20个主要TCP/IP端口的事件总数所引发的计算机攻击量。这些数字是惊人的。但更令人吃惊的是对经济影响的估计。

计算机经济学研究副总裁Michael Erbschloe估计,仅在2001年7月和8月,红色代码蠕虫就给社会造成了约26亿美元的损失。再加上“爱虫”的87亿美元,“梅丽莎”的12亿美元,“探索者”的10亿美元,还有“卡姆爵士”的10亿美元,这可是笔不小的数目。根据ererbschloe的估计,将计算机系统恢复到感染前的运行状态所造成的损失和生产力的损失大致相等。这些损失是如此之大,以至于厄尔斯洛开发了一个严格的模型来衡量10种不同类型的信息战的经济影响侧边栏).

这幅画有什么问题?也许现在是时候在我们的课程模式中增加对计算机社会问题课程的强调,同时我们也要逐步提高与互联网相连的软件的标准和披露要求。

回到顶部

作者

哈尔Berghel(www.acm.org/~hlb)是拉斯维加斯内华达大学计算机科学教授和主席,也是网络空间文献的频繁贡献者。

回到顶部

数据

UF1数字《红色代码的传播》,2001年8月1日至8日。来源:数字岛(www.digitalisland.net/codered)

回到顶部

UT1表格按端口和频率划分的网络攻击次数。资料来源:SANS研究所(www.incidents.org)

回到顶部


©2001 acm 0002-0782/01/1200 $5.00

允许为个人或课堂使用本作品的全部或部分制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。

数字图书馆是由计算机协会出版的。版权所有©2001 ACM, Inc.


没有找到条目

Baidu
map