Linux底层函数库“glibc”再现重大安全漏洞

简介:

近日,Google 的安全研究团队披露了glibc getaddrinfo溢出漏洞。经研究发现,所有Debian、Red Hat以及更多其它Linux发行版,只要glibc版本大于2.9就会受到该溢出漏洞影响。攻击者可以通过该漏洞直接批量获取大量主机权限。

Linux底层函数库glibc再现重大安全漏洞

  关于漏洞的详细发现过程,请移步Google的博客。

百科:glibc是什么?

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。

漏洞的成因及POC使用测试

据悉,漏洞的成因在于DNS Server Response返回过量的(2048 ) 字节, 导致接下来的response 触发栈溢出。

目前,Google已提供了POC,据其博客中所述,该漏洞应该是可以绕过内存防护技术,从而形成代码执行漏洞。

具体POC 地址如下:github.com/fjserna/CVE-2015-7547

对此,乌云白帽子路人甲在自己的本地lubuntu 上进行了测试,libc 版本为 2.19。lubuntu系列也属于Debian 的一个发行版,故理论上满足漏洞条件。测试过程如下:

根据漏洞描述,我们可以做一个假的DNS Server 作为中间人,来验证该漏洞。

更改DNS 解析为 127.0.0.1,刷新DNS 缓存 sudo /etc/init.d/nscd restart

执行 CVE-2015-7547-poc.py, 注意无需更改 ip_addr 。

编译 CVE-2015-7547-client.c, 执行CVE-2015-7547-client

若含有漏洞,会造成Segmentation Fault。

  (图片来自乌云安全中心)

由于gilbc 2.9 是在2008年发行的,所以大量Linux 系统都会受到该漏洞影响。若一旦绕过内存防护技术,则该漏洞可以成为一大杀器。被劫持的DNS server进行中间人攻击,可直接批量获取大量主机权限。

修复方案: 打patch,详见官方介绍

如何检查Linux上的glibc版本

方法一:

下面给出了命令行下检查GNU C库的简单命令。

$ ldd --version

如何检查Linux上的glibc版本

  方法二:

另一个方法是在命令行“输入”glibc 库的名称(如,libc.so.6),就像命令一样执行。

输出结果会显示更多关于glibc库的详细信息,包括glibc的版本以及使用的GNU编译器,也提供了glibc扩展的信息。glibc变量的位置取决于Linux版本和处理器架构。

在基于Debian的64位系统上:

$ /lib/x86_64-linux-gnu/libc.so.6

在基于Debian的32位系统上:

$ /lib/i386-linux-gnu/libc.so.6

在基于Red Hat的64位系统上:

$ /lib64/libc.so.6

在基于Red Hat的32位系统上:

$ /lib/libc.so.6

下图中是输入glibc库后的输出结果样例。

如何检查Linux上的glibc版本

  写在最后

小编建议广大用户尽快给操作系统打补丁,并且提醒管理员在修补漏洞的同时,千万不要忘记查看服务器或网站是否已经被入侵,是否存在后门文件等,尽量将损失和风险控制在可控范围内。



本文转自d1net(转载)

相关文章
|
Linux C语言
Linux入门教程:centos升级glibc至2.18,
官方的glibc源只更新到2.12版,很多业务需要升级到更高级版,这里介绍编译glibc升级的方式。
3405 0
|
安全 Linux 编译器
linux下封装函数库——动态库.so和静态库.a(代码实现及链接方式)
在linux环境下的链接库分为静态链接库(.a库)和动态链接库(.so库),其作用是把C程序编译好做成一种可执行链接文件,主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要include含有库中提供的函数接口声明的头文件即可。所以学会如何将自己的源代码封装成库进行使用很重要
588 0
linux下封装函数库——动态库.so和静态库.a(代码实现及链接方式)
|
Linux C语言
LINUX下载编译libc(glibc)
LINUX下载编译libc(glibc)
330 0
|
缓存 Linux
7.16 Linux函数库(静态函数库和动态函数库)及其安装过程
Linux 系统中存在大量的函数库。简单来讲,函数库就是一些函数的集合,每个函数都具有独立的功能且能被外界调用。我们在编写代码时,有些功能根本不需要自己实现,直接调用函数库中的函数即可。
318 0
7.16 Linux函数库(静态函数库和动态函数库)及其安装过程
|
安全 Ubuntu Linux
CVE-2014-0196:躲藏5年之久的Linux内核严重安全漏洞被修复
信息一览 编号:CVE-2014-0196 漏洞类型:缓冲区溢出漏洞 漏洞引入:Linux 2.6.31-rc3 (2009) 影响的版本:2.6.31-rc3 — 3.14.3 影响的部分:伪tty设备 漏洞修正:Linux 3.14.4
390 0
|
Oracle MySQL 关系型数据库
|
安全 Linux
Debian 9修复18个重要的Linux 4.9 LTS内核安全漏洞
Debian 项目近日发布了针对 Debian GNU/Linux 9 “ Stretch ” 系列操作系统新的 Linux 内核安全更新,修复了最近发现的几个漏洞 。 根据最新的 DSA 4073-1 Debian 安全通报,在 Debian GNU/Linux 9 “ Stretch ” 操作系统的 Linux 4.9 LTS 内核中,共有 18 个安全漏洞,其中包括信息泄露,提权升级和拒绝服务等问题。
1751 0
|
MySQL 关系型数据库 Linux
Linux(RHEL7及CentOS7)下glibc版MySQL5.7.20的安装
一、安装环境 操作系统:CentOS Linux release 7.4.1708 (Core)  MySQL:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 二、下载、安装、配置过程 1、创建安装MySQL的用户geeklp,并指定用户目录。
1838 0