永远不要相信用户的输入---------ShellShock------------

什么是ShellShock漏洞?

继上次震惊业内的Heartbleed漏洞被曝出后,现在又一个影响广泛的ShellShock漏洞再次出现在大众的面前。近日,美国的国家漏洞资料库(NVD)对其发布了最新的漏洞通报(编号为CNNVD-201409-938)。那么这个漏洞将会产生怎样的影响,企业又该怎样防范呢?


永远不要相信用户的输入---------ShellShock------------

什么是ShellShock漏洞?

此次曝出的ShellShock漏洞存在于Unix用户、Linux用户和系统管理员常常使用的GNU Bourne Again Shell(Bash)中,是一个允许远程执行代码的严重安全漏洞,其范围涵盖了绝大部分的Unix类操作系统,如Linux、BSD、MAC OS X等等。

Bash是一款被用于控制众多Linux电脑上的命令提示符的软件,黑客可以利用Bash中的漏洞完全控制目标系统。据悉,该漏洞与Bash处理来自操作系统或调用Bash脚本的应用程序的环境变量有关。如果Bash是默认的系统shell,网络攻击者可以通过发送Web请求、secure shell、telnet会话或其它使用Bash执行脚本的程序攻击服务器和其它Unix和Linux设备。

Bash除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量。当前版本的Bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。此次曝出的漏洞在于Bash处理“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令。

目前,接受HTTP命令的CGI Shell脚本是最主要的被攻击对象。CGI标准将http请求的所有部分都映射到了环境变量。例如对于Apache的Httpd,字串'(){'可以出现在以下这些地方:

永远不要相信用户的输入---------ShellShock------------
接受HTTP命令的CGI Shell脚本是最主要的被攻击对象

通过自定义这些参数的值为“函数环境变量”的形式,就可以远程执行命令。

漏洞影响GNU Bash v1.14到v4.3,主要的Linux发行版,如Red Hat Enterprise Linux (v4到7)、Fedora、CentOS、Ubuntu和Debian都已经发布了补丁,但补丁尚未完全修复问题。

网络安全专家警告称,ShellShock漏洞的严重级别为“10”,意味着它对用户电脑的威胁最大。而该漏洞的利用复杂度级别为“低”,黑客只需要剪切和粘贴一行代码即可利用它发动攻击了。

ShellShock漏洞可以直接在Bash支持的Web CGI环境下远程执行任意命令,攻击面广,影响范围大,一些路由器、堡垒机、VPN等网络设备将会是影响重灾区。而此前的“心脏出血”漏洞则仅能够允许黑客监控用户电脑,但不会取得控制权。

如何检测并防范ShellShock漏洞?

那么如何知道企业内的相关设备是否存在ShellShock漏洞呢?

如果你是Linux系统的管理者,可以测试看看用这个指令来看系统有没有漏洞。

在shell中输入如下命令行:

env x=’() { :;}; echo vulnerable’ bash -c “echo this is a test"

vulnerable

this is a test


永远不要相信用户的输入---------ShellShock------------
在shell中输入上述命令行进行ShellShock漏洞检测

如果是“vulnerable  this is a test”就是系统还有漏洞,需尽快更新。

如果是“bash: warning: x: ignoring function definition attempt”,就没有关系了。

永远不要相信用户的输入---------ShellShock------------
得到如下显示表明已打上补丁


综上,目前各平台的发行版已经推出了各对应版本的修补套件程序,使用相关平台的人,可以尽快更新,因为这次的威胁力度不亚于上次的Heartbleed漏洞。这个漏洞是法国的Stéphane Chazelas发现,而负责维护Bash Shell套件的Chet Ramey已经推出了更新程序,把Bash 3.0到Bash 4.3的版本都做了修补。

相关推荐