最近,苹果发布了8.1.3系统更新。从更新日志来看,变化不大(修复bug,提高稳定性和性能),但苹果修复了一个“漏洞”,也就是之前提到的“面具”。
科普1:伪装漏洞系统给每个应用一个安全区(沙盒),一个应用无权获取其他应用沙盒中的数据。每个应用都有一个BundleID,假应用只要拥有相同的BundleId且拥有合法权利(通常是重新打包并由合法企业证书签署),就可以直接替换原应用并获得应用的所有权利。
比如手机上安装了微博的官方客户端,客户端获得了你的许可,可以访问相册、通讯录、地理位置等。如果有人做了一个假的应用,通过一些渠道,比如在黑应用商店把它安装在你的手机上,它会直接取代官方客户端。你可以在打开你的地址簿的瞬间,将应用程序中存储的敏感信息发送给肇事者的服务器,但你完全没有意识到这一点。
8.1.3的安全更新重点解决了这个问题。下面详细解释一下。
以下两个关键错误已被修复:
CVE-2014-4493是前面提到的掩码漏洞。
CVE-2014-4494对于从非应用商店下载的应用,系统通常会在打开前提示该应用不可信,所以要不要信任。这里提到的bug可以绕过这个系统提示。
其他几个bug也非常有趣,比如动态加载和执行未经批准的代码。感兴趣的同学可以自己学习Mach-O。
2.非官方科普AppStore安装应用的实现原理为什么要从非官方App Store安装应用?大概有几个原因:
只在企业内部使用的应用程序不需要放在应用程序存储中。比如银行等敏感企业的内部管理应用,出于安全考虑,不能公开下载给所有人,即使有人在没有内部账号的情况下下载,也不能使用。现在的应用太多了,放在官方店铺就会泛滥。而且官方门店基本没有可以给点钱帮忙推广之类的“关系后门”。因此,集成墙、应用赚钱等各种行业,都是依靠人民的人海战术来刷申请单,提升在申请单上的地位,增加曝光率,达到推广的目的。如果店铺被“自己人”控制,一切都解决了,就应该推荐,推荐,开始。官方店铺审批时间太长,数量不定。很难排队等半个月直到审批完成,2分钟后拒绝通过,然后修改申请或说明,再次提交,然后等待很长时间。有些应用使用iOS没有公开的接口来做苹果目前不认可的高级功能,比如“呼叫防火墙”和WiFi接入。应用是免费的,你知道:)。还有两种实现原则:
使用合法企业证书重新包装并签署申请。让系统认为这个应用是大型企业的内部应用。破解FairPlay(DRM,苹果的版权保开发者_如何学JAVA护方案)。使用电脑上的iTunes权限替换手机中用户的购买信息,这样手机就有可能被误认为是正版用户。现在市场上的各种“移动助理”基本都是用这种方法。冲击的目的是打破公平竞赛。苹果还发布了iTunes 12.1,改为64位架构,使得各种助手失效。媒体称这次更新“每个助理都死了”、“屏蔽所有助理”等等。
对于企业证书重签名,不影响正常情况下企业证书的签名(即企业证书直接在Xcode中编译打包),只对企业证书进行重新打包。因为只有企业证书本身存在才能让大企业更方便,后来被中国人糟蹋了(最近被苹果大规模撤销)。
只是目前的重新打包逻辑大部分还没有跟进,估计过一段时间就兼容了。但是,除非重新启动,否则无法在8.1.3上安装所有打包的应用程序。而且企业证书经常被滥用,导致苹果被撤销。使用新证书打包时,由于上述逻辑,无法安装应用程序。
因此,这种方法在企业证书发放中的应用将在不久的将来退出历史舞台。
注1:证书有三种(开发者账号),分别是个人、公司、企业、企业证书,是以299美元的价格向Apple申请的证书,只能用于在企业内部分发应用,不能提交到应用商店,经常被误认为是公司证书。
精彩评论