Shellshock漏洞那些事网络安全噩

2019-05-15 00:20:13 来源: 静安信息港

9月30日消息,据国外媒体报道,鉴于Linux/UNIX系统近日再次曝出危险等级超心脏出血的Bash漏洞Shellshock,《连线》杂志周一特别刊文,介绍了该漏洞的过往与今生,并指出对于已破损不堪的互联而言,Shellshock或将只是一切噩梦的开始。

以下为《连线》文章全文翻译内容:

布莱恩福克斯(Brian Fox)驾车从圣巴巴拉(Santa Barbara)来到了波士顿,其车后备箱内放着两卷巨大的磁带。

这些并不是音乐磁带或者视频磁带。它们转载的是电脑软件代码及数据,是专为过去有家具般大小的电脑服务的,就像我们在《Dr. Strangelove》和《Three Days of the Condor》等经典电影中看到的一样。

那一年是1987年,福克斯驾车横跨美国来到了他的新家。他所携带的磁带装载了一个名为Bash的软件程序,而这个程序就是后来在UNIX系统及相关再发行版中随处可见,用于桥接用户与操作系统的重要工具。

福克斯是一名高中辍学生,其平时大量时间都与麻省理工(MIT)的电脑极客们,如理查德斯托尔曼(Richard Stallman)等一起度过。尽管当时的福克斯只是个脚架焊接工,但其却有着1颗壮志雄心要创建出一套完全免费,并可让人随意删节,且不受繁重拷贝条款限制的软件系统。福克斯将这一想法称为自由软件运动,其终的目的是将UNIX操作系统全部重建,并以GNU的方式完全免费地与众人共享。这也便是开源软件生态的雏形。

福克斯和斯托尔曼在那个时候并不知道,他们正在开发的软件随后会成为全球通信基础设施几十年里几近不可或缺的重要工具。在福克斯将两卷磁带从波士顿带回到加州后,此时已有很多工程师开始注意到并使用Bash,有的甚至还帮助进行开发。在UNIX的带动下,GNU和Linux开始迅速突起,尤其是后者如今俨然已成为当代互联的躯干组成,Bash也因此进驻了数以亿计的计算机当中。

直到1992年的某一天,一位工程师将一个程序Bug键入到了Bash中。又过了20多年,终于有安全专家在上周发现了这一沉睡已久的安全漏洞。这一Bug被称专业人士们称为Shellshock,其危害性将可致使黑客肆意大规模地破坏当今的互联结构。

Shellshock是人类计算机史上已知的、老的、还没有修复的程序Bug。事实上在今年早些时候,专家们也在另一个已存在多年的开源软件上找到了一个名为心脏出血(Heartbleed)的Bug。这两个Bug都表明出当今互联的一个问题,即除非我们能够改变代码编写的方式和软件审查的方式,否则一样的问题或将一直阻碍和威逼着互联的发展。互联建立在大量被重复使用的软件之上,其中一些软件乃至是几十年前就已存在的,而那个时候,我们甚至还没有对安全问题的审查考虑。

譬如Bash被创立之时,就没有人想过要为其遭受络攻击的可能性进行评估,因为这在当时毫无意义。

(当时)去担心这个软件会成为地球上被使用多的一个,并要斟酌会被一些歹意的人利用在上发起攻击,这完全是不现实的。福克斯说,当可能的条件具备时,Bash已被使用有15年之久了。在今天,谷歌、Facebook,或任何一个互联巨头都在使用Bash,因为它是开源的,任何人都可以在任何时候对它进行审查。然而事实是,尽管任何人都可以在任何时候去审查Bash的安全性,但却没有一个人想过这么去做。这类现象需要产生改变。

络是怎样建成的

从数码的角度看,福克斯的Bash程序大致与iPhone的桌面截屏图大小一致。但在1987年,这个程序是无法利用电子邮件发送至美国彼岸的。当时的互联雏形才刚刚形成,跨越全球的WWW概念则还处于酝酿中。因而这就有了福克斯驾车带着两卷磁带由圣巴巴拉开往波士顿的一幕。

Bash是一个shell工具,是一个在图形用户界面出现前用于与计算机进行交换的指令行键入工具。这有点类似Windows下的命令提示符工具。虽然它看上去很古老,但却是在互联盛行的时代,在Apache络服务器遍及的时代,桥接页应用软件和操作系统之间简单和效的方式只需要在Bash shell下键入一系列指令,页服务器就可以从计算机中获得文件信息这就是现今互联的基础。一套建立在脚本之上的脚本指令。

