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 读者交流群)。
评论