openssl 又沦陷,drown漏洞影响1100万网站
事件描述:
openssl 最新的安全公告中指出,openssl sslv2协议export加密模块存在高危漏洞,研究者将该漏洞命名为drown。
攻击者可利用这个漏洞破坏网站加密体系,发起“中间人劫持攻击”,从而窃取https敏感通信,包括网站密码、信用卡帐号、商业机密、金融数据等。drown漏洞一经曝光,就在安全圈内引起了广泛的关注。
drown漏洞研究人员在互联网中扫描发现,该漏洞影响了全世界多达1100万个https网站,其中包括雅虎、阿里巴巴、新浪微博、新浪网、360、buzzfeed、flickr、stumbleupon 4shared 和三星等知名网站。
部分受影响网站截图
漏洞详情:
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研究团队提供了在线检测,方便了用户自行检查,检测地址为:
可以直接使用 ?site=你要测试的网站 来查询
如果你是一名技术人员,还可以利用一些漏洞检测脚本,比如:
openssl提供的检测脚本:
drown scanner:
不过,这些检测方法并不是百分之百准确的,都存在误报或漏报的可能。这里以drown scanner为例,简述下漏洞检测的过程和方法。
运行drown scanner检测漏洞,如下图(图中ip为百度某ip):
工具检测到该ip的主机存在漏洞,存在漏洞的cipher是des_64_cbc_with_md5。
检测工具检测的方法基本是先尝试与目标建立sslv2协议的连接,获取服务器支持的cipher suites,如果cipher suites存在rc2export, rc4export, rc4, des等加密模块(加密强度较低)就认为存在漏洞。
可以发现,在使用sslv2协议交互阶段,server hello报文中支持的cipher含有des_64_cbc_with_md5,之后客户端尝试使用这个弱加密与服务端通信,发送master key,如下图所示服务端可以使用该弱加密算法通信,所以认为存在漏洞。
修复建议:
1. 在业务不需要的情况下,建议全面禁用sslv2协议。不仅仅是https协议,还包括所有使用sslv2的上层协议
2. 或者禁用sslv2协议所有支持的cipher,安装漏洞cve-2015-3197的补丁。
3. 使用了openssl 1.0.2的用户应该立刻将openssl更新至1.0.2g;
4. 使用了openssl 1.0.1的用户应该立刻将openssl更新至1.0.1s;
点击以下链接,了解更多深信服安全资讯:
- / 2020-02-15
- / 2020-02-14
- / 2020-02-15