说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

安全漏洞影响2.5万iOS应用?AFNetworking维护者发布回应

HTML文档下载 WORD文档下载 PDF文档下载
日前,一则关于著名的iOS网络通信库AFNetworking曝安全漏洞影响2.5万iOS应用的消息铺天盖地而来,引发众多开发者担忧,对此,其维护者Alamofire Software Foundation在GitHub上进行了回应。

日前,一则关于著名的iOS网络通信库AFNetworking曝安全漏洞影响2.5万iOS应用的消息铺天盖地而来,有1000多种应用程序被指称,由于SSL存在Bug,导致这些应用程序容易遭到攻击。对此,由Mattt Thompson一手创立的Alamofire Software Foundation在GitHub上对于AFNetworking曝SSL漏洞引发的众多担忧进行了回应,以下为全文:

背景信息

就此事,对于不熟悉AFNetworking的人,这里有一些与其相关的细节需要了解:

  • AFNetworking是一个第三方开源库,置于苹果内置框架之上,允许开发者向iOS和OS X应用添加网络功能。
  • AFSecurityPolicy是AFNetworking的组件之一,可根据应用程序设置的规则处理验证挑战(authentication challenge),包括通过HTTPS连接时,对服务端返回的X.509证书的评估。
  • 证书锁定(certificate pinning)是一项信息安全技术,它在标准TLS评估的基础上做了改进,通过服务器显式地发送证书来匹配包含在客户端的凭证(credentials)。AFNetworking从版本1.2.0开始一直提供证书锁定技术。
  • 中间人攻击(Man-in-the-Middle Attack, MitM)是在客户端和服务器之间插入攻击者本身,使两边都认为自己和对方在直接通信。
  • 这样的一种攻击方式在客户端和服务器之间会涉及某个不可信的Wi-Fi接入点。没有对响应进行恰当地验证,攻击者就可以拦截通讯信息,用户凭证或其他敏感信息因而会遭到泄露。
AFNetworking官方文档强烈建议应用程序要通过HTTPS进行通信,并且使用证书或公钥锁定技术来弱化MitM这种攻击行为。工程中所包含的示例代码遵循了这些建议,在应用程序中展示了证书锁定的使用方式。

事件回放

  • 2015年2月12日,AFNetworking 2.5.1发布。这一版本包含了一个补丁,修改了证书的安全策略验证方式,将SSLPinningMode修改为AFSSLPinningModeNone。验证挑战过程中,服务器的证书默认是不会被验证的,除非客户端存在与众不同的配置行为,比如使用SSL pinning这样的证书绑定技术。
  • 2015年3月12日,我们从这个GitHub Issue开始意识到上述的修改行为所造成的影响。
  • 2015年3月26日,来自Minded Security Research的Simone Bovi和Mauro Gentile发表了一篇博文,详细说明了AFNetworking 2.5.1潜在的MitM方面的漏洞。
  • 同样在2015年3月26日,AFNetworking 2.5.2发布。这个版本恢复了先前的证书安全策略评估方式。如果安全策略将validatesDomainName设置为YES,那么SSLPinningMode将会被修改为AFSSLPinningModeNone。
  • 2015年4月20日,AFNetworking 2.5.3发布了,该版本做了额外的修改。对所有的安全策略默认设置validatesDomainName为YES。
  • 2015年4月21日,GitHub上新开了一个Issue,要求完善AFNetworking的文档和与安全相关的功能特性。我们正就此积极努力地对参考材料做全面彻底的修改。
  • 还是在2015年4月20日,来自SourceDNA的Nate Lawson发表了一篇博文,宣称某个工具可以识别苹果商店中使用了AFNetworking2.5.1的应用程序。包括来自Ars Technica的Dan Goodin在内的许多记者,在其公布的文章中都引用了该博文并提及了博文的作者。这些公开发布的内容都没有就AFNetworking维护人员的解决方案进行整理而置评。
  • 2015年4月24日,SourceDNA在其后续发布的博文中声称,存在更多带有安全漏洞的应用程序,来自Ars Technica的Dan Goodin随后也发表了一篇带有相同效果的文章。需要强调的是,没有任何一篇公开发表的文章对AFNetworking维护人员的解决方案进行整理而置评。

使用AFNetworking的开发者们可以做什么?

  • 如果应用程序通过HTTPS通信,却没有启用SSL pinning技术的话,应用程序就可能容易受到所报道的MitM攻击。

AFSecurityPolicy的官方文档中的内容:

将固定的SSL证书( pinned SSL)添加到应用程序中,可以帮助应用避免中间人攻击以及存在的其他漏洞。大力鼓励应用程序在处理用户数据或财务信息的时候,所有通信途径都通过HTTPS协议,配置并启用SSL pinning技术。

无论在什么时候,遵循这些建议的应用程序都不应该存在上述安全漏洞。

  • 如果应用使用HTTPS进行通信,并且启用了SSL pinning技术,就不容易遭到所说的MitM攻击。

