一个“潜伏”了22年的安全漏洞

早在互联网取得商业成功之前,布赖恩·J·福克斯(Brian J. Fox)就发明了互联网中使用最广泛的工具之一。

1987年,年轻的程序员福克斯编写了Bash(Bourne-Again Shell的简称)。如今,逾70%连入网络的机器都装有该免费软件,比如服务器、电脑、路由器、某些类型的手机,乃至冰箱和相机等日常用品。

周四,安全专家警告,Bash存在一个极其令人担忧的软件漏洞,而这一漏洞可以被用于控制世界范围内数以亿计的机器,或许会危及苹果电脑(Macintosh)和使用Android操作系统的智能手机。

这个名为“Shellshock”的漏洞被拿来与今年春天在一重要软件中发现的“心脏出血”(Heartbleed)漏洞作比较。

不过,Shellshock有可能会带来更大的威胁。“心脏出血”漏洞可以被用于从服务器上盗取密码等行动,而Shellshock则可以用于控制整台机器。前者潜伏了两年,给大约50万台机器造成影响,而后者潜伏了22年后才被发现。

一种存在漏洞的代码能够在20多年的时间里不被发现,这可能会令很多人感到震惊。但程序员们并不吃惊。

个人用户及大型企业依赖的很多商用工具,基于的都是由开源社区的几名无偿志愿者编写并维护的程序。谷歌(Google)等大公司与开源社区一样,都是在之前产品的基础上改造、创造新东西。例如,苹果操作系统会定期更新,但它建立在Unix等老版程序的基础之上。

有时候,这种代码会出现漏洞。随着时间的流逝,漏洞成为了各种产品的一部分。

福克斯对Bash——相当于用于解读用户不同指令的软件——维护了五年,然后将它交给现年49岁的程序员切特·雷米(Chet Ramey)。这项工作雷米一干就是22年,纯属业余爱好,没有报酬。他平时在凯斯西储大学(Case Western Reserve University)担任高级技术架构师,业余时间才维护Bash。

雷米周四接受采访时表示,他认为是自己在1992年推出Bash的一项新功能时无意间引入了Shellshock,但他无法确定,因为当时没有进行详细的记录。这些年来,他一个人维护Bash,邮箱里偶尔会收到错误报告。

9月12日,另一名开源爱好者斯特凡·查泽拉斯(Stephane Chazelas)联系上他,称存在一个可能很危险的漏洞。

在发现这个漏洞的几个月前,查泽拉斯在另外一个系统里找到了类似问题。他在自己的服务器上测试这个被他称为“Bashdoor”的漏洞,并寻找修复它的方法。

与雷米和开源社区的安全工作人员合作,查泽拉斯数小时内就编写好了补丁。然后他们开始联系各大软件厂商,同时试图避免把风声走漏给黑客。

美国国家标准与技术研究院(National Institute of Standards and Technology)发出了正式警告,宣称在严重程度、影响和可利用性方面,该漏洞达到了最高分10,而且它的复杂性较低,这就意味着很容易被黑客利用。

安全研究人员说,这个漏洞一经通报,他们就发现,通常所说的“白帽黑客”——很可能是安全研究人员——以及有网络罪犯嫌疑的人,均对互联网进行了全面扫描。他们担心,迟早会有人编写一个程序,利用Shellshock来控制机器。

研究人员指出,相较于苹果个人笔记本电脑,连接到互联网的服务器远远更容易受到这种攻击,因为你必须把自己的笔记本电脑连接到一个公共网络上,而且黑客需要知道你连接到哪个网络上,才能利用这个漏洞攻击你。

苹果尚未回应置评请求。

国土安全部旗下的计算机应急小组(Computer Emergency Readiness Team,简称US-CERT)建议用户和技术管理人员通知Linux或Unix操作系统的供应商,请他们提供相应的补丁。对于家庭用户,安全专家建议保持软件更新到最新版本,并查看生产商网站上的信息,特别是针对路由器这样的硬件。

即使一些人对开源社区有所质疑,但其最大的支持者提出,该漏洞被发现——就算是22年后才发现——至少也证明了程序员从来没有停止过纠错工作。

在本周四接受采访时,Bash的发明者福克斯开玩笑说,对于发现Shellshock漏洞这件事,他的第一反应是,“啊哈,我的计划成功了。”

今年春天“心脏出血”漏洞被发现后,非营利组织Linux基金会成立了核心基础设施联盟(Core Infrastructure Initiative),与亚马逊(Amazon)、苹果(Apple)和谷歌(Google)等各大科技公司开展合作。该联盟的目的是识别和资助开源基础设施的核心件。本周四接受采访时,Linux基金会的执行总监吉姆·泽姆林(Jim Zemlin)称,该联盟正在联系雷米,看看他有没有需要帮忙的地方。

“我不认为这个问题的关键在开源,”泽姆林说。“软件正在渗透这个世界的方方面面。糟糕的是,软件又难又复杂。”

至于开源社区的真谛,开源运动元老埃里克·J·雷蒙德(Eric J. Raymond)所做的阐述也许是最精辟的。他在1997年写道,“只要吸引足够多的眼球,一切漏洞都很浅显。”但是,哥伦比亚大学(Columbia University)的计算机科学教授史蒂夫·M·贝罗文(Steven M. Bellovin)说,在这件事情上,吸引更多眼球的是新功能,而不是质量。“质量需要干苦活、设计、检查和测试,这些事情根本比不上编程有趣,”贝罗文说。“如果不培养这些技能,开源社区就会在质量竞赛中落后得更远。”

加载余下内容▼

相关文章:

;