反向心脏出血漏洞 - Reverse Heartbleed
心脏出血漏洞一般被描述为利用客户端程序向存在OpenSSL Heartbleed漏洞(做heartbeat时缺少了必要的边界检查)的服务器发送一段恶意的心跳消息,以此来读取服务器上内存中的数据的行为。下图来自XKCD漫画,很形象地描述了这一漏洞是如何工作的:

但这里容易被忽视的一点是,OpenSSL Heartbleed漏洞同样可以以反向的方式来工作。具体点讲就是,当客户端和服务器的连接建立之后(比如我们使用浏览器,或者FTP工具不小心连接到了一个恶意网站),恶意网站可以主动地发起一个与上面图中所示类似的恶意的心跳请求,这时如果我们的客户端程序使用了缺陷版本的OpenSSL库的话,那么就会把内存中额外的数据(最多64KB)作为响应返回给恶意网站的服务器。不过幸运的是,这样的反向攻击要比正向的技术难度大很多,首先只有在客户端与服务器间建立了TLS连接之后服务器才能开始尝试攻击,其次很多客户端程序都有安全控制措施,要检查服务器的证书,当发现证书不匹配时会立即中断连接。
通过网站https://reverseheartbleed.com/,你可以产生一个测试网站来模拟恶意网站的攻击,并以此来检测你的客户端程序是否存在反向心脏出血漏洞。
一些常用的已被证实了容易被反向攻击的clients包括:
- MariaDB 5.5.36
- wget 1.15
- curl 7.36.0
- git 1.9.1
- ngix 1.4.7
除此之外,一些网络设备如路由器,F5等同样可能受到反向心脏出血漏洞的攻击。
浙公网安备 33010602011771号