OpenSSL 又沦陷,DROWN漏洞影响1100万网站
漏洞详情:
DROWN 是 Decrypting RSA with Obsolete and Weakened eNcryption的缩写,即“利用过时的脆弱加密算法来对RSA算法进行破解”。现在流行的服务器和客户端几乎都使用TLS加密,然而,由于错误配置,许多服务器仍然支持SSLv2。SSLv2是一种过时已久的加密协议,它的加密算法已经不能保证信息的安全。
但是实践中许多客户端依然使用SSLv2,获得服务端的支持后,加密协议降级到SSLv2,就存在被攻击的风险。
DROWN 漏洞其实是一个跨协议漏洞,如果服务器之间共享RSA密钥,即使像SMTP、IMAP、POP等协议,只要支持SSLv2和EXPORT加密,这些加密通信也会被解密。
因此OpenSSL官方现已全面禁用SSLv2协议,同时也关闭了SSLv3协议中的一些弱加密算法。
漏洞利用:
DROWN 漏洞的研究人员在还原该漏洞的利用攻击过程中,通过高度定制的GPU计算算法,在GPU集群上,去解密一个2048bit长度加密的RSA密文,消耗了18个小时;而在Amazon EC2 云服务上消耗了将近8个小时。
根据乌云安全中心一篇报道中指出,“对于常规的DROWN攻击,即直接攻击SSLv2中的协议问题而不依靠特定Lib库实现问题时,解密TLS会话攻击者需要抓取大约1000个用了RSA密钥交换的TLS会话,主动向服务器发出40000个SSLv2连接。然后本地做出2^50量级的加密计算。如果真有黑客想获取你登录某个网站的账号密码,至少要440美元的成本,还要劫持你的上网数据(比如跑到你家楼下劫持路由)”。
DROWN 漏洞虽然影响广泛,但是其繁琐的攻击步骤和较高的攻击成本,使得该漏洞的危害并非看上去那么严重。
漏洞检测:
安全无小事,虽然 DROWN 漏洞直接利用成本较高,降低了被攻击的风险,但是如果有其他漏洞配合 DROWN 漏洞进行组合攻击,危害将不可预期。
DROWN研究团队提供了在线检测,方便了用户自行检查,检测地址为:
可以直接使用 https://test.drownattack.com/?site=你要测试的网站 来查询
如果你是一名技术人员,还可以利用一些漏洞检测脚本,比如:
OpenSSL提供的检测脚本:
https://mta.openssl.org/pipermail/openssl-dev/2016-March/005602.html
DROWN Scanner:
https://github.com/nimia/public_drown_scanner#drown-scanner
不过,这些检测方法并不是百分之百准确的,都存在误报或漏报的可能。这里以DROWN scanner为例,简述下漏洞检测的过程和方法。