9月25日消息,继“心脏流血”漏洞之后,安全研究专家又发现了一个危险级别为“毁灭级”(catastrophic)的漏洞,开源软件公司Red Hat在一份报告中称,在Linux系统中广泛使用的Bash软件漏洞有可能让黑客利用攻击一切连入互联网的设备。
Bash是一款在很多Unix电脑中用于控制命令提示符的软件,黑客可以借助Bash中的漏洞完全控制目标系统。
美国国土安全部下属的美国电脑紧急响应团队(以下简称“US-CERT”)发出警告称,这一漏洞可能影响基于Unix的操作系统,包括Linux和Mac OS X
官方bug地址:http://lists.centos.org/pipermail/centos/2014-September/146099.html
1、此漏洞可以绕过ForceCommand在sshd中的配置,从而执行任意命令。
2、如果CGI脚本用Bash或subshell编写,则使用mod_cgi或mod_cgid的Apache服务器会受到影响。
3、DHCP客户端调用shell脚本来配置系统,可能存在允许任意命令执行,尤其作为根命令的形式,在DHCP客户端的机器上运行。
4、各种daemon和SUID/privileged的程序都可能执行shell脚本,通过用户设置或影响环境变数值,允许任意命令运行
漏洞详情页面:http://seclists.org/oss-sec/2014/q3/650
漏洞级别:非常严重
redhat官方提供漏洞详情
A flaw was found in the way Bash evaluated certain specially crafted environment variables. An attacker could use this flaw to override or bypass environment restrictions to execute shell commands. Certain services and applications allow remote unauthenticated attackers to provide environment variables, allowing them to exploit this issue.
redhat官方提供检测方式
运行命令:
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果返回以下内容:则请尽快升级。
vulnerable
this is a test
目前官方已经提供了升级包请运行:yum update -y bash 进行升级处理!
RedHat, CentOS or Fedora bash版本将升级到bash-4.1.2-15.el6_5.1.x86_64
升级过程
RPM包下载:
下载文件
命令
rpm -uvh bash-3.2-33.el5.1.x86_64.rpm
Bash漏洞的攻击原理和检测方法等
Bash漏洞的攻击原理?
据 Linuxidc网站介绍,GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用Bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行。
这是属于远程任意代码执行的安全漏洞,所以可以完全控制电脑。
漏洞存在条件:
据金山毒霸论坛的一名工作人员称,任何已知程序,只要满足以下两个条件就可以被用来通过Bash漏洞导致任意命令执行:
1、程序在某一时刻使用Bash作为脚本解释器处理环境变量赋值;
2、环境变量赋值字符串的提交取决于用户输入。
如何验证漏洞
那如何验证是否存在漏洞?可以使用如下命令来检查系统是否存在此漏洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
影响范围:
GNU Bash≤4.3,此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用Bash作为解释器的应用等。
而 另一个网站更详细的报道介绍,这个漏洞能影响众多的运行在GNU/Linux上的会跟BASH交互的应用程序,
包括:
在sshd配置中使用了ForceCommand用以限制远程用户执行命令,这个漏洞可以 绕过限制去执行任何命令。一些Git和Subversion部署环境的限制Shell也会出现类似情况,OpenSSH通常用法没有问题。
Apache服务器使用mod_cgi或者mod_cgid,如果CGI脚本在BASH或者运行在子 SHELL里都会受影响。子Shell中使用C的system/popen,Python中使用os.system/os.popen,PHP中使用system/exec(CGI模式)和Perl中使用 open/system的情况都会受此漏洞影响。
PHP脚本执行在mod_php不会受影响。
DHCP客户端调用shell脚本接收远程恶意服务器的环境变量参数值的情况会被 此漏洞利用。
守护进程和SUID程序在环境变量设置的环境下执行SHELL脚本也可能受到影响。
任何其他程序执行SHELL脚本时用BASH作为解释器都可能受影响。Shell脚本不 导出的情况下不会受影响。