很大一部分应用程序使用AFNetworking是通过推荐的步骤启用了SSL证书或public key pinning机制的,这些应用程序不太不容遭到上面说的MitM攻击。

  • 如果使用的是先前的版本AFNetworking,我们强烈推荐您升级到版本2.5.3。

AFNetworking 2.5.1和2.5.2包含的默认配置不适合产品级应用程序——特别是如果不进行额外的配置,就不会提供必要的TLS评估。

AFNetworking 2.5.3默认配置更加安全,即使不使用SSL pinning也会进行域名验证。

  • 如果使用NSURLConnection或NSURLSession代替AFNetworking的话,你仍然需要检查验证挑战的实现方式。

苹果内置的NSURLConnection和NSURLSession,还有Security框架所提供的API,都具有对凭证验证的安全实现方式。但是,像任何API一样,某个应用程序的安全性取决于这些API的使用方法。

是否使用AFNetworking本身并不能保证你的应用程序能够灵活应对MitM那样的攻击。是否能够灵活应对攻击完全取决于应用程序使用可用API的方法。在产品环境下,测试应用程序的健壮性和网络安全性最终是开发人员的职责。

对负责任的安全研究和新闻工作的看法

对于终端用户来说,安全研究人员在软件安全方面起着核心作用。研究人员与软件开发人员共同努力,通过遵循既定的负责任的漏洞披露(responsible disclosure),可以快速修复漏洞。同时,将当前用户的风险降到最低。

然而,我们对一些研究人员的做法和一些对AFNetworking的披露感到失望。作为人尽皆知的话题,信息安全从未如此重要。安全研究人员和记者拥有独特的机会来让读者了解这些事实。但不幸的是,这样的披露方式常常通过制造恐惧来增加点击量,而不是客观详实的报道。

尚未有确切的方法可以表明多少应用程序受此问题的影响;这些对安全问题严重程度的揣测摧毁了对问题准确和适度的回应。同样地,根据揣测提出的权利主张对企业和其客户也帮助甚少。

事实上,编写安全的软件一直以来都是一项巨大的挑战。这需要多学科的工程师们一起合作完成。这是一个极其重要的任务,最好由理性且富有责任心的人参与。

作为软件维护人员,我们有很多事情可以做得更好,并积极采取措施来完善自身的组织和流程。从今天起,我们期待与信息安全社区的成员紧密合作,负责任地寻找并解决任何安全漏洞。

对负责任的开源项目维护工作的看法

我们真诚地向使用AFNetworking的开发者和iOS整个开发者社区表示歉意。

作为著名开源项目的维护者,我们有责任提供与高标准相契合的软件,该软件将作为应用程序不可或缺的一部分。我们却没有对应该尽快更新的版本做出回应。我们未能向您有效传达至关重要的安全信息。这所有的一切,我们表示真诚的歉意并负全责。

在未来的几周内,我们将推出重组后的AFNetworking及其相关项目,以确保稳定的通信顺利进行。从用户的角度看,这意味着更加频繁地发布版本,更高的透明度,处理问题与合并请求过程中更多的反馈,我们为此而感到兴奋。

(翻译/白云鹏 责编/唐小引)

文章来源:GitHub


CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面,如果您有想分享的技术、观点,可通过电子邮件(tangxy#csdn.net,请把#改成@)投稿。

第一时间掌握最新移动开发相关信息和技术,请关注mobilehub公众微信号(ID: mobilehub)。


Only the original thread that created a view hierarchy can touch its views的相关 Android上的Back键事件捕获 Android蓝牙API之BluetoothSocket类(2) Android蓝牙API之BluetoothSocket类 Android蓝牙API之BluetoothAdapter类(1) Android蓝牙API之BluetoothAdapter类(2) AndroidManifest.xml文件剖析 (三) AndroidManifest.xml文件剖析 (二) AndroidManifest.xml文件剖析 (一) MOTODEV初体验,高效Android开发工具 Simple让BASIC语言编写Android程序 MOTODev试用报告- Android开发效率之源 安装MOTODEV Studio for Android版方法 Android开发工具-motoDEV studio介绍 Android过后Chrome OS又是如何开发? Android安全模型导致开发时功能受限 Android导出一个JAR库 APK汉化原理及方法 APK文件格式分析,Android反编译入门(一) ApiDemos中的Android Widget例子解析 APK签名导出向导 - Use the Export Wizard 剖析Android自带Widget - Music播放器 剖析Android自带Widget - Clock指针钟表 C#取得Excel工作簿工作表名称 C#中用Automation自动化方式对Excel的操作 VB如何打开或保存为有密码保护的Excel sheets工作表 VB在Excel表格文件中搜索指定内容 VB复制Excel表到另外一个Excel中 Java实现生成网站快照缩略图片 php实现生成网站快照缩略图片 C#实现生成网站快照缩略图片 怎么设计ADSL的路由!! javaben的释放问题 用NMUDP如何在Client端和Server端之间传递对象呢? 为什么程序员没人爱? 指点迷津啊??? 关于DataGrid的一个问题 VCD碟的.DAT文件转换成MPEG格式? 中秋节快乐!散!顺便问一下大家都吃什么品牌的月饼?五点钟准时结贴!!!!!!!!!!!! 求助!!!鲁文易盘无法驱动 如何获取提交表单的内容 Ado 问题 oracle中删除一个用户,用语法如何写 北京的兄弟们你们找工作通过哪几种方式 请问哪儿有cobol的编译器? 请问考系分的兄弟,都在看什么辅导书啊? 不能解决的给分,解决的给钱,时间限制在,13日之前!!!!!!!!!!!! 如何重新定义超连接的样式? ini和注册表能不能一起用? 调制解调器 SYNC灯不亮。 hehe GCC不认识sockaddr_in,但认识sockaddr,哪位大侠指点一下是什么地方没有配置好 asp中的过程和函数是否可以传递两个以上的参数? 假设我在dataGrid中的修改某一个单元格内容之后,焦点还没有离开,再去保存,就保存不了! 求助!!!鲁文易盘无法驱动,急!!!!!!!!!! 为什么只能用localhost访问? 还是烦人乱码问题~~JSP 连不上网。 人家说我有热情没天分,当不了程序员 中秋节给大家助助兴,小游戏一只,最终获胜的可获全部分数,100大分哦! 简单问题,急! 请教零长度问题(不好意思没分了救命啊) 请教零长度问题(不好意思没分了救命啊) sizeof的问题 今天的最近一问.... 写一个参数有默认值的函数出现的问题! 请教零长度问题(不好意思没分了救命啊) 有个关于可见性的问题,请指点, Delphi6中控制Excell2000的Chart的问题 看哪个地方出名人多 c++ 求学 (更上一层楼) 请教零长度问题(不好意思没分了救命啊) 高分寻求jtest4.5的破解 或注册方法 关于批量删除不同目录下相同文件的问题。 如何在VFP中运行VFP代码? 如何调用chm帮助文件? iptables问题 请教零长度问题(不好意思没分了救命啊) 大家來討論工作的問題 能用c语言编有关网络的程序吗?谢谢大侠们了:) 要在程序中控制在DBCHART显示不同颜色部分的内容及数值,如'34 丰田',来者有分? 提个建议:在祝福 璇玑大力 的贴子中,有不少的“名句妙词”,我们花点时间,搜集于一贴,同意的举手!(我的分数太紧张) 1是不是单数项 奇数+1=? 帮助修改初二的英语作文exercise can help people to be good in healthy.my father thinks runs is a good way to keep healthy,so he always runs.my mother thinks eats fruit and vegtables can keep healthy,she buys more vegtables and fruit.but i t 哪位高手为我的英语作文添一个结尾啊?由于本人水平有限,所以想不出一个结尾,文章大体是讲如何节约用电,结尾最好不要号召性的语句 6个连续奇数的和是168,六个奇数分别是什么今天就要 怎样使6个奇数的和为100 为什么11/6是奇数 为什么有些植物长在水面上?为什么有些植物长在水面上,为什么呢? 德意志、意大利从前有哪些诸侯国?包括选侯国、公国、自由城市、共和国、王国如奥地利、普鲁士、巴伐利亚、萨克森、巴登、符腾堡、黑森、汉诺威、不来梅、汉堡、吕贝克、米兰、伦巴 一是不是奇数 At least that's the problem I was having getting it figured out.我语法不好,having getting it figured out .这是什么鬼东西...语法上...这句子不是我写的。是美国佬。我搞不懂的是was having getting....首先,这是过去 巴黎迪士尼出事故致5岁男童落水 已无《世界新闻报》窃听案8名被告中有3人日本政府将向救童中国留学生颁发感谢信数据显示日本近5年间借智能手机偷拍案《世界新闻报》窃听案8名被告中有3名波兰外长:乌克兰与欧盟结盟协议签署可纽约遭飓风袭击一周年 数千灾民仍无家德国380公斤女子出门就医 消防队出小猫将斗牛犬尾巴当做逗猫棒玩 网友直俄吁欧盟勿逼迫独联体国家在二者之间做突尼斯发生自杀式袭击 造成袭击者自身两架飞往香港航班 途中遇气流49人伤美国特使未能访朝 朝鲜称原因在美方美将扩大在菲军事存在滇川交界5.9级地震3人遇难36人受一批法规和部门规章 今起开始施行广惠高速两货车追尾 4人当场死亡2人七月数宗热点新闻有最新消息“减负十条”考验改革者 三重“落地智今起捐献器官须通过系统分配编发煽动非法聚集信息北京王府井发生 持刀伤害女童案民国投机者傲世法则校园全能高手湛蓝徽章逍遥行庶难从命武傲天下娇妻如云乌合之众家里养个狐狸精超级黄金左手五台山旅游宏村旅游阳朔旅游济南旅游千岛湖旅游同里旅游长沙旅游龙门石窟旅游深圳旅游周庄旅游哈尔滨旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