安全专家说,在广泛使用的命令解释器Bash中发现的错误给Unix和Linux系统带来了严重的安全风险。 并且,为了避免您只想将其视为服务器问题而将其排除在外,请记住Mac OS X使用Bash。 许多专家警告说,这可能比Heartbleed更糟。
Akamai的Unix和Linux网络和电信管理员Stephane Chazelas说,该漏洞存在于大多数Bash版本(从1.13版到4.3版)中。 国土安全部的计算机紧急响应小组(CERT)在警报中警告说,如果被利用,则该漏洞可能使远程黑客能够在受影响的系统上执行恶意代码。 根据严重性,NIST漏洞数据库已将错误评级为10,满分10。
Rapid7的工程经理Tod Beardsley说:“这个漏洞可能是一件大事。”
该漏洞与Bash处理环境变量的方式有关。 将函数分配给变量时,定义中的任何其他代码也将执行。 因此,攻击者所需要做的就是以某种方式在该定义中附加一堆命令(一种经典的代码注入攻击),它们将能够远程劫持受影响的计算机。 Chazelas和其他研究此漏洞的研究人员已确认,如果将代码注入环境变量中,例如OpenSSH sshd中的ForceCommand功能,Apache HTTP Server中的mod_cgi和mod_cgid模块或设置该脚本的脚本,则可以轻松利用此漏洞。 DHCP客户端的环境。
“ Linux和其他UNIX系统上的大量程序都使用Bash设置环境变量,然后在执行其他程序时使用这些环境变量,”云安全联盟首席执行长Jim Reavis在博客中写道。
不可避免的流血比较
考虑一下有关此漏洞的两件事:Linux / Unix服务器广泛用于世界各地的数据中心以及许多设备中的嵌入式系统; 该漏洞已经存在多年了。 由于Bash如此广泛,因此与Heartbleed进行比较是不可避免的,后者是四月份发现的OpenSSH中的漏洞。 Errata Security的Robert Graham已经将缺陷称为ShellShock。
但这是《流血2》吗? 很难说。 这绝对是一个严重的问题,因为它使攻击者可以访问命令外壳程序,这是能够在该计算机上执行任何操作的黄金票。
让我们从大小上考虑。 Apache Web服务器为世界上绝大多数网站提供支持。 正如我们在Heartbleed期间了解到的那样,有许多使用OpenSSH和Telnet的非Linux / Unix计算机。 DHCP有助于我们轻松地跳入和跳出网络。 这意味着,除了计算机和服务器之外,其他嵌入式系统(例如路由器)也可能容易受到劫持。 勘误安全性的Graham(到目前为止,已对该漏洞进行了最彻底的分析)进行了一些扫描,轻松找到了几千个易受攻击的服务器,但是目前很难估计问题的严重程度。
但是,仅通过安装易受攻击的OpenSSL版本就存在Heartbleed漏洞。 这个错误不是那么简单。
Beardsley说:“这不像运行Bash那样简单。” 他说,为了使机器易于受到攻击,需要有一个应用程序(例如Apache)来接受用户输入(例如User-Agent标头)并将其放入环境变量中(CGI脚本可以这样做)。 他说,现代Web框架通常不会受到影响。
这可能就是为什么格雷厄姆在ShellShock和Heartbleed一样严重的时候说的原因,“几乎没有必要急于解决此错误。您的主服务器可能不容易受到此错误的影响。”
但是,在我们对路由器和嵌入式设备(以及物联网)一无所知之前,请记住,并非所有系统都使用Bash。 Ubuntu和其他Debian派生的系统可能使用称为Dash的不同命令解释器。 卡巴斯基实验室的高级研究员Roel Schouwenberg在Twitter上表示,嵌入式设备经常使用一个不易受攻击的设备BusyBox。
脆弱与否?
您可以通过运行以下命令(CSA提供的代码)来检查自己是否容易受到攻击。 打开一个终端窗口,并在$提示符下输入以下命令:
env x ='(){:;}; echo易受攻击的bash -c“ echo this is a test”
如果您容易受到攻击,它将显示:
脆弱的
这是一个测验
如果您更新了Bash,则只会看到:
这是一个测验
通常,我会说立即进行修补,但事实证明可用的修补程序尚未完成。 Red Hat今天早上说,即使在修补Bash之后,仍然有通过环境变量注入命令的方法。 如果您只有少数几台计算机,则值得继续并应用可用的补丁程序,但是,如果您有成千上万的计算机要打补丁,也许值得再等几个小时。 所有上游的Linux发行版(希望是Apple!)现在都在进行修复。
独立安全顾问Graham Cluley说:“请记住,即使您以前从未听说过Bash或不运行它,也很可能在计算机上运行了产生Bash进程的软件。”