在 Linux 上修复 Bash Shellshock CVE---
CVE-2014-6271 是一个高影响的关键修复。如果你运行的是 Linux 系统,你应该修复这个漏洞。
此 CVE-2014-6271(和 CVE-2014-7169)漏洞也称为 Shellshock。
在 Bash 评估某些特制环境变量的方式中发现了一个缺陷。攻击者可以利用此漏洞覆盖或绕过环境限制来执行 shell 命令。某些服务和应用程序允许远程未经身份验证的攻击者提供环境变量,从而允许他们利用此问题。
使用 bash shell,此漏洞允许攻击者在您的环境中执行随机 shell 命令。这背后的想法是攻击者可以绕过环境变量限制,从而允许他执行 shell 命令。
请注意,在 Linux 服务器上运行的某些服务(或应用程序)可能允许未经身份验证的攻击者指定一些环境变量,这反过来又允许他们在没有任何身份验证的情况下通过网络利用此漏洞。
解决此问题所需要做的就是将 bash 升级到最新版本。例如,在 RedHat 或 CentOS 上,执行以下操作来解决此问题:
yum update bash
您的系统是否容易受到 CVE-2014-6271 的影响?
RedHat 提供了以下脚本来测试您的系统是否易受攻击。
如果您在输出中看到“易受攻击”一词,那么您的系统很容易受到攻击。
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
请注意,您可能还会在输出中看到一些错误消息以及“易受攻击”一词。例如,以下是易受攻击的 RedHat 5 和 RedHat 6(以及 CentOS 5 和 6)系统上的输出。
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test
CVE-2014-6271 是一个高影响的关键修复。如果你运行的是 Linux 系统,你应该修复这个漏洞。
修复前的 Bash 版本
在解决问题之前,请检查您当前的 bash 版本。在 RedHat 5(和 CentOS 5)上,我在修复之前有以下 bash 版本:
# rpm -qa | grep bash
bash-3.2-24.el5
在 RedHat 6(和 CentOS 6)上,我在修复之前有以下 bash 版本:
# rpm -qa | grep bash
bash-4.1.2-3.el6.x86_64
修复 CVE-2014-6271
现在,使用 yum(或其他适合您的发行版的包管理实用程序)更新 bash
yum update bash
在 RedHat 5(和 CentOS 5)上,以下是更新后的 bash 版本,修复了漏洞。
# rpm -qa | grep bash
bash-3.2-33.el5_11.4
在 RedHat 6(和 CentOS 6)上,以下是更新后的 bash 版本,修复了漏洞。
# rpm -qa | grep bash
bash-4.1.2-15.el6_5.2.x86_64
修复后测试 CVE-2014-6271 漏洞
bash 升级到最新版本后,执行测试时,在以下命令输出中不会看到“vulnerable”字样。请注意,下面显示的警告和错误消息是好的。
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test
CVE-2014-7169 怎么样?
在最初的修复发布后,redhat 发现 CVE-2014-6271 修复不完整,bash 在某些特殊情况下仍然允许很少的字符可以放入环境变量中。
当您从上一步执行 yum update bash 时,它将自动获取最新版本的 bash,其中还包括 CVE-2014-7169 的修复程序。所以,你真的不必为此修复做任何特定的事情。
但是,您仍然可以通过在系统上执行以下操作来测试以确保您的系统不会受到此问题的影响:
cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
在易受 CVE-2014-7169 攻击的系统上,您会注意到以下内容创建了文件 /tmp/echo,它会显示文件的内容。
如果您看到以下输出,您应该使用“yum update bash”将您的 bash 更新到最新版本(或为您的发行版使用适当的包管理实用程序)
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 16:15:09 PDT 2014
如果您的系统不易受到 CVE-2014-7169 的攻击,您将看到以下输出,该输出不会创建 /tmp/echo 文件。
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
- 点赞
- 收藏
- 关注作者
评论(0)