2015年3月17日
自心脏出血漏洞后,最近披露的FREAK攻击[1]再一次引发了人们对TLS(安全传输层协议)实现的安全性的关注[2]。然而,致力于客户端安全检查的freakattack.com只检查各种浏览器。在这篇博客中,我们研究iOS和Android应用程序在FREAK攻击下的安全状态。
FREAK攻击允许“攻击者拦漏洞客户端与服务器之间的HTTPS连接,迫使它们使用弱加密,攻击者可以破解加密并窃取或操纵敏感数据。”[1] 为使FREAK攻击获得成功,服务器需要接受RSA_EXPORT密码套件,而客户端需要在非出口密码套件中允许临时的RSA密钥。因此,攻击者可能会降低连接的加密强度,便于窃取数据。
截至3月4日,Andr​​oid和iOS平台的最新版本都容易受到FREAK攻击 [3]。因为iOS和Android应用程序可能包含OpenSSL库的漏洞版本,所以FREAK既是平台漏洞又是应用程序漏洞。即使厂商修复了Android和iOS系统的漏洞,当它们连接到接受RSA_EXPORT密码套件的服务器时还是会遭受FREAK攻击。苹果公司于3月9日修复了iOS 8.2的FREAK漏洞,但是一些iOS应用程序仍然容易受到FREAK攻击,原因就在于此[4]。
我们扫描了10,985个流行的、下载量超过100万的Google PlayAndroid应用程序,发现其中的1228个(11.2%)容易受到FREAK攻击,因为它们使用有漏洞的OpenSSL库连接到漏洞HTTPS服务器。这1228个应用程序的下载量已经超过了63亿。在这1228个Andr​​oid应用程序中,664个采用Android的捆绑OpenSSL库,564个使用自己编译的OpenSSL库;所有这些OpenSSL版本都容易受到FREAK攻击。iOS方面,14,079个流行iOS应用程序中的771个(5.5%)连接到有漏洞的HTTPS服务器。在低于iOS 8.2的版本上,这些应用程序很容易受到FREAK攻击。771个应用程序中的其中7个具有自己的OpenSSL版本,在iOS 8.2上仍然容易受到攻击。
漏洞统计
攻击者可能利用中间人(MITM)技术发动FREAK攻击,来截取并修改移动应用程序和后端服务器之间的加密流量。攻击者可以使用公知的技术,例如ARP欺骗或DNS劫持。攻击者不必实时破解加密,他们每周记录弱加密的网络流量,将其解密并访问内部敏感信息。
表1呈现了有漏洞的、属于安全和隐私敏感类别的Android和iOS应用程序的数量。不太敏感的类别,如体育和游戏,则不包含在内。表中的红色柱状代表应用程序开发人员修复的FREAK漏洞。对于Android应用程序,我们进一步绘制了同样类别的漏洞应用程序的下载量,如表2所示。蓝色柱状代表截止3月10日漏洞应用程序的下载量。
表1:易受FREAK攻击的应用程序的数量
表2:易受FREAK攻击的Andr​​oid应用程序下载量(对数刻度)
攻击场景
举例来说,攻击者可以对一个流行的购物应用程序发动FREAK攻击,窃取用户的登录凭据和信用卡信息。其他敏感的应用程序包括医疗、生产和金融应用程序。图1和图2显示了被攻击者破解后的漏洞应用程序和相应服务器之间的明文通信。
图1:解密的登录凭据
图2:解密的信用卡信息