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

简介:

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

3.2 iOS到底有多安全

到现在为止,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

相关文章
|
4月前
|
移动开发 安全 数据安全/隐私保护
iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤
iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤
60 1
|
4月前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
66 0
|
4月前
|
安全 前端开发 iOS开发
钉钉里微应用ios 底部安全区域的颜色怎么修改?
钉钉里微应用ios 底部安全区域的颜色怎么修改?
153 5
|
4月前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
103 0
|
19天前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比:选择哪个平台开始你的移动应用之旅?
【8月更文挑战第12天】在移动应用开发的世界中,安卓和iOS是两个巨头,它们各自拥有独特的开发环境和生态系统。本文将深入探讨这两个平台的开发环境,包括它们的编程语言、工具、社区支持和市场覆盖度等方面。无论你是新手开发者还是有经验的专业人士,了解这些差异都将帮助你做出更明智的决策,选择最适合你项目需求和个人技能的平台。
23 1
|
10天前
|
安全 Android开发 iOS开发
安卓与iOS开发之道:探索移动应用的差异化策略
【8月更文挑战第21天】在移动应用开发的广阔天地中,安卓和iOS这两大操作系统平台各领风骚。本文将深入探讨这两个平台的差异化策略,帮助开发者理解如何根据不同平台的特性优化应用设计,提升用户体验,并最大化市场潜力。我们将从用户界面、性能优化、市场定位、安全性以及发布策略等多个维度进行比较分析,旨在为开发者提供一个全面的视角,以便在竞争激烈的应用市场中占据一席之地。
|
4月前
|
缓存 Android开发 iOS开发
打造高效移动应用:Android与iOS性能优化策略
【4月更文挑战第29天】 在移动设备日益成为用户日常互动的主要平台的今天,应用程序的性能已成为决定其成功的关键因素之一。本文将探讨针对Android和iOS平台的性能优化技巧,涵盖内存管理、多线程处理、网络请求优化以及用户界面的流畅性提升等方面。通过分析不同操作系统的架构特点,我们旨在提供一套综合性的策略,帮助开发者构建快速、响应迅捷且用户体验良好的应用。
|
4月前
|
iOS开发 开发者
iOS移动应用程序的备案与SHA-1值查看
iOS移动应用程序的备案与SHA-1值查看
103 2
|
4月前
|
iOS开发 开发者
iOS移动应用程序的备案与SHA-1值查看
iOS移动应用程序的备案与SHA-1值查看
59 0
下一篇
云函数