iOS又出新漏洞,影响2.5万应用
上周,AFNetworking接连被爆出两个SSL漏洞,通过中间人攻击可以截获并篡改SSL流量,可能导致iOS用户账号密码泄露和网银支付过程被劫持。根据国外安全机构SourceDNA的研究,苹果Appstore上有约2.5万个应用使用了受影响版本的AFNetworking。
实际案例:利用漏洞“偷取”话费
小杰想用iphone为自己的手机充钱,可是付款成功后手机话费一直没有到账。而在咖啡店的角落,小黑的手机已经收到了10086充值成功的短信提醒。、
原来小黑利用了AFNetworking的漏洞,劫持了小杰的付费过程,为自己的手机“偷取”了话费。如SourceDNA所说,这次AFNetworking漏洞影响面颇广,小编实际测试了业界诸多app后不禁背脊一凉:国内多款APP均存在这个漏洞,泄漏了帐号密码和各种用户的敏感信息。
什么是AFNetworking?
AFNetworking是iOS和Mac OS X上的一个开源网络框架,使用方便。据统计有超过2万个iOS程序使用到了AFNetworking,目前官网最新版本为2.5.3。
细看这两个AFNetworking SSL漏洞
实际上在过去的一周中,AFNetworking接连被曝光了两个高危险漏洞。
在4月21号,第一个漏洞被曝光:AFNetworking库在认证SSL证书可信过程中存在严重的逻辑漏洞,不会去校验证书的有效性和合法性,任何简单的中间人劫持即可获取并篡改明文数据。但不幸中的万幸是,这个漏洞仅发生在2.5.1这个版本中。
更悲剧的事情发生在4月24号第二个漏洞曝光时,虽然这个漏洞的危害跟第一个很相似,但影响所有版本的AFNetworking!简单来说,所以使用到AFNetworking的APP都可以被攻击。这个漏洞是AFNetworking在进行https通信时,认证SSL证书可信过程中存在一个的逻辑漏洞,在默认情况下并没有进行域名校验。该漏洞允许攻击者使用任意一个合法的证书绕过SSL的证书认证,从而通过中间人攻击获取并篡改明文数据。例如,攻击者可以使用一个fake.com的证书截获与tencent.com进行https通信的明文数据。
目前,AFNetworking已经在2.5.3版本中修复了上述两个漏洞。
管中窥豹
翻看代码发现,AFSecurityPolicy.m的evaluateServerTrust函数用于校验服务器合法性。当validatesDomainName为YES时,会进行域名校验;反之,则不进行域名校验。而在存在问题的地方是,AFNetworking中没有代码去初始化validatesDomainName的值,而Obj-C语法会默认设置validatesDomainName的初始值为NO(0),因此默认情况下AFNetworking会跳过域名校验的过程。
小编好奇地翻看了AFNetworking的历史版本。2.5.0版本将validatesDomainName默认值从YES改为NO,2.5.3版本又回滚回去了。再往前翻,发现AFNetworking在2014年1月16日的2.1.0版本中才添加了域名校验的功能。域名校验代码几经修改,仍然屡现bug。小编不得不质疑开发者对于SSL协议安全性的认识。
这里不得不思考,在使用第三方库(尤其是涉及网络传输和加密的库)之前,应该评估其安全性。否则随之而来的将是不断的漏洞修复和版本更新。Openssl便是一个典例。
后记
吃一堑长一智的小杰再也不使用公共场所的wifi进行网络支付交易了。
相关链接
https://sourcedna.com/blog/20150424/afnetworking-strikes-back.html
https://github.com/AFNetworking/AFNetworking/issues/2619
原来小黑利用了AFNetworking的漏洞,劫持了小杰的付费过程,为自己的手机“偷取”了话费。如SourceDNA所说,这次AFNetworking漏洞影响面颇广,小编实际测试了业界诸多app后不禁背脊一凉:国内多款APP均存在这个漏洞,泄漏了帐号密码和各种用户的敏感信息。
什么是AFNetworking?
AFNetworking是iOS和Mac OS X上的一个开源网络框架,使用方便。据统计有超过2万个iOS程序使用到了AFNetworking,目前官网最新版本为2.5.3。
细看这两个AFNetworking SSL漏洞
实际上在过去的一周中,AFNetworking接连被曝光了两个高危险漏洞。
在4月21号,第一个漏洞被曝光:AFNetworking库在认证SSL证书可信过程中存在严重的逻辑漏洞,不会去校验证书的有效性和合法性,任何简单的中间人劫持即可获取并篡改明文数据。但不幸中的万幸是,这个漏洞仅发生在2.5.1这个版本中。
更悲剧的事情发生在4月24号第二个漏洞曝光时,虽然这个漏洞的危害跟第一个很相似,但影响所有版本的AFNetworking!简单来说,所以使用到AFNetworking的APP都可以被攻击。这个漏洞是AFNetworking在进行https通信时,认证SSL证书可信过程中存在一个的逻辑漏洞,在默认情况下并没有进行域名校验。该漏洞允许攻击者使用任意一个合法的证书绕过SSL的证书认证,从而通过中间人攻击获取并篡改明文数据。例如,攻击者可以使用一个fake.com的证书截获与tencent.com进行https通信的明文数据。
目前,AFNetworking已经在2.5.3版本中修复了上述两个漏洞。
管中窥豹
翻看代码发现,AFSecurityPolicy.m的evaluateServerTrust函数用于校验服务器合法性。当validatesDomainName为YES时,会进行域名校验;反之,则不进行域名校验。而在存在问题的地方是,AFNetworking中没有代码去初始化validatesDomainName的值,而Obj-C语法会默认设置validatesDomainName的初始值为NO(0),因此默认情况下AFNetworking会跳过域名校验的过程。
小编好奇地翻看了AFNetworking的历史版本。2.5.0版本将validatesDomainName默认值从YES改为NO,2.5.3版本又回滚回去了。再往前翻,发现AFNetworking在2014年1月16日的2.1.0版本中才添加了域名校验的功能。域名校验代码几经修改,仍然屡现bug。小编不得不质疑开发者对于SSL协议安全性的认识。
这里不得不思考,在使用第三方库(尤其是涉及网络传输和加密的库)之前,应该评估其安全性。否则随之而来的将是不断的漏洞修复和版本更新。Openssl便是一个典例。
后记
吃一堑长一智的小杰再也不使用公共场所的wifi进行网络支付交易了。
相关链接
https://sourcedna.com/blog/20150424/afnetworking-strikes-back.html
https://github.com/AFNetworking/AFNetworking/issues/2619关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 立德少年时 树人天地间 7904331
- 2 女子罕见被控迷信罪 “供奉”2.1亿 7808398
- 3 人民币再次升值 7712067
- 4 中国继续成为全球增长的重要引擎 7615916
- 5 央视曝光天价疗养院骗局 7522817
- 6 山东东营一对新人用1000元办了婚礼 7424468
- 7 吴秀波被执行6200万 7329248
- 8 16岁少年靠一只烤鸡日入过万 7238382
- 9 飞机凌晨在兰州上空盘旋 轰鸣数小时 7140859
- 10 海南自贸港18日正式启动全岛封关 7045612







站内编辑
