V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AlaudaCloud
V2EX  ›  Docker

glibc 曝出重大漏洞,你的 Docker 镜像还安全吗?

  •  
  •   AlaudaCloud · 2016-02-26 17:01:25 +08:00 · 3698 次点击
    这是一个创建于 3197 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2 月 16 日, Google 在博客中公布了一个关于 GNU C Library (glibc)的安全漏洞,可导致 GNU/Linux 上的应用被攻击者劫持,进而在 GNU/Linux 上执行任意代码,甚至控制计算机。 CVE 编号为 CVE-2015-7547 。

    glibc ( GNUC Library )是 GNU 发布的 libc 库,是 GNU/Linux 中最底层的 API ,几乎其它任何运行库都会依赖于 glibc 。 glibc 除了封装 Linux 操作系统所提供的系统服务外,它本身也提供了许多其它必要功能服务的实现。

    漏洞概述

    Google 的安全人员发现, glibc 的 DNS 客户端解析器中存在基于栈的缓冲区溢出漏洞。当调用到 getaddrinfo()库函数时,攻击者便可借助被劫持的域名、被劫持的 DNS 服务器或中间人攻击利用该漏洞,控制软件,甚至直接远程 root 。

    影响范围

    glibc 应用于众多 Linux 发行版本中,所以此类漏洞影响范围十分广泛。几乎所有的 Linux 发行版,只要 glibc 版本大于 2.9 就会受到影响。

    漏洞详解

    对于一个 DNS 查询来说, glibc 中的_nss_dns_gethostbyname4_r()函数会通过 aloca()在栈中预先分配 2048 字节的空间来存储 DNS 的应答结果。

    接下来执行 send-dg()和 send_vc()函数时,如果 response 超过 2048 个字节,会在堆中分配一个新的缓冲区,其中所有的信息( buffer pointer, new buffer size 和 response size )也会被更新。

    某些情况下,栈中的缓冲区和新的堆分配会发生不匹配,尽管 response 会超出栈缓冲区的大小,新的堆缓冲区也被分配了,栈缓冲区依然会被用来存储 DNS response ,这就会造成栈缓冲区溢出。

    ssh , sudo 和 curl 等都有可能引起这个缓冲区溢出。

    Google 在博客中提供了 POC 测试(感兴趣的同学可以试一下这个漏洞到底有多大): https://github.com/fjserna/CVE-2015-7547

    POC 测试,即 Proof of Concept ,是业界流行的针对客户具体应用的验证性测试,根据用户对采用系统提出的性能要求和扩展需求的指标,在选用服务器上进行真实数据的运行。

    Docker 做了啥?

    在这里要特别表扬下 Docker ,昨天 Docker 在第一时间就开始更新镜像,由于灵雀云镜像中心的 library 库是和 Docker 官方镜像库实时同步的,我们的工程师昨天就发现有几百个镜像更新任务在排队。目测 Docker 已经把官方库中所有镜像做了更新。 Mesoscloud , Microsoft 的镜像也都做了相关更新。

    灵雀云做了啥?

    灵雀云会尽快将这些镜像更新同步过来,目测今晚就能完成。大家最常用一些镜像已经优先做了同步。

    灵雀云的服务器在第一时间更新了这些 patch ,请大家不要恐慌,放心使用灵雀云!

    你应该做啥?

    在这里强烈建议大家重新 build 自己的镜像!已经在运行的服务也停掉,重新 build 一下镜像,再运行!

    最常用的 Ubuntu 镜像请使用这个版本: https://hub.alauda.cn/repos/library/ubuntu

    如果你的服务器是 Ubuntu 的,可以用以下方法进行更新:
    http://www.ubuntu.com/usn/usn-2900-1/。

    另外,由于大量镜像的更新,具有中国特色的 registry mirror 的使用体验会受到影响,还请大家体谅!

    9 条回复    2016-02-26 20:21:28 +08:00
    13162951900
        1
    13162951900  
       2016-02-26 17:37:33 +08:00
    好的 灵雀云
    wzxjohn
        2
    wzxjohn  
       2016-02-26 17:46:06 +08:00
    所以说,昨天( 2 月 25 号)才开始修复各大发行版在 2 月 18 号就放出对应补丁的 Critical 漏洞,还要表扬一下?!
    shyling
        3
    shyling  
       2016-02-26 17:49:22 +08:00 via iPad
    在这里要特别表扬下 Docker ,昨天 Docker 在第一时间就开始更新镜像
    没看出来值得表扬的。。。只觉得 docker 不可靠←_←
    VmuTargh
        4
    VmuTargh  
       2016-02-26 17:53:15 +08:00
    @shyling 几乎所有的主流发行版都在当天发了安全报告并且迅速修复,真看不出 docker 可靠在哪了……镜像再多几天也可以 rebuild and upgrade 掉的……
    shiny
        5
    shiny  
       2016-02-26 17:56:30 +08:00
    这年头软文创作难啊,稍微写得不用心点就会被喷。
    wbsdty331
        6
    wbsdty331  
       2016-02-26 18:08:55 +08:00
    等等。。。
    楼下告诉一下大家 今天是几号
    monsoon
        7
    monsoon  
       2016-02-26 19:09:04 +08:00 via Android
    今天是 2 月 26 日 星期五。
    billlee
        8
    billlee  
       2016-02-26 19:23:30 +08:00
    去查了 docker 的 github, redhat 系是 16 日修复的, debian 系是 17 日修复的。你们不要见着风是得雨啊,弄个大新闻,再把 docker 批判一番
    Halry
        9
    Halry  
       2016-02-26 20:21:28 +08:00 via Android
    多久之前的事呀。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1364 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:40 · PVG 07:40 · LAX 15:40 · JFK 18:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.