Linux有问必答:如何检测并修复bash中的破壳漏洞

Linux有问必答:如何检测并修复bash中的破壳漏洞

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

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

注意,破壳漏洞影响到bash版本1.14到4.3(当前版本)。虽然在写本文时还没有该漏洞权威而完整的修复方案,也尽管主要的Linux发行版(DebianRed HatCentOSUbuntu和 Novell/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,直到修复补丁出现。

原文发布时间:2014-10-23

本文来自云栖合作伙伴“linux中国”

时间: 2024-07-31 16:53:59

Linux有问必答:如何检测并修复bash中的破壳漏洞的相关文章

所有Linux发行版仍未修复严重的GNU wget漏洞

 先前,安全研究员Dawid Golunski和SecuriTeam曝出GNU wget漏洞.6月9日,GNU wget项目发布文件下载包新版1.18修复漏洞. CVE-2016-4971 漏洞回顾 GUN wget 作为*nix 系统常用下载工具,支持http.https.ftp 等多种协议,当使用wget 下载文件时,若初始下载http服务提供的下载资源, 如果服务器将下载资源重定向到ftp服务时,wget 会默认信赖http服务器重定向的ftp 链接地址和文件名,而不做二次验证.从而可能下

Linux 有问必答:如何在Linux 中修复“fatal error: x264.h: No such file or directo

Linux 有问必答:如何在Linux 中修复"fatal error: x264.h: No such file or directo 提问: 我想在Linux中从源码编译视频编码程序.到那时,在编译时,我遇到了一个错误"fatal error: x264.h: No such file or directory",我该如何修复? 下面的编译错误错明你系统中没有x264开发库文件. fatal error: x264.h: No such file or directory

Linux 有问必答:如何在Linux中修复“fatal error: lame/lame.h: No such file or dir

Linux 有问必答:如何在Linux中修复"fatal error: lame/lame.h: No such file or dir 提问: 我尝试着在Linux中编译视频编码器,但是编译提示出错:"fatal error: lame/lame.h: No such file or directory", 我该如何修复这个错误? 下面的编译错误说明你的系统没有安装LAME库和它的开发文件. fatal error: lame/lame.h: No such file or

Linux有问必答:如何修复“ImportError: No module named scapy.all”

Linux有问必答:如何修复"ImportError: No module named scapy.all" 问题:当我运行一个Python应用程序时,出现了这个提示消息"ImportError: No module named scapy.all".我怎样才能修复这个导入错误呢? Scapy是一个用Python写的灵活的数据包生成及嗅探程序.使用Scapy,你可以完成创建任意数据包并发送到网络上.从网络上或转储文件中读取数据包.转换数据包等工作.使用Scapy的通

类Unix系统Bash漏洞的检测及修复方法

近期Bash漏洞让不少类Unix躺枪.. 下面是相关的检测方法和修复方法(内容来源阿里云开发者论坛) ----------------------------------------------------------------------------------------------------- Bash紧急漏洞预警,请所有正在使用Linux服务器的用户注意.该漏洞直接影响基于 Unix 的系统(如 Linux.OS X 等),可导致远程攻击者在受影响的系统上执行任意代码. [已确认被成

Linux有问必答:如何修复“sshd error: could not load host key”

Linux有问必答:如何修复"sshd error: could not load host key" 问题:当我尝试SSH到一台远程服务器时,SSH客户端登陆失败并提示"Connection closed by X.X.X.X".在SSH服务器那端,我看到这样的错误消息:"sshd error: could not load host key.".这发生了什么问题,我怎样才能修复该错误? 该SSH连接错误的详细症状如下. SSH客户端方面:当你

Linux有问必答:如何使用Linux命令行检测DVD刻录机的名字和读写速度

Linux有问必答:如何使用Linux命令行检测DVD刻录机的名字和读写速度 提问:我想要知道我的DVD刻录机的名字和在烧录时的速度.该使用什么Linux命令行工具来连测DVD刻录机的设备名和速度? 如今大多数消费PC和笔记本电脑都配备了DVD刻录机.在Linux中,光盘驱动器,如CD/DVD驱动器的名字是在引导时内核基于udev规则来命名的.有几种方法来检测刻录机的设备名称和它的写入速度. 方法一 找出与DVD刻录机相关的设备名称最简单的方法是使用dmesg命令行工具,它打印出内核的消息缓冲区

Linux 有问必答:如何修复“hda-duplex not supported in this QEMU binary”

Linux 有问必答:如何修复"hda-duplex not supported in this QEMU binary" 提问: 当我尝试在虚拟机中安装一个新的Linux时,虚拟机不能启动且报了下面这个错误:"unsupported configuration: hda-duplex not supported in this QEMU binary."("不支持的配置:hda-duplex在此QEMU文件中不支持.") 我该如何修复? 这个错

Linux有问必答:如何修复“X11 forwarding request failed on channel 0”错误

Linux有问必答:如何修复"X11 forwarding request failed on channel 0"错误 问题: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败)的错误. 我为什么会遇到这个错误,并且该如何修复它? 首先,我们假设你已经正确启用了SSH的X11转发. 如果你在登录时遇到"X1