谷歌工程师揭秘:如何发现“心血”漏洞

  早在4月9日,一个代号“Heartbleed”(“心脏出血”)的重大安全漏洞被曝光,能让攻击者从服务器内存中读取包括用户名、密码和信用卡号等隐私信息在内的数据。尽管该漏洞已经过去6个月,但发现该漏洞的Google安全工程师一直没有透露过相关内容。

  笔者带着一些好奇感,从澳大利亚Risky.biz播客上查找到,Google安全工程师Neel Mehta首度揭秘了对“心脏出血”的发现过程。Neel Mehta是在大量应用于多数互联网的OpenSSL安全软件的源代码中发现该安全漏洞。

  所谓源代码是指一系列人类可读的计算机语言指令,特别是开源软件是免费提供给社区开发者和用户能够重新分配和修改的一种软件形式。由于从事OpenSSL审计工作,谷歌工程师对于整个SSL通信层安全都需要进行一项长期的审计工作,从而发现“心血”漏洞。

  正如OpenSSL的代码库都是开放的,一旦有修改就造成一个问题,新的漏洞被修复所有人就都知道这个漏洞了(比如 Heartbleed), 这时虽然漏洞在源代码上被修复了,但是大多数用户还没来得及更新,这就给了一些攻击者可乘之机。

  SSL(Secure Sockets Layer)是一个保障数据完整、安全的加密协议,它经常用在客户端与服务器之间,漏洞通过读取网络服务器内存,攻击者可以访问敏感数据,从而危及服务器及用户的安全。谷歌安全工程师Mehta表示,“心脏出血”漏洞被发现的最主要原因,是由于在SSL协议栈上一些早先漏洞被发现,包括今年2月份发现的GoToFail漏洞、3月份发现的GnuTLS漏洞。

  漏洞还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求数据,会话cookie和密码,这能使攻击者可以劫持其他用户的服务身份。Mehta表示并没想到反响会如此巨大,主流媒体大多都做了报道。

  不过对于漏洞被公布后,彭博社报道中提到:美国国家安全局早知道“心脏流血”漏洞,并利用其进行信息收集的报道,Mehta表示不太确定这个说法,并认为不太可能。但对于“心脏出血”漏洞这一个问题存在两年之久,直到Google对自身使用的基础服务审查才被发现。

  由此,安全重视和漏洞可能是到达了一个临界点,加密在过去一年被越来越重视。随着一大堆问题被逐渐发展并解决,使得用户对于安全防范更加重视,特别是在斯诺登泄密事件后,美国国家安全局曾经窃听过Google数据中心之间的加密数据。

  漏洞之所以严重,是由于类似bash、OpenSSL的开源软件被广泛应用于全球数亿设备之上。他怀疑其它软件——被其称之为“用胶水贴合在一起”的软件,可能还存在着很多未被发现的问题。例如Zlib,一个在很多软件中使用的压缩库;libjpeg,一个被广泛应用的JPEG库文件。

  “libjpeg库中的bug,将会有巨大的影响。”Mehta说道。

  另外,Mehta还谈到了“破壳”漏洞(Shellshock),认为这是比“心脏出血”漏洞更为严重。

 

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:信息安全:家贼难防