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