Heartbleed真的在天衣无缝地肆虐网络吗?媒体和很多技术网站似乎坚信这一点,但有些人对此持怀疑态度。现在世界各地的很多IT企业都在试图从最近的Heartbleed漏洞事件中恢复过来,那么,我们可以从这次事件中学到什么呢?这个漏洞存在于公共和专用网络中数千网站所使用的openSSL库中,并且多年来都未被发现。攻击者可以从SSL会话内迫使web服务器泄露信息,完全绕过加密。如果你认为这还不够糟糕的话,最初的报告称,对TLS/DTLS heartbeat服务扩展的Heartbleed攻击“毫无踪迹可循”。
揭开Heartbleed神话
Heartbleed是互联网中最令人毛骨悚然的安全漏洞之一,下面让我们看看它的时间表:
· 2011年—一位德国程序员编写的一行简单的代码在OpenSSL扩展中制造了一个安全漏洞。
· 2011到2014年—在这三年时间中,没有人注意到这个漏洞;尽管该代码是开源代码,这仍然将影响着数百万用户。
· 2014年3月21日—谷歌工程师Neel Mehta和芬兰安全公司Codenomicon独立地发现了这个漏洞。
· 3月21日到4月7日—谷歌、CloudFlare、Akamai、Red Hat和Facebook完成了对其OpenSSL库的突击修复。
· 4月7日—MITRE组织在CVE-2014-0160中正式报告了这个Heartbleed漏洞,而OpenSSL项目立即发布了1.0.1g来修复这个漏洞代码。
· 4月7日到现在—使用OpenSSL的产品供应商都纷纷开始发现、诊断和更新其产品。
这个漏洞是什么
让我们明确一点:这不是SSL/TLS或者heartbeat扩展(RFC 6520)中的漏洞。该漏洞存在于该扩展的OpenSSL部署中。Heartbleed漏洞利用代码允许攻击者通过缓冲区溢出迫使web服务器泄露某些内存区域的64KB数据块。虽然我们无法预测哪些信息会被泄露,但成功的攻击者已经获取了会话密钥、密码和其他通常应该保持保密的信息。
寻找隐藏的证据
Heartbleed真的在肆虐网络而没有留下任何踪迹吗?媒体和很多技术网站似乎坚信这一点,但有些人则持怀疑态度。Heartbleed攻击一定会留下一些证据:数据包。数据包总是可以告诉我们所发生的一切,包括在Heartbleed的情况。当然,我们首先需要获取这些数据包。
当然,受到Heartbleed漏洞利用攻击的服务器不太可能提供任何证据。而存储的数据包可以告诉我们成功的Heartbleed漏洞利用的细节,即使对手已经停止了主动攻击。
Heartbleed漏洞利用前的检测
对网络的连续监控可以发现主动的Heartbleed攻击,但更重要的是,通过足够多的数据包捕捉数据,我们可以及时发现攻击,甚至在公开披露这个Heartbleed漏洞之前。对这些数据的调查可能可以发现是否已经发生对存在漏洞服务器的实际攻击。
部署在网络中的Berkeley Packet F(BPF)可以自动标记来自服务器的高于正常的TLS heartbeat响应。Wireshark、tcpdump和其他工具可以分析捕捉的数据包以确认是否受到攻击。
为什么是BPF?BPF引擎速度快,这是检查通过现代网络的海量流量所需要的特性。并且,BPF捕获的数据包是通用格式,可用于数据包处理,并且可用于大多数操作系统和数据包分析软件。BPF的广泛应用是其可以检测Heartbeat攻击的主要原因。
BPF引擎还可以用于Linux、Mac OS、Windows(通过WinPcap),并可以放置在云计算实例中。BPF和tcpdump存在于大多数网络设备中,例如防火墙、负载均衡器和应用交付控制器,并可以通过管理控制台来访问以进行故障排除。当然,设计用于支持网络性能管理的产品中的数据包分析和存储引擎几乎都支持BPF。
对此,技术领域的很多人已经提供了大量资源来开发可检测Heartbleed攻击的BPF过滤器。大多数这些过滤器从端口443/tcp(默认HTTPS端口)检测流量。通常的大小阈值是69个字节;这可以向上或向下调整以减少误报。
总结
了解你网络中的数据,基本知道安全服务应如何正常运作,以及能够检测异常情况,可以让你幸免于Heartbleed攻击。数据包不会撒谎,但你必须捕捉到它们来发现重要信息。
数据包捕捉的数据可以作为理想的取证依据,从这些信息中,你可以确定在漏洞利用横行肆虐的那段时间发生了什么事情。在安全泄露事故中,事实永远好过单纯的猜测。