1、什么是ShellShock漏洞?
继上次震惊业内的Heartbleed漏洞被曝出后,现在又一个影响广泛的ShellShock漏洞再次出现在大众的面前。近日,美国的国家漏洞资料库(NVD)对其发布了最新的漏洞通报(编号为CNNVD-201409-938)。那么这个漏洞将会产生怎样的影响,企业又该怎样防范呢?
什么是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设备。
Gitlab-shell 受 Bash CVE-2014-6271 漏洞影响
解决办法是升级 Bash,请参考这篇文章。
Bash除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量。当前版本的Bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。此次曝出的漏洞在于Bash处理“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令。
目前,接受HTTP命令的CGI Shell脚本是最主要的被攻击对象。CGI标准将http请求的所有部分都映射到了环境变量。例如对于Apache的Httpd,字串'(){'可以出现在以下这些地方:
接受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等网络设备将会是影响重灾区。而此前的“心脏出血”漏洞则仅能够允许黑客监控用户电脑,但不会取得控制权。