AFNetworking 是一个开源代码库,允许开发人员向iOS和OS X应用添加网络功能。2015年4月20日, 安全分析创业公司SourceDNA 曝光 了AFNetworking中一个影响了1500多个iOS应用的漏洞。不过很快, AFNetworking 2.5.2 就修复了该漏洞。然而三天之后,SourceDNA又 曝出 了AFNetworking中一个更为严重的漏洞。该漏洞至少影响了苹果应用商店中25000个iOS应用。
据Arstechnica 报道 ,该漏洞是因为AFNetworking默认未检查证书中的域名与它所保护的HTTPS服务器的域名一致所导致的。攻击者使用任意合法的SSL证书搭配任意域名就可以利用该漏洞进行中间人攻击,即使这些数据是通过SSL协议传输。
SourceDNA公司创始人Nate Lawson告诉Arstechnica:
> 如果一个应用使用了这个有缺陷的库,那么拥有任意合法证书的攻击者都可以窃取或修改由这个应用发起的会话。这个是因为,虽然证书经过验证,可以保证是由合法的证书颁发机构所颁发,但证书中的域名没有验证。比如,攻击者提供域名“sourcedna.com”的一个合法证书就可以伪装成“microsoft.com”。
SourceDNA公司的 Ivan Leichtling 最早发现了该漏洞。但让他们觉得奇怪的是,AFNetworking 2.5.2没有修复该Bug,因为在3月底的时候,AFNetworking维护者就号称已经 通过更新代码修复了它 。AFNetworking2.5.2修复了攻击者可以使用自签名证书监听iOS应用与其服务器之间加密通讯的问题,但没有认真校验可信签名证书是否是颁发给某个合法域名,从而导致了新的安全问题。目前任何使用 AFNetworking 2.5.3 以下版本的应用都可能将数据暴露给攻击者。SourceDNA建议开发人员,如果使用了AFNetworking,务必要升级到最新版本。并且还需启用公钥或者“证书锁定(certificate pinning)”。
SourceDNA提供了一款免费 在线检测工具 ,iOS用户可以通过该服务检查他们使用的应用是否仍然处于易受攻击的状态。之所以没有提供一个易受攻击的应用的列表,是为了防止被攻击者滥用。但大量知名应用都面临这一漏洞的威胁,包括但不限于雅虎和微软的iOS应用以及国内外众多金融类Apps,等。
感谢魏星对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。