你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux安全:检测并修复Bash中的破壳漏洞

[日期:2014-10-23] 来源:Linux中国  作者:Linux [字体: ]

问题:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭。

2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为“破壳”(Shellshock,也称为“bash门”或“Bash漏洞”)的bash漏洞。该漏洞如果被渗透,远程攻击者就可以在调用shell前通过在特别精心编制的环境中输出函数定义执行任何程序代码。然后,这些函数内的代码就可以在调用bash时立即执行。

注意,破壳漏洞影响到bash版本1.14到4.3(当前版本)。虽然在写本文时还没有该漏洞权威而完整的修复方案,也尽管主要的Linux发行版(DebianRed HatCentOSUbuntuNovell/Suse)已经发布了用于部分解决与此漏洞相关的补丁(CVE-2014-6271CVE-2014-7169),并且建议尽快更新bash,并在随后数日内检查更新(LCTT 译注,可能你看到这篇文章的时候,已经有了完善的解决方案)。

检测破壳漏洞

要检查你的Linux系统是否存在破壳漏洞,请在终端中输入以下命令。

 $ env x='() { :;}; echo "Your bash version is vulnerable"' bash -c "echo This is a test" 

如果你的Linux系统已经暴露给了破壳漏洞渗透,命令输出会像这样:

Your bash version is vulnerable
This is a test

在上面的命令中,一个名为x的环境变量已经被设置可用于用户环境。就如我们所了解到的,它并没有赋值(是一个虚函数定义),后面跟了一个任意命令(红色),该命令将在bash调用前执行。

为破壳漏洞应用修复

你可以按照以下方法安装新发布的bash补丁。

在Debian及其衍生版上:

  1. # aptitude update && aptitude safe-upgrade bash

在基于Red Hat的发行版上:

  1. # yum update bash

打补丁之前:

Debian:

CentOS

打补丁之后:

Debian:

CentOS:

注意,在安装补丁前后,各个发行版中的bash版本没有发生变化——但是你可以通过从更新命令的运行过程中看到该补丁已经被安装(很可能在安装前需要你确认)。

如果处于某种原因你不能安装该补丁,或者针对你的发行版的补丁还没有发布,那么建议你先试用另外一个shell,直到修复补丁出现。

Gitlab-shell 受 Bash CVE-2014-6271 漏洞影响  http://www.linuxidc.com/Linux/2014-09/107181.htm

Linux再曝安全漏洞Bash 比心脏出血还严重 http://www.linuxidc.com/Linux/2014-09/107176.htm

解决办法是升级 Bash,请参考这篇文章http://www.linuxidc.com/Linux/2014-09/107182.htm

Bash远程解析命令执行漏洞测试方法 http://www.linuxidc.com/Linux/2014-09/107289.htm

Bash漏洞最新补丁安装教程【附下载】  http://www.linuxidc.com/Linux/2014-10/107851.htm

破壳漏洞(Shellshock)修复详解 http://www.linuxidc.com/Linux/2014-10/107925.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-10/108318.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款