前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
2014年9月24日,披露了一个 GNU Bash 漏洞,称为 Shellshock 或 “Bash Bug”。简而言之,该漏洞允许远程攻击者在特定条件下执行任意代码,方法是通过环境变量赋值后传递代码字符串。由于 Bash 在 Linux、BSD 和 Mac OS X 发行版中的普遍存在,许多计算机都容易受到 Shellshock 的影响;所有从 1.14 到 4.3 版本(即目前的所有版本)之间未修补的 Bash 都存在风险。
Shellshock 漏洞可以在运行允许未经授权的远程用户分配 Bash 环境变量的系统上被利用。可被利用的系统示例包括:
使用 Bash 编写的或启动到 Bash 子shell的 Apache HTTP 服务器(通过mod_cgi
和 mod_cgid
)特定的 DHCP 客户端使用 ForceCommand
功能的 OpenSSH 服务器使用 Bash 的各种网络暴露服务 有关该漏洞的详细描述可在 CVE-2014-6271、CVE-2014-7169、CVE-2014-7186 和 CVE-2014-7187 中找到。
由于 Shellshock 漏洞非常普遍——甚至比 OpenSSL Heartbleed 漏洞更为严重——而且特别容易被利用,因此强烈建议尽快更新受影响的系统以修复或减轻漏洞。我们将向您展示如何测试您的机器是否存在漏洞,以及如果存在漏洞,如何更新 Bash 以消除漏洞。
检查系统漏洞
在运行 Bash 的每个系统上,您可以通过在 bash 提示符下运行以下命令来检查 Shellshock 漏洞:
env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
命令中突出显示的 echo Bash is vulnerable!
部分表示远程攻击者可以注入恶意代码的位置;在环境变量赋值内部的函数定义后面的任意代码。因此,如果您看到以下输出,则表示您的 Bash 版本存在漏洞,应该进行更新:
Bash is vulnerable!Bash Test
如果您的输出不包括模拟攻击者的有效负载,即未打印出 “Bash is vulnerable”,则至少您已受到第一个漏洞(CVE-2014-6271)的保护,但可能仍然容易受到后来发现的其他 CVE 的影响。如果输出中有任何 bash
警告或错误,您应该将 Bash 更新到最新版本;此过程在下一节中描述。
如果测试命令的唯一输出是以下内容,则表示您的 Bash 不受 Shellshock 影响:
Bash Test
测试远程站点
如果您只想测试网站或特定 CGI 脚本是否存在漏洞,请使用此链接:‘ShellShock’ Bash Vulnerability CVE-2014-6271 Test Tool。
只需在相应的表单中输入要测试的网站或 CGI 脚本的 URL,然后提交。
修复漏洞:更新 Bash
修复漏洞的最简单方法是使用默认的软件包管理器来更新 Bash 的版本。以下各小节介绍了在各种 Linux 发行版(包括 Ubuntu、Debian、CentOS、Red Hat 和 Fedora)上更新 Bash 的方法。
APT-GET:Ubuntu / Debian
对于当前支持的 Ubuntu 或 Debian 版本,请通过 apt-get
更新 Bash 到最新版本:
sudo apt-get update && sudo apt-get install --only-upgrade bash
现在通过运行上一节中的命令(检查系统漏洞)再次检查您的系统漏洞。
Ubuntu / Debian 已终止支持的版本
如果您正在运行被视为已终止支持状态的 Ubuntu / Debian 版本,则必须升级到受支持的版本才能使用软件包管理器更新 Bash。可以使用以下命令升级到新版本(建议您先备份服务器和重要数据,以防遇到任何问题):
sudo do-release-upgrade
升级完成后,请确保更新 Bash。
YUM:CentOS / Red Hat / Fedora
通过 yum
更新 Bash 到最新版本:
sudo yum update bash
现在通过运行上一节中的命令(检查系统漏洞)再次检查您的系统漏洞。
CentOS / Red Hat / Fedora 已终止支持的版本
如果您正在运行被视为已终止支持状态的 CentOS / Red Hat / Fedora 版本,则必须升级到受支持的版本才能使用软件包管理器更新 Bash。可以使用以下命令升级到新版本(建议您先备份服务器和重要数据,以防遇到任何问题):
sudo yum update
升级完成后,请确保更新 Bash。
结论
务必将所有受影响的服务器更新到最新版本的 Bash!另外,务必及时更新服务器的最新安全补丁!