在 2 月 17 日,谷歌研究员 Tavis Ormandy 在对公开的网页数据进行分析时,发现其中存在机器的内存数据,其内容包括秘钥、cookie 等敏感信息。经过进一步调查,发现该数据来源为 Cloudflare 所提供的内容分发服务。Tavis 马上就将该漏洞通过 twitter 通知了 Cloudflare,同时 Cloudflare 也在第一时间分析了问题并关闭了产生泄露的服务,阻止了该泄露的进一步发展。
Cloudflare 是知名的国际网络安全服务提供商。它为网站提供安全管理、性能优化方面的服务。根据 Cloudflare官方博客解释,此次内存数据泄露的原因是,在引入新的HTML 解析器与旧解析器同时运行时,由于判断文档结束的标志位的差异,暴露了一个旧解析器的漏洞,导致内存数据的泄露。该解析器被用于Cloudflare 提供的混淆页面内邮箱地址、 HTTPS 重写以及服务端黑名单的功能。Cloudflare 在接到谷歌的通知后第一时间找出问题并停止了这三个功能,之后组建了跨国团队对漏洞进行不间断的分析及修复,并在发现漏洞的三天后恢复了这三个服务的正常使用。
Cloudflare 表示此次数据泄露最早可能开始于去年的 9 月,那时上线了 HTTPS 重写功能,但是由于该功能并没有被大规模使用,没有造成很大影响。在今年的 2 月 13 日,邮箱地址混淆功能发布,从发布到该问题被谷歌发现的 5 天内是问题的高发期。在这段时间内大约每 3,300,000 个连接存在一次潜在的内存数据泄露。虽然 Cloudflare 已经修复了该漏洞,但是其涉及的页面已经被各搜索引擎、爬虫给抓取并缓存,导致泄露的数据可能仍然能通过这些缓存被访问到,谷歌、雅虎、必应等搜索引擎已经积极进行合作,将涉及的网页缓存进行了清除。
这次的内存数据泄露事件难免让人回想起 14 年 OpenSSL 曝出的心脏出血(Heartbleed)漏洞,但此次的漏洞涉及的范围仅限于 Cloudflare 客户的信息。虽然影响面不如心脏出血,但鉴于 Cloudflare 的客户网站有五百多万之多,其规模也不容小觑。Cloudflare 已发送邮件通知各客户内存数据泄露的发生。经过分析第三方缓存,Cloudflare 发现有大约 150 个客户站点的数据发生泄露且存在风险,他们已经在积极进行处理,希望将损失减少到最小。同时他们也建议客户修改持久化的敏感信息如长 session 的令牌等,但客户的 SSL 私钥并不会在这次的漏洞中被泄露。
此次的泄露风波再次吸引了大家对网络信息安全的关注。敏感数据通过第三方服务,在享受其提供服务的同时,势必也会导致一定的信息安全风险。在这次泄露事件中 1password 就表示由于其数据使用了安全远程密码(SRP)及数据加密存储,所以不会受到此次泄露的波及,该方式值得那些使用了第三方服务且对数据安全较敏感的应用借鉴。
感谢刘志勇对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论