自学内容网 自学内容网

如何保护您的服务器免受Shellshock Bash漏洞的影响

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

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_cgimod_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!另外,务必及时更新服务器的最新安全补丁!


原文地址:https://blog.csdn.net/rubys007/article/details/142964353

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!