2014年4月7日开始在互联网上引起轩然大波的“OpenSSL Heartbleed”漏洞是一个非常严重的漏洞,安全人士“道哥的黑板报”表示该漏洞可能成为2014年的“最佳漏洞”之一,造成的影响可能会超过去年Struts框架远程执行漏洞。
以下是InfoQ中文站对本次漏洞披露过程、讨论过程和影响范围的事件记录,供参考。
2014年4月7日,CloudFlare公司在其博客上发布了一个公开声明,表示发现了OpenSSL 1.0.1版本当中的一个尚未被公开的漏洞,并表示CloudFlare已经在之前一周修复该bug。同日,OpenSSL官网发布该漏洞通告,漏洞标识为CVE-2014-0160,通告内容如下:
TLS心跳扩展的处理过程漏掉了一步边界检测的步骤,这个漏洞使攻击者能够从客户端与服务器端连接的内存泄露中读取多达64KB的数据。
OpenSSL 1.0.1、1.0.1f、1.0.2-beta和1.0.2-beta1版本包含本漏洞。
Google安全组的Neel Mehta发现了本漏洞,而Adam Langley [email protected] 和Bodo Moeller [email protected] 提供了漏洞的补丁,感谢他们。
所有受影响的用户需尽快升级至OpenSSL 1.0.1g版本。升级有困难的用户可以通过
-DOPENSSL_NO_HEARTBEATS
选项重新编译OpenSSL进行临时修补。1.0.2-beta2更新中将修复这个漏洞。
官方通告发布之后,安全公司Codenomicon单独建立网页对该漏洞进行更详细的描述与跟进,并表示其工程师在该漏洞披露之前早已单独发现了这个漏洞。由于该漏洞跟heartbeat与内存泄露的相关性,本漏洞被形象的描述为Heartbleed(心脏出血)。Heartbleed.com上有一份详细的FAQs,摘要部分如下:
- 这是一个非常严重的bug,导致全球互联网大量私钥和其他加密信息处于暴露的危险下。
- 本漏洞从2011年12月开始进入OpenSSL,并在2012年3月14日OpenSSL 1.0.1正式发布后开始大量流入市场。
- Debian Wheezy、Ubuntu 12.04.4 LTS、CentOS 6.5、Fedora 18、OpenBSD 5.3、FreeBSD 10.0、NetBSD 5.0.2、OpenSUSE 12.2等发行版默认搭载了含有本漏洞的OpenSSL版本。
- 利用本漏洞抓取敏感信息不会留下任何痕迹。
该漏洞在被公开纰漏后开始迅速传播。OpenSSL官方通告在Hacker News、LWN、知乎等平台上引发大量讨论,讨论方向包括:
吐槽OpenSSL的编码实践。造成边界检查失效的代码被视为“难以通过代码审查”,而即使是修复的补丁也被评价为“不忍直视”:
if (1 + 2 + 16 > s->s3->rrec.length) if (1 + 2 + payload + 16 > s->s3->rrec.length)
OpenBSD的deraadt评价“OpenSSL的开发团队是不负责任的”,还有人把2009年的一篇《OpenSSL的开发者们都是猴子》推到了Hacker News上,批评该项目的代码质量。
dmix写了一个脚本遍历Alexa排名前一千的网站,遍历结果显示约有30%~40%的网站包含本漏洞。他表示没有测试中国的网站,因为国内网站的443端口从国外嗅探纷纷会超时。
ZDNet的读者谴责了CloudFlare,认为这次造成这么大的影响很大程度上是因为CloudFlare没有走“负责任的漏洞披露过程”,在官方补丁发布之前先做了通告,而CloudFlare的工程师则坚称自己披露的时间点在OpenSSL官方通告被分享到Hacker News之后,因此没有过失。
@ex509 在其博客上针对本漏洞写了一篇详细的技术分析,国内的Fish将其翻译为中文并发布在乌云知识库。
知道创宇的余弦在知乎上表示“@知道创宇安全研究团队 实测可以Dump出淘宝、微信、网银、陌陌、12306等各大使用OpenSSL服务的一些内存信息,里面有用户等的敏感内容(有些重要网站含明文密码)”,并表示“这事的影响超乎想象。”
@ZoomEye 搜索引擎制作了一份受本次漏洞影响的网站地图。
360网站卫士推出了一个该漏洞的检查服务,该服务技术负责人赵武在微博上建议“负责任的网站方没搞清楚之前还是先停服务吧。”
4月8日,有大量由该bug导致的各网站漏洞被披露在Wooyun.org,包括蘑菇街、搜狗、盛大网络、UCloud、淘宝、开源中国、豌豆荚、唯品会等,各网站的工程师均在Wooyun上回应表示正在修复,部分大型网站的OpenSSL问题已经修复。
AWS在4月8日发布升级通知表示收到本漏洞影响的ELB服务器已经升级,EC2上提供的AMI已经替换为没有该漏洞的版本,同时也在帮助其Elastic Beanstalk和CloudFront的用户修复本问题。
Akamai首席安全官在4月8日发布博客表示已经在本漏洞公开纰漏之前完成了修复。Heroku在4月8日发布修复通告后提醒用户更改密码。
已经发布升级通告的发行版包括红帽(RHEL桌面版、服务器版、HPC、Workstation)、Fedora(19、20)、Ubuntu(13.10、12.10、12.04 LTS)、Debian。