ios的安全机制
iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。系统操作占用大概240MB的存储器空间。
ios主要采用了以下几种安全机制:
- 更小的受攻击面
- 精简的操作系统
- 权限分离
- 代码签名机制
- DEP
- ASLP
- 沙盒机制
一、更小的受攻击面
受攻击面:受攻击面是指处理攻击者所提供输入的代码。
就算苹果公司的某些代码中存在漏洞,如果攻击者没法接触这些代码,或者苹果公司根本不会在iOS中包含这些代码,那么攻击者就没法针对这些漏洞开展攻击。因此,关键的做法就是尽可能降低攻击者可以访问(尤其是可以远程访问)的代码量。
例如,iOS不支持Java跟Flsah,不能处理.psd文件。苹果公司自有的.mov格式也只被iOS部分支持,因此很多可以在Mac OS X上播放的.mov文件在iOS上无法播放。虽然iOS原生支持.pdf文件,但只是解析该文件格式的部分特性。
瑕疵越少,攻击者发动漏洞攻击的机会就越小。
二、精简的操作系统
除了减少可能被攻击者利用的代码,苹果公司还精简掉了若干应用,以防为攻击者在进行漏洞攻击时和得手之后提供便利。
例如:iOS设备上没有shell(/bin/sh);
三、权限分离
iOS使用用户、组和其他传统UNIX文件权限机制分离了各进程;
例如:用户可以直接访问的很多应用,比如Web浏览器、邮件客户端或第三方应用,就是以用户mobile的身份运行的。而多数重要的系统进程则是以特权用户root的身份运行的。其他系统进程则以诸如_wireless和_mdnsresponder这样的用户运行。利用这一模型,那些完全控制了Web浏览器这类进程的攻击者执行的代码会被限制为以用户mobile的身份运行。
来自App Store的应用其行为会受到限制,因为它们也是以用户mobile的身份执行的。
四、代码签名机制
所有的二进制文件(binary)和类库在被内核允许执行之前都必须经过受信任机构(比如苹果公司)的签名。此外,内存中只有那些来自已签名来源的页才会被执行。这意味着应用无法动态地改变行为或完成自身升级。这样做都是为了防止用户从因特网上下载和执行随机的文件。所有的应用都必须从苹果的App Store下载(除非对设备进行配置,使其接受其他的源)。
五、DEP
DEP: Data Execution Prevention,数据执行保护;
处理器能区分哪部分内存是可执行代码以及哪部分内存是数据。DEP不允许数据的执行,只允许代码执行。
当漏洞攻击试图运行有效载荷时,它会将有效载荷注入进程并执行该有效载荷。DEP会让这种攻击行不通,因为有效载荷会被识别为数据而非代码。
iOS中代码签名机制的作用原理与DEP相似。
六、ASLP
ASLP: Address Space Layout Randomization,地址空间布局随机化。
在iOS中,二进制文件、库文件、动态链接文件、栈和堆内存地址的位置全部是随机的。当系统同时具有DEP和ASLR机制时,针对该系统编写漏洞攻击代码的一般方法就完全无效了。在实际应用中,这通常意味着攻击者需要两个漏洞,一个用来获取代码执行权,另一个用来获取内存地址以执行ROP,不然攻击者就需要一个极其特殊的漏洞来做到这两点。
七、沙盒机制
iOS防御机制的最后一环是沙盒。与之前提到的UNIX权限系统相比,沙盒可以对进程可执行的行动提供更细粒度的控制。
例如:MS应用和Web浏览器都是以用户mobile的身份运行的,但它们执行的动作差别很大。SMS应用可能不需要访问Web浏览器的cookie,而Web浏览器不需要访问短信。而来自App Store的第三方应用不应该具有cookie和短信的访问权。
首先,它限制了恶意软件对设备造成的破坏。想象一下,就算恶意软件侥幸通过了App Store的审查流程,被下载到设备上并开始执行,该应用还是会被沙盒规则所限制。它可能会窃取设备上所有的照片和地址簿信息,但它没办法执行发短信或打电话等会直接使用话费的操作。沙盒还让漏洞攻击变得更困难。就算攻击者在减小的受攻击面上找到了漏洞,并绕过ASLR和DEP执行了代码,有效载荷也还是会被限制在沙盒里可访问的内容中。总而言之,所有这些保护机制虽然不能说会完全杜绝恶意软件和漏洞攻击,但也大大加大了攻击的难度。
八、iOS越狱
a).通过OTA(不是通过PC上iTunes升级的iOS)升级到iOS7的设备越狱很容易出现白苹果.建议用户通过iTunes更新到最新的iOS7系统然后越狱.
b).越狱后通过Cydia安装的某些插件(例如某些输入法或修改系统主题的插件),由于对iOS7不兼容导致很容易出现白苹果,建议谨慎安装及更新此类越狱插件.
c).有些应用程序没有针对越狱iOS7作适配或者兼容性测试,也可能导致系统崩溃及白苹果现象,建议谨慎安装优化系统设置和系统底层相关的应用.
然而,越狱会破坏掉所有的安全机制。