`
ihyperwin
  • 浏览: 433833 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Shellshock漏洞潜伏多年:暴露开源软件缺陷

 
阅读更多

导语:美国《连线》杂志网络版近日撰文称,Shellshock漏洞的曝光暴露出当今互联网开源软件领域的一个重大缺陷:由于维护资源和人手的不足,很多漏洞都已经潜伏多年,随时有可能给当今互联网造成毁灭性的打击。

 

  以下为文章全文:

  布莱恩·福克斯(Brian Fox)一路开车从波士顿来到圣巴巴拉,他的后备箱里放着两盘磁带。

  但这既不是录音带,也不是录像带,而是电脑磁带,里面存储着两大卷软件代码和数据。这种磁带是专门在老式计算机上使用的,现在或许只有在一些电影上才能看到这种跟家具大小相仿的古董。

  1987年,当福克斯横穿美国,来到他的新家时,后备箱里的那两盘磁带里存储着一个名为Bash的软件程序。那是福克斯为UNIX系统设计的一款工具。他允许所有人都使用这些代码,甚至自由传播给他人。

  福克斯虽然只是一个高中辍学生,但他却经常与理查德·斯托曼(Richard Stallman)等麻省理工学院的技术大拿们混在一起。这也令他的思维得到了极大的拓展,他内心怀有勃勃的野心,希望创建一款免费、可控而且不受版权限制的软件。事实上,这种思潮在当时被称作“自由软件运动”,其目的是逐步重建所有的UNIX操作系统组件,从而打造一款名为GNU的免费产品,与全世界分享。

  彼时,开源软件的大幕正在徐徐拉开。

  审查机制匮乏

  福克斯和斯托曼当时并不知道,在此后的几十年里,他们开发的工具会成为全球通讯基础设施中最为重要的组成部分。在福克斯带着那两盘磁带来到加州,并重新投入到Bash的开发过程时,其他工程师也开始使用这款软件,甚至帮助他推进开发工作。而随着UNIX逐步催生了GNU和Linux——后者已经成为了现代互联网的重要支柱——Bash也被安装到数以万计的设备中。

  但大约在1992年,一名工程师在Bash的代码中键入了一个漏洞。上周,也就是这个漏洞出现20多年后,安全研究人员终于注意到福克斯开发的这款古老程序中的缺陷。它们称之为Shellshock——有了它,黑客便可对现代互联网造成严重破坏。

  在计算机行业的发展史上,有很多古老但却始终没有修复的漏洞,Shellshock只是其中之一。然而,它的故事却有些不同寻常。今年早些时候,研究人员发现了另外一个名为“心脏流血”的漏洞,它同样在开源软件中潜伏了多年。除非我们改变软件的编写和审查方式,否则,以这两个漏洞为代表的趋势将会继续对互联网造成破坏。由于互联网上使用的软件都被广泛使用和重新利用,里面渗透着许多数十年前开发的代码,其中一些已经成为被人遗忘的角落,没有人再对它的安全漏洞进行审查。

  在Bash开发时,没有人针对它抵御网络攻击的能力进行过审查,因为那在当时看来根本没有意义。“担心这会成为地球上使用最广泛的软件之一,并且遭到恶意人士的攻击,在当时看来是根本不可能的事情。”福克斯说,“等到这成为一种可能时,它已经被使用了15年。”如今,谷歌(569.55-7.81-1.35%)Facebook(76.62-2.42-3.06%)和所有的大牌互联网公司都在使用Bash,而由于这款软件是开源的,所以他们随时都可以审查其中的问题。事实上,任何人都可以随时审查该软件。但却没有人真正这么做。这种现状亟待改变。

  网络建立模式

  以数据容量来看,福克斯的Bash程序跟iPhone拍摄的一张照片大小相仿。但在1987年,他却无法横跨美国发送电子邮件。当时的互联网刚刚开始发展,万维网尚未诞生,而最高效的数据转移方式,就是放在汽车的后备箱里。

  Bash是一个外壳程序,那是一种与操作系统交互的黑盒方式,诞生日期早于图形用户界面。如果你使用过Windows命令行,就会理解这种模式。这看起来很陈旧,但随着互联网在网络浏览器和Apache服务器的推动下逐步腾飞,Bash外壳成为了一种简单却强大的工具,可以方便工程师把网络软件与操作系统粘合在一起。想让网络服务器从电脑文件中获取信息?只要调用Bash外壳,并运行一系列命令即可。这就是网络建立的方式——一个脚本接着一个脚本逐步堆砌起来。

  如今,Bash依然是网络工具箱的重要组成部分。Mac中可以找到它的身影,几乎所有使用Linux操作系统的公司也都把它作为连接电脑程序(例如网络服务器软件)与底层操作系统的一种快捷而简单的方法。

  然而,该程序的主要维护者却并不效力于其中任何一家大牌企业,他甚至并不供职于科技公司。此人名叫切特·拉米(Chet Ramey),他在克利夫兰的凯斯西储大学当程序员,只是利用业余时间维护Bash。

  最古老的漏洞

  1980年代末,拉米接替福克斯,成为Bash的主要维护者。今年9月12日,一个名叫史蒂芬·查泽拉斯(Stephane Chazelas)的人通过电子邮件把发现Shellshock漏洞的事情告诉了他。这正是在上周被公之于众的那个严重漏洞。不到几小时,黑客就设计出了可以利用这个漏洞的代码,可以把受此影响的设备组成一个僵尸网络。

  拉米无法获得1990年代早期的源代码修改日志,但他认为,这个漏洞很可能是自己造成的,时间大概在1992年左右。这使之成为我们在《连线》杂志听说过的最古老、最严重的未修补漏洞。我们向普渡大学教授尤金·斯帕福德(Eugene Spafford)求证此事,他也想不出比这时间更久远的漏洞。“我想不出还有哪个漏洞存在过这么长时间。”他说,“肯定还有很多比这时间更长的漏洞,但没有一个能在时间长度和破坏力度上同时比肩这个漏洞。”

  然而,对于熟悉“心脏流血”漏洞的人来说,这种怪诞的感觉却似曾相识。那个漏洞是在广泛使用的OpenSSL开源加密软件中发现的。与OpenSSL相似,Bash也从未接受过全方位的安全审查,它的骨干开发人员几乎没有得到任何财务资助。可惜的是,这就是互联网的真实故事。

  开源软件的谎言

  在咨询公司Errata Security CEO罗伯特·格雷厄姆(Robert Graham)看来,Shellshock揭穿了开源软件的一个谎言:与封闭的专有软件相比,开源代码允许“很多眼睛”审查,而且可以更快地修复漏洞。这在业界被称为“莱纳斯定律”。“如果在过去25年间,真的有‘很多眼睛’盯着Bash,这个漏洞不可能这么长时间不被发现。”格雷厄姆上周在博客中写道。

  莱纳斯·托瓦兹(Linux Torwalds)是Linux系统的创造者,而“莱纳斯定律”正是以他的名字命名的。在托瓦兹看来,这一定律目前仍然有效。但缺陷在于,并非所有的开源项目都会受到“很多眼睛”的关注。“事实上,有很多代码都没有吸引太多人的关注。”他说,“许多开源项目都没有太多开发者参与,甚至包括一些非常核心的软件。”

  不过,无论是否开源,任何软件都会存在这种问题。毕竟,想要知道甲骨文(37.99-0.29-0.74%)数据库那样的封闭软件究竟有多少漏洞,难度还会更大。大约10年前,由于部分软件代码没有得到适当的审查,微软(46.1-0.26-0.56%)面临了严重的安全问题。但当“冲击波”蠕虫2003年肆虐Windows系统后,微软将安全审查视为头等大事。此后10年,该公司已经提升了代码的安全标准。微软花费数百万美元用于安全审查,还聘请了很多白帽黑客来测试软件。现在,开源软件社区也开始采取同样的措施。

  今年5月,就在“心脏流血”漏洞曝光后不久,Linux基金会便投入了600万美元用于加强多个开源项目的安全性,包括OpenSSL、OpenSSH,以及Network Time协议。但Bash并不在当时的名单上。“这出乎我们的意料之外。”Linux基金会执行理事吉姆·泽姆林(Jim Zemlin)说,“但我们的人员的确在与那些人联系,看看我们能给予什么帮助。”

  这很不错,但关键在于,如何才能在漏洞被外界发现前加固互联网?但愿Linux基金会、谷歌和Facebook能够做出一些贡献。

  即使在Shellshock曝光后,福克斯依然为他设计的这个项目感到自豪。“他们用了27年才发现了一个漏洞,”他说,“按照使用范围和漏洞发现的数量之间的比率来看,这实在是太惊人了。”

分享到:
评论

相关推荐

    shellshock 漏洞 bash漏洞rpm包升级包

    研究人员周四发布警告称 黑客已经开始利用最新的“Shellshock”电脑漏洞 借助蠕虫病毒扫描有漏洞的系统 然后感染这些 redhat 6 5以上版本32 位64位 升级包

    shellshock漏洞的redhat最新补丁及说明

    Shellshock漏洞,全称为Bash Shell漏洞,是2014年发现的一个重大安全漏洞,影响了广泛使用的Unix-like操作系统,包括Linux和Mac OS X。这个漏洞源于Bash shell,一个广泛使用的命令行解释器,它允许用户通过命令行...

    Bash漏洞-Shellshock浅析.pdf

    【Bash漏洞与Shellshock】 ...总的来说,Shellshock漏洞暴露了看似安全的Linux系统中的一个重大弱点,提醒我们在依赖开源软件的同时,必须时刻关注安全更新,确保系统及时打补丁,以抵御潜在的安全威胁。

    Bash漏洞——Shellshock浅析.pdf

    【Bash漏洞——Shellshock浅析】 Bash漏洞,又称Shellshock,是指在2014年被发现的一个严重安全漏洞,它影响了广泛使用的Bash shell,这是一个在Unix-like操作系统,包括Linux和Mac OS X中的命令行解释器。这个漏洞...

    Lab-03--Shellshock.zip

    《Shellshock漏洞详解及其在Linux环境下的防范》 Shellshock漏洞,全名是BASH(Bourne Again SHell)漏洞,是2014年9月被发现的一个严重安全漏洞,影响了广泛使用的Unix/Linux操作系统及基于这些系统的服务器、路由器...

    shellshock_demo:shellshock 脆弱性的演示

    开始演示 Shellshock 漏洞: 设置 使用这个 vagrant 文件设置一个 vagrant box。 这将安装 Apache 并转发到端口 8080.. 在 /usr/lib/cgi-bin 中创建一个 cgi 文件。 它可以像 html 内容类型“hello world”一样简单...

    Linux Bash漏洞详细说明

    Linux Bash漏洞,通常被称为"Shellshock",是2014年发现的一...总的来说,Shellshock漏洞揭示了系统安全的重要性,特别是对于那些依赖开源软件的组织。及时的补丁管理和安全意识培训可以显著降低此类漏洞带来的风险。

    软件安全漏洞(2 edition)

    软件漏洞是指存在于程序中的错误、疏漏或设计缺陷,这些缺陷可能被恶意用户利用来执行未经授权的操作,如非法访问、数据泄露或系统瘫痪。0day漏洞则指的是那些尚未被公开、开发者未知,且没有补丁可用的漏洞,它们...

    shellshock-shell:针对 Shellschok CVE-2014-6271 错误的一个简单的类似 python shell 的漏洞利用

    针对 Shellschok CVE-2014-6271 错误的一个简单的类似 python shell 的漏洞利用。 使用它来利用已知的易受攻击的 URL。 此工具只能在您自己的授权 URL 上使用。 此工具的作者对其使用不承担任何责任。 文件名:...

    BASH(破壳漏洞)Redhat系统检测和修补

    2014年,一个名为"Shellshock"的安全漏洞在BASH中被发现,这被称为"BASH漏洞"或"破壳漏洞"。该漏洞允许攻击者通过环境变量执行恶意代码,从而获取系统控制权,对网络安全构成严重威胁。 **漏洞成因** BASH漏洞主要...

    ShellShock 攻击实验-内含源码以及设计说明书(可以自己运行复现).zip

    ShellShock攻击,是一种针对Bash shell(Unix/Linux操作系统中的命令解释器)的严重安全漏洞,首次公开于2014年。这个攻击利用了Bash处理环境变量的方式,允许恶意代码在特定条件下被执行,从而可能导致远程代码执行...

    Cgi-bin 30个漏洞+使用方法.txt

    - **安全更新**:及时安装软件的安全补丁,减少已知漏洞被利用的风险。 - **加密传输**:确保敏感数据的传输过程中使用加密协议,如HTTPS等。 通过上述措施,可以有效提高系统的安全性,减少被攻击的风险。同时,...

    ShellShockHunter:这是测试漏洞Shellshock的简单工具

    ShellShockHunter v1.0 这是测试漏洞Shellshock的简单工具 Autor: MrCl0wnBlog: http://blog.mrcl0wn.comGitHub: https://github.com/MrCl0wnLabTwitter: https://twitter.com/MrCl0wnLabEmail: mrcl0wnlab\@\gmail....

    shellshock_enum:通过 Shellshock 枚举系统信息

    shellshock_enum 这是一个通过 Shellshock 枚举系统信息的 metasploit 模块。 在 $MSF/modules/auxiliary/scanner/http 中安装 ruby​​ 脚本 用法: msf > use auxiliary/scanner/http/shellshock_enum msf ...

    shellshock

    shellshock代码,网页形式,看起来不错,需要到可以试试哦。

    shellshock补丁

    破壳漏洞(shellshock)红帽4 X86(32位)补丁 内含: bash-3.0-27.0.3.el4.i386.rpm bash-debuginfo-3.0-27.el4.4.i386.rpm ------------------------------------------- 验证命令: env x='() { :;}; echo vulnerable'...

    shellshock 补丁 for rhel5.11 x64

    shellshock 补丁 for rhel5.11 x64

    shellshockcgitool:CGI脚本Shellshock开发工具

    Bash的漏洞版本错误地执行了遵循存储在环境变量中的函数定义的命令-攻击者可以在将用户输入存储在环境变量中的系统中利用此漏洞。 什么是CGI? 某些Web服务器(包括Apache)支持通用网关接口(CGI)规范,该规范...

    基于深度学习的软件安全漏洞挖掘.docx

    例如,“Shellshock”漏洞和“WannaCry”勒索病毒事件,都展示了软件漏洞可能导致的严重后果。 #### 二、传统漏洞挖掘方法的局限性 传统的漏洞挖掘方法主要依赖于静态分析技术和动态分析技术。静态分析技术包括...

    Linux平台上一种web漏洞灰盒测试方法.pdf

    Linux平台上的Web漏洞灰盒测试方法主要关注的是在操作系统层面的安全性,特别是针对Shellshock漏洞的检测。Shellshock漏洞出现在2014年,它影响了使用Bash shell的系统,包括那些运行Apache服务器并使用mod_cgi或mod...

Global site tag (gtag.js) - Google Analytics