logo资料库

Linux glibc 幽灵漏洞修复方案.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
一、漏洞概述
二、影响范围
三、漏洞危害
四、验证漏洞方法
五、修复建议
1.1Redhat(
1.2Ubuntu(
1.3Debian(
1.4Qualys Advisory
1.5Gnu glibc(
Linux glibc 幽灵漏洞修复方案
目 录 1 漏洞概述................................................................................................................................................3 2 影响范围................................................................................................................................................4 3 漏洞危害................................................................................................................................................4 4 验证漏洞是否存在 .................................................................................................................................4 5 解决方法................................................................................................................................................6 5.1 5.2 5.3 5.4 5.5 Redhat.......................................................................................................................................................7 Ubuntu......................................................................................................................................................7 Gnu...........................................................................................................................................................9 Debian...................................................................................................................................................... 8 Qualys Advisory.......................................................................................................................................9 6 再次验证漏洞 ......................................................................................................... 错误!未定义书签。
一、漏洞概述 Linux glibc 函数库日前曝出名为 GHOST(幽灵)的高危漏洞,漏洞编号是 CVE-2015-0235。攻击者可利用此漏洞实施远程攻击,并完全控制目标系统。各 大 Linux 发行商已经发布漏洞补丁,提醒企业网管做好服务器的安全更新。Glibc 是 GNU 发布的 libc 库,即 c 运行库。它是 Linux 系统中最底层的 API,几乎其 它任何运行库都会依赖于 glibc。glibc 除了封装 Linux 操作系统所提供的系统 服务外,它本身也提供了许多其它一些必要功能服务的实现。国外安全研究人员 发现,glibc 的__nss_hostname_digits_dots()函数有缓冲区溢出漏洞。这一漏 洞既可以本地利用,也可以远程利用。研究人员对漏洞进行了测试验证:向目标 邮件服务器发送特别构造的邮件,从而获得了远程登录 Linxu 系统的 shell 脚本。 通过这种方式可以绕过 32 位和 64 位系统上的所有现存保护机制(比如 SSLR、 PIE 和 NX)。受 glibc-2.2 影响的 GNU C 函数最早版本是在 2000 年 11 月发布的。 这一漏洞曾在 2013 年 5 月被修补(在 glibc-2.17 和 glibc-2.18 版本之间)。 但由于当时并没有被认定为安全威胁,包括 Debian 7、Red Hat Enterprise Linux 6 & 7、 CentOS 6 & 7 和 Ubuntu 12.04 在内的多数知名 Linux 版本在长达一年 半的时间都没有修补幽灵漏洞。Linux glibc 幽灵漏洞最容易的攻击入口是邮件 服务器,和存在 SSRF(Server-side Request Forgery)漏洞的 WEB 接口。值得 庆幸的是,此漏洞目前还没有公开通用的攻击代码,这也给了服务器管理员们及 时安装补丁的宝贵时间。 目前 Debian 、Red Hat Enterprise Linux、 CentOS 和 Ubuntu 等 Linux 发行商已发布了漏洞补丁,用户只需要根据各发行版的安全公告升级 glibc 就可 以修补漏洞,避免受到黑客的幽灵攻击。
二、影响范围 该漏洞影响 glibc 库版本 2.2-2.17 的 Linux 操作系统。 此类操作系统类型包括以下: Cent 6 & 7 Debian 7 Red Hat Enterprise Linux 6 & 7 Ubuntu 10.04 & 12.04 各 Linux 发行版 三、漏洞危害 攻击者利用该漏洞可以远程获取目标操作系统的管理权限,影响范围比较广 泛,包括 CentOS、Debian、Red Hat 等主流 Linux 发行版本。Linux glibc 幽灵 漏洞最容易的攻击入口是邮件服务器,和存在 SSRF(Server-side Request Forgery)漏洞{很多 web 应用都提供了从其他的服务器上获取数据的功能。使用 用户指定的 URL,web 应用可以获取图片,下载文件,读取文件内容等。这个功 能如果被恶意使用,可以利用存在缺陷的 web 应用作为代理攻击远程和本地的服 务器。这种形式的攻击称为服务端请求伪造攻击(Server-side Request Forgery)。}的 WEB 接口。 此漏洞触发严重依赖应用程序调用 gethostbyname()的方式,需要满足多个 条件才能触发漏洞。目前看绝大多数的本地 SUID 程序和服务程序不受影响。目 前已知受影响的应用程序为 exim4 邮件服务程序,如果设置了对 HELO 和 EHELO 命令进行额外安全检查(非默认配置),则可以远程执行任意代码。 四、验证漏洞方法 1、编译并执行代码自行验证: a) 编译以下测试代码
#include #include #include #include #include #include #define CANARY "in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *result; int herrno; int retval; /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)]; memset(name, '0', len); name[len] = '\0'; retval = gethostbyname_r(name, &resbuf, &herrno); if (strcmp(temp.canary, CANARY) != 0) { puts("vulnerable"); exit(EXIT_SUCCESS); } if (retval == ERANGE) { puts("not vulnerable"); exit(EXIT_SUCCESS); } puts("should not happen"); exit(EXIT_FAILURE); } temp.buffer, sizeof(temp.buffer), &result, b) 执行上述测试程序可以显示出 glibc 版本和主机是否存在漏洞: 返回 Vulnerable ,表示存在漏洞:
返回 Not vulnerable, 表示不存在此漏洞: 五、修复建议 此漏洞可升级操作系统解决,也可直接升级 GNU glibc 版本。 1、下载升级包: 1)升级操作系统方式: RedHat: https://rhn.redhat.com/errata/RHSA-2015-0090.html Ubuntu: https://launchpad.net/ubuntu/+source/eglibc Debian: https://security-tracker.debian.org/tracker/CVE-2015-0235 Qualys Advisory: https://www.qualys.com/research/ ... T-CVE-2015-0235.txt 2)直接升级 GNU glibc 版本方式: GNU C Library: http://www.gnu.org/software/libc/ 2、进行升级: RedHat、Fedora、CentOS 系统 yum update glibc glibc-devel glibc-common glibc-headers Debian、Ubuntu 系统 apt-get clean && apt-get update && apt-get upgrade 3、升级后,建议重启用到 glibc 的进程,或者重启服务器。
详细说明如下(修复后验证方法,以自行编译代码验证为例): 1.1 Redhat(https://access.redhat.com/articles/1332213) 根据红帽给出的解决方案,需要升级所使用的 glibc 及 nscd 包版本,并重启 服务器或者服务。 1、下载升级包:  Red Hat Enterprise Linux Server 5: RHSA-2015:0090  Red Hat Enterprise Linux Server (v. 6): RHSA-2015:0092  Red Hat Enterprise Linux Server (v. 7): RHSA-2015:0092  Red Hat Enterprise Linux Desktop 5: RHSA-2015:0090  Red Hat Enterprise Linux Desktop 6: RHSA-2015:0092  Red Hat Enterprise Linux Desktop 7: RHSA-2015:0092  Red Hat Enterprise Linux HPC Node 6: RHSA-2015:0092  Red Hat Enterprise Linux HPC Node 7: RHSA-2015:0092  Red Hat Enterprise Linux Workstation 6: RHSA-2015:0092  Red Hat Enterprise Linux Workstation 7: RHSA-2015:0092  Red Hat Enterprise Linux Server EUS (v. 6.6): RHSA-2015:0092  Red Hat Enterprise Linux Server EUS (v. 5.9): RHSA-2015:0099  Red Hat Enterprise Linux Server EUS (v. 6.4): RHSA-2015:0099  Red Hat Enterprise Linux Server EUS (v. 6.5): RHSA-2015:0099  Red Hat Enterprise Linux ELS (v. 4): RHSA-2015:0101 2、升级补丁包: Update the glibc and nscd packages on your system using the packages released 3、重启: Reboot the system or restart all affected services: 4、验证是否成功: 执行编译的代码,返回 Not Vulnerable 则表示修复成功。返回 Vulnerable 则表 示修复失败。 1.2 Ubuntu(http://www.ubuntu.com/usn/usn-2485-1/ ) 1、下载升级包
2、升级补丁包 选择 2.18 以上版本升级 3、重启 重启服务器 4、验证是否成功: 执行编译的代码,返回 Not Vulnerable 则表示修复成功。返回 Vulnerable 则表 示修复失败。 1.3 Debian ( https://security-tracker.debian.org/tracker/CVE-2 015-0235 ) 1、下载升级包 2、升级补丁包 选择 2.18 以上版本升级
分享到:
收藏