CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

这几天复习运维知识,也没怎么关注业界新闻,可等我一关注,又“捅娄子”了,Linux 继上次CVE-2014-6271漏洞爆发以来,再次爆发一个严重漏洞:CVE-2015-0235-Linux glibc 高危漏洞,正在使用 Linux 系统的个人或企业,看到消息请立即修复!

下面是我转载的检测和修复方法,我个人服务器 Centos 6.5 已成功修复:


一、漏洞概述

2015/01/28【CVE 2015-0235: GNU glibc gethostbyname 缓冲区溢出漏洞 】全面爆发,该漏洞的产生是 Qualys 公司在进行内部代码审核时,发现了一个在 GNU C 库(glibc)中存在的 __nss_hostname_digits_dots 函数导致的缓冲区溢出漏洞。这个 bug 可以通过 gethostbyname *()函数来触发,本地和远程均可行。该漏洞(幽灵漏洞)造成了远程代码执行,攻击者可以利用此漏洞远程获取系统进程当前的权限。

幽灵漏洞是 Linux glibc 库上出现的一个严重的安全问题,他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限。目前他的 CVE 编号为 CVE-2015-0235。

什么是 glibc

glibc 是 GNU 发布的 libc 库,即 c 运行库。glibc 是 linux 系统中最底层的 api,几乎其它任何运行库都会依赖于 glibc。glibc 除了封装 linux 操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。glibc 囊括了几乎所有的 UNIX 通行的标准。

出现了什么漏洞

代码审计公司 Qualys 的研究人员在 glibc 库中的 __nss_hostname_digits_dots()函数中发现了一个缓冲区溢出的漏洞,这个 bug 可以经过 gethostbyname*()函数被本地或者远程的触发。应用程序主要使用 gethostbyname*()函数发起 DNS 请求,这个函数会将主机名称转换为 ip 地址。

更多的细节可以从下面的视频中看到(一堆鸟语,听不懂):
[youku]XODgxMTg1NDY4[/youku]

漏洞危害

这个漏洞造成了远程代码执行,攻击者可以利用此漏洞获取系统的完全控制权。

漏洞证明

在我们的测试中,我们编写了一个 POC,当我们发送一封精心构造的电子邮件给服务器后,我们便可以获得远程 Linux 服务器的 shell,这绕过了目前在 32 位和 64 位系统的所有保护(如 ASLR,PIE 和 NX)。

我们能做什么?

给操作系统及时打补丁,我们(Qualys)已与 Linux 发行商紧密合作,会及时发布补丁。

为什么叫做 GHOST?

因为他通过 GetHOST 函数触发。

哪些版本和操作系统受影响?

第一个受影响的版本是 GNU C 库的 glibc-2.2,2000 年 11 月 10 号发布。我们已找出多种可以减轻漏洞的方式。我们发现他在 2013 年 5 月 21 号(在 glibc-2.17 和 glibc-2.18 发布之间)已经修复。不幸的是他们不认为这是个安全漏洞。从而导致许多稳定版本和长期版本暴露在外,其中包括 Debian 7 (wheezy),Red Hat Enterprise,Linux 6 & 7,CentOS 6 & 7,Ubuntu 12.04 等。

以上内容摘自:360 安全播报平台

二、检测方法

检测方法 1【RedHat 官方检测方法】:

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

ghost_check.sh 源码(张戈亲测:推荐使用这种方法来测试更加准确!):

检测方法 2【简单的检测方法】:

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

检测方法 3【二进制检测方法】:

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

ghost.c 源码:

三、修复方法

①、在线修复方案

CentOS, Red Hat, Fedora 等系列衍生版本(RHN 建议):

Debian, Ubuntu 等系列衍生版本:

②、离线修复方案

I. Centos6.5 离线补丁

先检查本地 glibc 包安装了哪些相关包

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

然后,到阿里源下载对应版本

进行后台断点下载补丁包

使用 yum 本地安装

或是 rpm 安装

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

II. Red Had 系列衍生版本

使用方法:参考上文【Centos6.5 离线补丁】的修补方法。

离线包下载地址:

http://mirrors.aliyun.com/centos/7/updates/x86_64/Packages/glibc-2.17-55.el7_0.5.i686.rpm

http://mirrors.aliyun.com/centos/7/updates/x86_64/Packages/glibc-2.17-55.el7_0.5.x86_64.rpm

四、修复检测

①、ghost_check.sh 脚本检测

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

②、ghost.c 脚本检测

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

注意:打好补丁后必须立即重启操作系统,否则会造成应用业务无法使用。

五、参考来源

redhat 官方:https://access.redhat.com/articles/1332213

redhat 官方补丁介绍:

https://rhn.redhat.com/errata/RHSA-2015-0090.html

https://rhn.redhat.com/errata/RHSA-2015-0092.html

ubuntu 官方补丁介绍: http://www.ubuntu.com/usn/usn-2485-1/

评论已关闭!