升级Bash修复Shellshock漏洞

Shellshock,又称Bashdoor,是一个安全漏洞,于2014年9月12日被发现,直到9月24日被赋予了CVE编号CVE-2014-6271才得以控制。该漏洞与Bash有关,Bash是一种广泛使用的Unix shell。此漏洞影响所有Linux发行版,并允许使用环境变量远程执行命令。

除了CVE-2014-6271之外,打了Shellshock补丁后的几天内又发现了许多其他相关漏洞。本指南将告诉你如何安全地升级Linux发行版并保护Linode免受Bash漏洞攻击。

检查漏洞

首先必须检查你的Linode是否易受攻击。由于存在多个漏洞,你需要检查每个漏洞的漏洞状态。

CVE-2014-6271

要检查你的Linode是否容易受到攻击,在Bash中运行以下命令:

env x='() { :;}; echo vulnerable' bash -c 'echo this is a test'

如果你的Linode易受攻击,你会看到:

vulnerable
this is a test

如果你的Linode不易受攻击,你会看到:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

在某些发行版中,例如Ubuntu 12.04,你可能看不到bash警告报错。只要你在输出中看不到vulnerable,正在运行的则是针对CVE-2014-6271的升级版本。

CVE-2014-7169

在检查CVE-2014-6271时,发现了一个新的漏洞,其CVE编号为CVE-2014-7169

要检查该漏洞,在Bash中运行以下命令:

env X='() { (a)=>\' sh -c "echo date"; cat echo

如果你的Linode易受攻击,你会看到:

bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error importing function for `X'
Sun Sep 08:17:32 EST 2014

如果你的Linode不易受攻击,你会看到:

date
cat: echo: No such file or directory

CVE-2014-7186

除了以上两个漏洞,还发现了另一个与之前在Bash中发现的代码问题相关的漏洞。新漏洞被赋予CVE编号CVE-2014-7186

该漏洞通过使用固定大小的redir_stack允许越界内存访问,从而能够执行本来无法运行的代码。

要测试该漏洞,在Bash中运行以下命令:

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"

如果你的Linode不易受攻击,你会看到:

bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')

CVE-2014-7187和CVE-2014-6277

这两个CVE都是由于CVE-2014-6271和CVE-2014-7169修复不完整而导致的。幸运的是,大多数发行版修补了这两个CVE,完成了Shellshock漏洞修补。

如果你仍在使用Debian Squeeze且尚未升级,则需要按照他们的说明使用Debian Squeeze LTS并相应地更改你的sources.list文件以获得升级。

安装升级

以下是升级Bash并确保你的Linode不再容易受到此漏洞攻击的相关信息。每个部分都是为不同的发行版而设计的。以下的说明基于你具有root权限或sudo权限。如果你没有这些权限,将无法运行这些命令。

Ubuntu和Debian

要在Ubuntu和Debian上升级Bash,运行以下命令来更新和升级Bash包。如果你没有以root用户身份运行,请在每个命令前添加sudo

apt-get update
apt-get install --only-upgrade bash

重新运行本文档“检查漏洞”部分中的命令,确保已升级。

CentOS

要在CentOS上升级Bash,运行此命令以更新和升级Bash包。如果你没有以root用户身份运行,请在每个命令前添加sudo

yum update bash

重新运行本文档“检查漏洞”部分中的命令,确保已升级。

Fedora

要在Fedora上升级Bash,运行此命令以更新和升级Bash包。如果你没有以root用户身份运行,请在每个命令前添加sudo

yum -y install bash

重新运行本文档“检查漏洞”部分中的命令,确保已升级。

Arch Linux

要在Arch Linux上升级Bash,运行此命令以更新和升级Bash包。如果你没有以root用户身份运行,请在每个命令前添加sudo

pacman -Syu

重新运行本文档“检查漏洞”部分中的命令,确保已升级。

Gentoo

Gentoo根据你当前使用的Bash版本提供了特定的修补说明。要查找你的版本,运行:

bash --version

Bash 3.1

要在Gentoo上修补Bash 3.1中的漏洞,运行:

emerge --sync
emerge --ask --oneshot --verbose ">=app-shells/bash-3.1_p18-r1"

重新运行本文档“检查漏洞”部分中的命令,确保已修补。

Bash 3.2

要在Gentoo上修补Bash 3.2中的漏洞,运行:

emerge --sync
emerge --ask --oneshot --verbose ">=app-shells/bash-3.2_p52-r1"

重新运行本文档“检查漏洞”部分中的命令,确保已修补。

Bash 4.0

要在Gentoo上修补Bash 4.0中的漏洞,运行:

emerge --sync
emerge --ask --oneshot --verbose ">=app-shells/bash-4.0_p39-r1"

重新运行本文档“检查漏洞”部分中的命令,确保已修补。

Bash 4.1

要在Gentoo上修补Bash 4.1中的漏洞,运行:

emerge --sync
emerge --ask --oneshot --verbose ">=app-shells/bash-4.1_p12-r1"

重新运行本文档“检查漏洞”部分中的命令,确保已修补。

Bash 4.2

要在Gentoo上修补Bash 4.2中的漏洞,运行:

emerge --sync
emerge --ask --oneshot --verbose ">=app-shells/bash-4.2_p48-r1"

重新运行本文档“检查漏洞”部分中的命令,确保已修补。

OpenSUSE

要针对OpenSUSE上的漏洞升级Bash,运行:

zypper patch --cve=CVE-2014-7187

重新运行本文档“检查漏洞”部分中的命令,确保已升级。

Slackware

要针对Slackware上的漏洞升级bash,必须使用slackpkg升级Bash包:

slackpkg update
slackpkg upgrade bash

完成后,请重新运行本文档“检查漏洞”部分中的命令,确保已升级。

本文的版权归 Alicia 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用

Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界...

40590
来自专栏自由而无用的灵魂的碎碎念

查看服务时提示“一个或多个ActiveX控件无法显示”的解决方法

一个或多个ActiveX控件无法显示,原因可能是下列其中之一: 1)当前安全设置禁止运行此页面中的ActiveX控件,或 2)您已经阻止了其中一个...

15130
来自专栏后端云

xshell工具在开发中的使用技巧

这个没啥好说的,但是很实用,特别对于单显示器的情况。5.0或以上才支持,鼠标拖拽标签到屏幕某一个位置即可实现。

40540
来自专栏软件测试经验与教训

Fiddler用法整理

读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!

19910
来自专栏码生

实现更安全、高扩展的自定义键盘 非UIButton

自定义键盘的封装网上的例子比比皆是,有的封装的非常完美,直接pod 集成到项目中便可以简单的使用,可是为什么我还要自定义一个呢? 一不是不是为了显摆,二不是网...

12920
来自专栏电光石火

推荐几款比较好看HTML admin后台模板

H+是一个完全响应式,基于Bootstrap3.3.6最新版本开发的扁平化主题,她采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术,她提供了...

7K10
来自专栏农夫安全

暴力破解-H3C路由器-MSR900

所暴力破解的设备信息 华三路由器 设备型号 MSR900 软件版本 CMW520-R2311 所用到的工具 Firefox浏览器及其插件Proxy Sw...

67260
来自专栏云计算教程系列

如何使用WP-CLI安装WordPress

很多人都熟悉WordPress的安装,Wordpress安装起来非常简单,其号称5分钟快速安装。但是,当您需要部署多个Wordpress时,重复的工作会拖慢你大...

19320
来自专栏王大锤

升级xcode7.0 第三方库不能用的解决方法(bitcode是什么鬼?)

31270
来自专栏java闲聊

SpringBoot+Vue2.x登陆功能

33540

扫码关注云+社区

领取腾讯云代金券