天天看点

《黑客大曝光:移动应用安全揭秘及防护措施》一3.2 iOS到底有多安全

本节书摘来自华章出版社《黑客大曝光:移动应用安全揭秘及防护措施》一书中的第3章,第3.2节,作者 (美)neil bergman ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

到现在为止,ios已经伴随大家6年了。在这段时间内,ios平台有了巨大的发展,特别是在操作系统及应用安全模式方面。当iphone首次发布时,苹果公司就公布不允许第三方应用在该设备上运行。同样的,开发者和用户如果需要访问web,则只能通过ios内置的web浏览器。一段时间内,这意味着只有苹果公司的软件才能在ios设备上运行,因此一定程度上减少了对安全的需求。然而,缺乏第三方市场的应用也使得用户无法完全利用他们设备的优点。很快黑客们寻找到了通过刷机或越狱设备来安装第三方软件的方法。苹果为了应对“越狱”以及用户对软件多样化的需求,2008年,苹果公司发布了一个新的ios版本,这个版本包括了一项新的服务,那就是应用商店。应用商店给用户提供了购买和安装应用的机会。自从有了应用商店之后,已经有超过80万应用发布并可供购买,应用下载总量也已经超过了400亿(参见apple.com/pr/library/2013/01/28apple-updates-ios-to-6-1.html)。苹果也开始添加额外的安全措施和开发新的ios版本。

早期的ios版本在安全防护方面做的很少。所有的进程都拥有超级用户的特权。进程在系统资源的使用方面没有限制。代码签名不是用来证实应用的来源(和控制上述应用的执行的)。也没有为ios的内核、其他系统组件、库或者应用提供地址空间布局随机化(aslr)和位置无关的可执行程序(pie)的支持。而且,也几乎没有使用硬件控制来阻止对设备的攻击。

随着时间的推移,苹果公司开始引进更高级的安全功能。第三方市场的应用暂时是以一个名为mobile的低特权用户账号运行。另外还提供了对沙箱的支持,以限制应用对系统资源的使用。还添加了对代码签名认证的支持。有了这个之后,设备上安装的应用必须被苹果公司进行签名之后才能运行。另外,代码签名认证在加载时(负责启动一个可执行代码)和运行时(防止新代码的添加和执行)实现。最后,内核的地址空间布局随机化、其他操作系统组件、库以及被称为pie的xcode中的编译时间选项,都被添加到ios中来。pie与ios的近期版本结合之后,便要求应用每次执行时在不同的基准地址进行加载,这就使得开发特定的应用程序的漏洞更加困难。

所有这些改变和优化处理使得有了今天的ios。ios也因为它的安全模式有了巨大的收获。事实上,app商店中应用的总体分配过程以及当前ios系统所实现的安全措施集合,使得ios成为最安全的消费级操作系统之一。拥有这些安全措施的操作系统,甚至是以前的较低安全版本的操作系统,都在很大程度上被该平台上相对其他平台、数量很少的已知的恶意攻击所验证。

然而,虽然ios获得了巨大的进步,但是认为ios平台无法被入侵是一种幼稚的想法。不管怎样,事实这并非如此。尽管我们现在还没有见到许多针对ios平台的恶意代码,但是我们通过一些例子证明:ios实际上存在可能被入侵的薄弱环节,因此,这也值得从终端用户或组织的安全角度去仔细考虑。

 ios安全研究者dino dai zovi的一篇有关ios 4.x安全的文章研究了ios中的aslr、代码签名、沙箱等等,对于那些ios入侵的爱好者来说,这篇文章是值得阅读的。参见trailofbits.files.wordpress.com/2011/08/apple-ios-4-security-evaluation-whitepaper.pdf

继续阅读