今天,Bash仍旧在页服务器管理工具中扮演重要角色。Mac系统中也有它的存在。事实上,任何运行Linux操作系统或UNIX操作系统的公司都在通过该工具快速而简单地与运行于这些系统之上的应用软件建立连接。

然而,领导Bash开发的程序员却并不为任何一家互联巨头工作。他甚至不在为一家科技公司工作。这名程序员名叫切特雷米(Chet Ramey),是克里夫兰Case Western Reserve University的程序开发人员,并只在业余时间对Bash进行保护。

相当长一段时间了

80年代末,雷米取代福克斯成为了Bash的领导开发者。在9月12日这天,雷米收到了一封来自安全专家史蒂芬查兹拉斯(Stephane Chazelas)有关Shellshock程序Bug的电子邮件。这是一个高危的安全漏洞,全世界的人在上周都意识到了这个问题仅在数个小时,就有黑客发布了攻击代码,可利用

Shellshock漏洞将一台未补钉的机器瞬间转变称可任意操控的僵尸肉鸡。

雷米并没有权限访问Bash开发项目原始代码的更新日志,这些数据是在90年代初期创立的。不过雷米认为自己很可能是那个编写了Shellshock程序Bug的人,而Bug创建的时期大约要追溯到1992年的某个时候。这个时间显然足以让Shellshock成为当今古老、重要,且尚未修补的安全漏洞。《连线》为此还特别联系了普渡大学的尤金斯帕福德(Eugene Spafford)教授以证实猜测。而斯帕福德也明确表示:我无法回忆起任何其它尚未修补的比这个更古老的漏洞。固然这个世界上肯定还有很多历史更久远的Bug存在,但考虑到漏洞产生的潜伏影响及存在时间,Shellshock无疑是耀眼的。

不过,上述的情况让那些对心脏流血十分熟习的人有似曾相识的感觉。心脏流血也是发现于一个历史悠久的开源软件项目SSH,该软件同样亦被广泛使用。与SSH项目的开发一样,Bash也从未有过任何安全性审查,软件是由一组志愿爱好者维护开发的,且基本上他们并不会因开发Bash而获得任何财务方面的资助。很不幸的是,这种模式也正是互联的发展过程。

多双眼睛的谎言

安全咨询公司Errata Security首席执行官罗伯特格莱汉姆(Robert Graham)指出,Shellshock对开源软件的主要用户撒了一个谎言,即:开源软件允许许多双眼睛来共同监督和修复Bug,这能使其效力和安全性要好过闭源的商业版权软件。这种美好的想法亦被称为林纳斯定律(Linus's Law)。

如果真有许多双眼睛在过去25年里一直都在关注Bash,那么这些Bug早在多年前就会被发现了。格莱汉姆上周在博客上写到。

林纳斯定律是由林纳斯托瓦兹(Linus Torvalds)创建了Linux操作系统后命名。Shellshock漏洞曝出后,林纳斯表示该定律依旧成立。

有很多代码实际上并没有很多双眼睛在监督。很多开源项目也并没有真正让大量开发者参与到其中,即便其中一些是非常核心的开源应用。林纳斯表示。

这个问题在任何软件中都是存在的,无论是开源或闭源。总体来说,我们更难说清闭源软件里究竟存在多少Bug,比如甲骨文的数据库应用。而在大约十年前,微软也曾面临过严重的安全问题,因为该公司部分代码并未没有正确地经过审核。但在经历过2003年的Windows Blaster蠕虫问题后,微软终将安全审查列到了位。因而在接下来的十年里,微软的代码质量提高了。微软每一年都会聘请大量的白帽黑客和花费千万美元来保证产品的安全性。如今开源软件社区也将会开始同样的旅程。

今年5月,在心跳流血漏洞首次公然后不久,Linux基金会筹集了600万美元,以针对一些被广泛使用的开源项目的安全性进行一次大检验,其中包括了SSH、NTP(络事件协议)等等。然而不幸的是,Bash并未在其列。

这是不可预料的。Linux基金会执行董事吉姆泽姆林(Jim Zemlin)表示,但当然的,我的人一定会去接触相关的开发人员,以看看是否能提供帮助。

这很好,但前提是要在Bug发现前继续维护好互联。希望Linux基金会、谷歌或Facebook等可以继续做好这一点。

即便有了Shellshock这1瑕疵,布莱恩福克斯仍然为让自己曾经横跨美国的创造出的Bash而骄傲。

在它Bug被发现之前,这个软件已经存在27年了。福克斯说,鉴于软件的使用情况和Bug的发现比例,这个结果非常使人难以忘记。

调经可以吃益母颗粒吗
经血不畅痛经吃什么药
月经后期有血块什么危害
本文标签: