delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

06 Jun 2014

OpenSSL 的新一批漏洞

今天早上4点多就爬起来准备发安全公告(友商约的是早上5点发),一刷,OpenSSL官方已经正式发表了(时间大约是4点30),于是立即开始相关手续,commit修正,发公告,通知CERT,这些不表。

总体来说,这次安全公告比之前 Heartbleed 那回要有序的多,这主要归功于上回大家的声讨以及 Solar Designer 同学做的友商提前告知列表。大致时间线如下:

  1. 6月2日凌晨: OpenSSL 通知友商列表存在问题,要求同意 TLP:Amber 之后才告知具体细节。签署后约1小时得到了具体说明及补丁。
  2. 6月2日-3日:各友商各自修补,发现及反馈补丁问题。由于 TLP:Amber, FreeBSD 只有我和 des@ 及一位 OpenSSL 核心成员看到了公告草稿及补丁。
  3. 6月3日:FreeBSD 发表了本月第一批安全公告(这是更早前计划的周二批次)。此后立即开始着手联编 OpenSSL 特别更新。

本次问题可分成两类:SSL/TLS 和 DTLS。DTLS 常见于采用 UDP/SCTP 等 datagram 协议的应用,实际影响范围较小。

SSL/TLS 方面,CVE-2014-0224 CCS协议可在任意状态下使用的问题,可导致中间人攻击,后果严重,利用容易(可改变网络数据即可)但实际影响面较小,因为大部分人使用的浏览器并不是用 OpenSSL 来实现 SSL/TLS 支持的。但对邮件本身未做加密的邮件来说,基本等于是全军覆没了。这个漏洞存在了约16年,是的,十六年。发现者blog [英文]。我想,可能搞个可以形式证明的描述语言来重写SSL/TLS的实现才是正路?

另一个 CVE-2014-3470 可导致崩溃,影响较小一些。

值得一提的是,这次的一个 DTLS 问题 CVE-2014-0195 (可有任意代码执行之虞)也是上回引入 Heartbleed 的 Robin Seggelmann 引入的,呵呵。


总体来说,我觉得这批漏洞让人觉得有些绝望。 OpenSSL 有非常多的问题,但其中有很多必须对协议十分理解才能看出来,而另一方面看出来了报告给开发者也无非是得到几句赞扬而已。在现在这个年代,有能力看出来问题的人未必不会选择找个好的买家把漏洞卖掉。这种趋势十分危险,而最近几年有愈演愈烈的趋势。