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

安全漏洞影响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)。


用Visual Basic编写托盘程序 用Visual Basic窗体背景花纹的实现 用Visual Basic设计窗体背景花纹 用Visual Basic设计更好的用户界面 用Visual Basic设计三维图形按钮 用VisualBasic制作半透明窗体 运行时改变控件大小的两种方法-VB资料 运行中隐藏/显示窗口标题栏-VB资料 在ListBox适当设定水平滚动条的宽度-VB资料 在VB中利用API实现窗体的平滑显示 在vb中让控件大小和位置随着表单的大小成比例变化的方法 在VB中实现闪动标题栏 在VB中实现位图的透明放置 在VB中使用数据窗体设计器插件 在VB中制作单独程序封面的两种方法 在VB中制作透明按钮 在Visual Basic中如何拖动窗体或控件 在Visual Basic中显示动态运行进度 在菜单中加入图标 -VB资料 在程序中调用关闭Windows对话框-VB资料 在任务栏中显示无边框窗体的图标-VB资料 在系统菜单上添加自定义菜单项 -VB资料 在运行时动态生成多个相同的控件?-VB资料 在最小化状态时提供提示 -VB资料 暂时禁止窗口更新-VB资料 VB怎样得到文本框(TextBox)中的文本行数? 制造出透明的Form -VB资料 VB制作半透明窗体和形状不规则的窗体 VB制作方向按钮 VB制作渐变的窗口背景色 字体闪烁 -VB资料 简单问题:在WIN98中怎样写代码通过注册表判断MODEM在哪个端口? 如何在执行时返回query中的一个查询之值 能否提供50元邮购上半年《程序员》的业务? 给定一个email地址及DNS服务器地址,如何检测此email地址对应的SMTP服务器?(请ludou,funtek等进来领分) 如何在mfc下编译一个c源文件 高手请帮忙解决这个难题-关于.vox文件 请问!想去上海的外企,英语水平要多高才可以?口语重要吗? 在sybase中如何建表的时候把中文注释加入?以便在建数据窗口的时候label显示中文。 请问win2000_Server的service pack在哪有卖,D版?北京? 安装JBuilder5对机器有什么性能要求吗(内存、cpu...)?Thanks!(内空) 关于PB作为OLE SERVER的问题 我想做个启动画面的窗口 关于MYSQL的问题 数据库高手请进,值得一看 怎么从文本文件里取出其内容? 请大家帮忙看一下,关于Delphi的三层MIS开发 如何获得经典的C++/MFC方面的电子文档,中英都行,谢谢! 压缩中提到的文件头有什么作用 , 请问各位专家,在网页上如何制作视频点播?有几种方式! 我报了中程谁有历年的中程试卷? 我收到的信都是?号,怎么看???? VB中是否有移位操作符??是否有_能够得到数据类型宽度的函数? 哪里有core java的e版down啊? 有事好商量!请进! DLL编程错误,请高手指教一下!! 活见鬼,真气人....... 问一个trigger问题? 问一下:我的char*都用_T("asdfsafd")表示了,资源也没任何问题,可有时候运行程序显示乱码 在论坛里,发一个帖子新开一个窗口,当发完后让原来那个窗口刷新一下 我的机子到底怎么回事???? 我试试.. CListCtrl中如何选定整个一行? 来到济南天气太热,特来送分 ★★★★★ 见于现在伪ID和盗用密码的现象十分嚣张,我提议…… ★★★★★ 请教各位,我用vb6.0访问ms sql7.0数据库,为什么有时出现,“过期,数据已超时?” 请问COM和DLL有什么区别和联系?(30分) 关于侯老师 win95-a-developers-guide 一书的源配书... ISAPI中不能存取ASP中的Session、Application变量?高手你老人家在哪里? 大家来看看这些招聘题目合不合适 提一个网页制作的问题哈,大家不要扔西红市啊,网叶制作可是程序员的基本技能之一 activeskin里的skinbuilder有谁用过???来讨论吧 我在msdn上看到vb中的字符串有两种:定长字符串和变长字符串。请问如何分别声明这两种类型? 怎样在ADO中引用已打开的recordset的某一字段值,请给几个例,谢谢了! seedundersnow and holyfire help me!about 8253! 谁有cute ftp 4.2.6 beta的注册码 请问如何把页面查询到的记录导入到Excel中呢? 有用过TAdvStringGrid的吗?OnGetEditorType( )为何不被调用? 请教高手如何用Xsl编制函数控制Xml??急急 哪位给一个MD5的例子!谢谢了 长春的李延生来领分 求救:一个VC中多线程的问题 八加九等于几 一共有360千克的水果糖,每袋4分之一千克,5小时已经装完6分之5,平均每小时装多少袋? 6元=()元 6分=()元 3角5分=()元 10元1角=()元 简单运算1986-1983+1980-1977+.12-9+6-3 把六分之五千克的糖,平均分成五份,每份是五千克得几分之几,提出理解快急啊快~~~~~~~~~~~~~~~~~ 有一个三角形的周长是3分之2分米,其中两条边的长度是4分之1分米,6分之1分米,这个三角形 小玲的房间地板面积是14平方米,如果选用边长0.3米得正方形地砖铺地,至少需要多少块这样的方砖 比六分之五千克多三分之一千克是多少千克,比六分之五千克多三分之一是多少千克? 有一个三角形的周长是3分之2分米,其中两条边的长度是4分之1分米,6分之1分米,这个三角形是什么形状的三角形? 小玲的房间地板面积是14平方米,如果选用边长0.3米的正方形地砖铺地,至少需要多少块这样的方砖?(得保留整数) 第一道:1000米的十分之七是( ) 第二道:120分的六分之五是( )分直接说得数就行 一个等腰三角形,其中两条边长度分别是5分之3分米、4分之1分米,求周长 一间房子长18米,宽15米,它的面积是多少平方米?用面积是9平方分米的正方形地砖铺地,需要多少块? 4分之三千克的六分之五是多少千克.八分之7米的七分之三是多少 米 一个等腰三角形,其中两条边的长度分别是五分之二米,四分之一米,求这个三角形的周长? 一个会议室的长是15米,宽是6米.用面积是9平方分米的正方形瓷砖铺地,需要这样的瓷砖多少块? 18个六分之五是( );120米比( )米多25%. 一个等腰三角形,其中两条边的长度分别是2/3米和1/4米,求这个三角形的周长.要式子 一个会议室的长15米,宽6 米.用面积是9平方分米的正方形瓷砖铺地,需要这样的瓷砖多少块? 1,2,3,4,5,6,7,8,9,10哪个是质数 一个等腰三角形,其中两条边的长度分别是三分之二米,四分之一米.求这个三角形的周长.学校举行口算比赛,设一,二,三等奖各若干名.获一,二等奖的占获奖总人数的十分之九.获一,二,三等奖的 铺一间房间的地,用边长3dm的正方形地砖铺,正好1600块,如果改成用边长4dm的地砖铺,需要多少块? 三分之一,2,1,-6,0,9,7,3,-9,14,-1.4,二又五分之一【自然数,整数,质数,三分之一,2,1,-6,0,9,7,3,-9,14,-1.4, 二又五分之一【自然数,整数,质数,台数各分类.】 一个等腰三角形的周长是70厘米,相邻的两条边长度比是1比3.这个三角形的底是多少厘米 一种瓷砖长4dm,宽3dm,如果用这样的瓷砖铺一个正方形,正方形边长最小是多少分米?需要多少块这样的瓷砖?反正我是按作业来打的) 八分之九至少加上()个九分之一,和是最小的质数? 一个三角形的周长是十分之七分米,其中有两条边的长度都是五分之一分米,还有一条是多少分米?这是一个什么样的三角形? 一间房间,用边长2分米的地砖铺地,需要用144块,如果用边长为3分米的地砖铺地,需要多少块? 一根六分之五米长的钢绳重3千克,这种钢绳每米重多少千克?每千克钢绳有多长? 一个三角形的周长是12/7分米,其中有两条边的长度都是6/1分米,还有一条边长是多少分米? 房间的地面是正方形,无论选择边长50厘米的正方形地砖铺地,还是选择边长60厘米的方砖,都正好铺满,小明房间的地面至少是多少平方米 一根6分之5米长的钢绳重3分之2千克,这种钢绳每米重多少千克?每千克钢绳有多长? 一个三角形的周长是7/10分米,其中有两条边的长度分别是1/5分米和3分之一分米,还有一条边的长度是多少分米? 聪聪的房间面积为17.6平方米,房间地面恰好由110块相同的正方形地砖铺成,求每块地砖的边长是多少?用方程解答贺州市2013年春季学期段考7年级试卷 数学一元一次方程哦 一根六分之五米长的钢管重2千克,这种钢绳每米重多少千克,每千克钢绳有多长 用一块长40厘米,宽30厘米的长方形红布做直角小旗,小旗的两条直边分别是10厘米和5厘米,这块布最多可以做 小亮的房间面积为17.6平方米 房间地面恰好由110块相同的正方形地砖铺成 每块地砖边长多长?房间面积是17.6 不是 地砖面积 一根6分之5米的钢绳重3分之2千克,这种钢绳每米重多少千克?每千克钢绳有多长? 用一块长为120厘米、宽为96厘米的红布,最多可以制成底是8厘米、高是20厘米的直角三角形小旗多少面?损耗忽略不计 小明房间的面积是10.8平方米,房间地面由120块相同的正方形地砖铺成,每块地砖的边长是多少?用方程! 一根5/6米长的钢绳重3千克,这种钢绳每米重多少千克?每千克钢绳有多长? 用一块长40cm,宽30cm的长方形红布,做直角三角形的小旗,小旗的两条直角边为10cm,5cm,这块布最多可以做 小明房间的面积为18平方米,房间地面由200块相同的正方形地砖铺成,每块地砖的边长是多少? 有一座建筑物,在地面上A点测得顶点C的仰角为30度,向建筑物前进50M 到B点,又测得C的仰角为45度,求建筑物的高度,精确到0.1米 用一块长40厘米、宽30厘米的长方形红布做直角三角形小旗,小旗的两条直角边分别是10厘米和5厘米.这块布最多可以做多少面小旗?要算式,要图! 计算(1-1/10)X(1-1/9)X(1-1/8)X……(1-1/2)的值是1/10还是1/20 小明的房间面积为10.8平方米,房间店面恰有120块正方形地砖铺成每块边长几米? 二元依次解数学题王大伯承包了25亩土地,今年春季改种茄子和西红柿两种大棚蔬菜,共用去成本44000元.其中种茄子每亩成本为1700元,获纯利2400元,种西红柿每亩成本为1800元,获纯利2600元,王大伯 计算:(-1.8*10^-10)/(9*10^8) 9.07千米等于()千米()米?17/4时=()时()分?2.38升=()升()毫升 某市出租车收费标准为:3千米及3千米内收费6元;3千米以上每1千米收2元.现在贝贝有28元钱,他想乘出租车去离家18千米外的外婆家,钱够么?(写出计算过程) 十个八加九个九等于 请问2|9公里等于几千米? x-2xy=3是2元1次还是2元2次 请问8分之1加9 分之1等于多少如何计算出来 17公里等于多少米啊?谢谢! 6元3角5分=( )元=( )角=( )分 送钱了,8加9等于 把六分之五的糖,平均分成五份,每份是五千克得几分之几,提出理解 3角5分用分数是多少元?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn