热更新是一种各大手游等众多 App 常用的更新方式,即用户通过 App Store下载App之后,打开 App 时遇到的即时更新。
2017年6月,AppStore 审核团队确实针对 AppStore 中“热更新”的 App 开发者发送邮件,要求移除所有相关的代码、框架或 SDK,并重新提交审核,否则就会在 AppStore 中下架该软件。
究竟怎么回事?“热更新”到底有什么安全隐患?
以下为雷锋网(公众号:雷锋网)编辑与360涅槃团队(Nirvan Team)安全研究员王纬问答实录:
1.雷锋网:苹果应用商店的“热更新”最初是因为什么需求产生的?
王纬:早期的 AppStore 审核比较慢,开发者遇到线上的 Bug,会因为审核周期的问题造成 Bug 修复不及时。
很多公司尤其是个人开发者追求产品发版的速度,造成产品上线前没有经过非常全面的测试,他们希望通过“热更新”的方式来弥补产品上线前测试不充分的问题。
随着“热更新”的使用,也有很多产品开始通过“热更新”的方式来开发功能,这样产品发版就不需要 AppStore 审核,从而达到快速发版的目的。
2.雷锋网:“热更新”被利用是在什么时候发现的?有哪些利用方式,造成的影响大吗?
王纬:目前没有发现黑客利用“热更新”发起对 iOS App 的攻击。但是我们(Nirvan Team)早在 2015 年 3 月份就关注到“热更新”可能引起安全问题,并在国内的一些知名互联网应用中发现了“热更新”相关漏洞,可以实现远程的任意代码执行。
“热更新”的利用方式主要是下发恶意的“热更新”代码。由于“热更新”框架的不同,具体的恶意代码可能是 Lua、JavaScript、Lisp 方言等。
大部分“热更新”框架都没有实现沙盒,因此恶意代码几乎可以完全控制 App,我们曾经为某个知名的 App 编写了演示性质的恶意代码,可以控制 App 的启动页面,可以获取用户的登录密码,并传递到远程服务器中。
这里还需要说明的是,利用“热更新”做恶意攻击,一般需要结合其他的攻击技术,比如:DNS 投毒、恶意 WiFi、首先攻陷代码下发服务器等。
3.雷锋网:这次苹果大刀阔斧的下架 App,真的是出于“热更新”的安全原因吗?
王纬:苹果这次下架一批 App 不只是因为“热更新”问题,还包括:山寨克隆应用、传播盗版音乐内容、多年无人下载的应用、不兼容64应用系统。
我个人认为苹果这次处理“热更新”,一方面是由于“热更新”会引起一些安全问题,主要原因是因为“热更新”会削弱苹果对 AppStore 中应用的控制力,这应该是苹果更在乎的。
4.雷锋网:只要 App 开发者把代码改了就没事吗?
王纬:从 AppStore 审核的策略来看,开发者只是把“热更新”相关的代码删除了,可能无法完全满足 App 的审核的要求。除了“热更新”框架,苹果还要求开发者不使用可在运行时改变程序行为的 API,包括:NSClassFromString、NSSelectorFromString、dlopen 等。