IOS系统应用安全性研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IOS系统应用安全性研究

作者:韩玉会

来源:《电脑知识与技术》2017年第11期

摘要:信息时代,移动智能终端被广泛应用于处理各类重要的数据信息,与之紧密相连的各类移动安全问题也随之出现,例如个人隐私泄露,手机病毒泛滥,各类恶意攻击等。该文在深入分析IOS系统安全机制及IOS应用安全检测技术的基础上应,综合运用理论分析及实证研究等方法,提出针对IOS平台应用的以静态分析技术为基础,结合动态监测手段的综合分析检测方法,可有效提高IOS平台应用安全检测的准确度,降低报错率。

关键词:IOS系统;应用开发;安全性

1背景

信息时代,越来越多的人使用移动智能设备处理各类重要数据。当今主流的智能终端操作系统主要有谷歌的Android系统和苹果的IOS系统,IOS系统是运行在苹果系列产品如iPhone 和iPod Touch等终端产品上的移动操作系统,它具有强大的无线网络功能,支持视频电话、GPS定位及安装第三方开发的应用程序等功能。随着苹果产品的不断推广和升级,随之而来的系统应用安全问题也愈显突出。2014年9月其中包括隐私泄漏、木马病毒、恶意程序、轰动一时的各类“窃听门”事件等智能终端安全事件的出现,标志着IOS平台应用安全问题已经日趋严重,用户的个人隐私面临严重的安全隐患。

2IOS系统安全机制分析

在研究影响IOS应用的各种安全情况之前,我们首先对IOS平台的安全特性做一个深刻剖析,以便于后续对应用安全分析的理解。lOS系统自身有严格的安全防范机制,这些安全特性对各种运行IOS系统的设备基本透明,很多安全特性设置都是默认开启和关闭,不需要用户人为的进行各种复杂配置的设置。IOS系统尤其对一些关键的安全特性不允许用户自行配置,以避免用户设置错误或操作失误导致这些重要的安全防护功能关闭,例如硬件设备的加密特性,就在生产时设定以后再不允许修改。IOS系统安全模型如如图1所示,这种安全模型旨在不影响用户基本使用的情况下保护系统数据的安全性。

图1中,与底层的硬件或固件相关的安全设置都与苹果公司的出厂设置密切相关,苹果根证书(Apple Root Certificate)在芯片制造时就已经植入,不可再次更改,这些安全特性都是为了防御恶意应用或病毒篡改设备的重要信息。上层操作系统的安全设置则是为了防御非法(未授权)使用破坏系统完整性,阻止攻击行为的运行。苹果公司把IOS系统的安全性作为软件更新和维护的核心,同时,在IOS系统的安全性能设计上使用了大量的密码学理论和计算机加密技术,修补系统漏洞,更新版本,提升系统功能。

IOS平台的核心安全特性可以归纳如下几点:

1)硬件安全一安全启动链策略

IOS设备硬件启动过程的安全性由其安全启动链来保证。安全启动链中所涉及的每个组件都由苹果公司加密签名以确保其可靠性和完整性。IOS设备开机后,苹果公司事先写人Boot ROM中的根数字认证密钥就会被CPU运行,根数字认证密钥一旦写人芯片,就不可更改,并会的系统的绝对信任。这个密钥是验证其他底层硬件引导或加载程序(LLB)的基础,所有启动程序都需要通过验证其是否已经经过苹果公司的签名,通过加载,否则拒绝。这种安全启动链的验证模式保证了每次启动时底层代码的安全性,确保其未被人为篡改。而且也保证了IOS 系统只能运行在经过验证的、确认是合法授权的IOS硬件设备上。

2)应用安全一程序代码强制签名策略

IOS系统是一个封闭的系统,所有的硬件设备和软件应用都与苹果公司相关,苹果公司生产设备并开发的IOS系统,所有运行在苹果设备上的应用都需要经过苹果公司审核。为确保所有程序均已获批准,且此文件与批准时的文件完全相同,IOS系统要求所有可执行代码均使用苹果公司颁发的证书进行签名。硬件设备附带的应用程序由苹果公司签名。第三方应用由苹果公司颁发证书验证签名。这种程序代码强制签名规定,是安全启动链的信任关系从IOS系统延伸至应用程序,以防止陌生应用运行及各种代码篡改。

3)数据安全——文件数据保护技术

IOS系统的文件数据保护是以硬件设备加密技术为基础的。苹果公司在硬件设备中植入了一些与安全相关的技术和设备,硬件的安全设置为IOS系统安全提供最为基础的保护。这些硬件加密引擎是构建各类层次的应用密钥的关键,由于硬件中固化的密钥为唯一且永远不变,利用这个密钥进行所有后续安全设置的加密引擎,既可以保护数据安全,又可以保证加解密的效率。具体实施如下:所有IOS设备生产时就培植了专用的256AES加密引擎,放置在DMA 中,由于DMA处于闪存与系统主存之间,方便高效的文件数据加解密。专属的硬件密钥由设备唯一ID(UID)和设备组ID组合而成,为防止篡改或绕过因此被固化在IOS设备的处理器中。并且苹果公司规定任何软件或固件都无法直接读取设备的硬件密钥,只能查看密钥参与加密或解密之后的执行结果。生成文件时,开发人员指定文件类别,由数据保护系统根据文件类别分配类密钥,从而实现文件数据安全控制。

4)执行安全一沙盒技术和地址空间布局随机化策略

沙盒技术把IOS系统应用的运行限制在一个独立、封闭的空间,这个独立的空间叫做沙盒(sandbox)。IOS系统的沙盒机制主要是为了实现安全隔离。首先进程隔离(process isola-tion):应用程序在运行过程中禁止读取其他进程数据,也就是说,在运行过程中进程之间的通信被完全限制,以防止运行过程中的遭遇感染或攻击的几率。其次文件系统隔离(file sys-

temisolation):所有应用程序都只能在自己的目录下操作文件,这样应用之间就不会可能产生攻击行为。应用程序沙盒化后,其活动范围被限定在一个独立的沙盒中,对系统以及用户更加安全,并且加大了恶意程序入侵系统的难度。

地址空间布局随机化(Address Space Location Randomiza-tion,ASLR):是参与保护缓冲区溢出问题的一个计算机安全技术,防止攻击者在内存中能够可靠地跳转到特定函数。ASLR 技术可以确保应用程序启动时随机安排所有内存区域,其中包括随机排列程序的关键数据区域,如可执行的部分、堆、栈及共享库的位置等。通过随机安排这些重要数据的内存地址,有效降低了遭到各种复杂攻击的可能性,防止黑客利用内存损坏错误对系统进行攻击。

3IOS应用静态分析研究

3.1应用程序的隐私泄露分析

IOS应用的隐私泄露问题已经成为影响苹果用户产品体验的重要因素之一。为了确定隐私泄露的源头及可疑点,监测工具需要从最近访问隐私数据的函数向上,一直追溯到发送数据的第一个函数。目前,这方面的研究比较多,其中Egde等人提出的PIOS就是一个具有代表性的静态检测分析工具。PIOS主要通过三个步骤来完成对隐私数据泄露的检查,第一步:重建控制流图,追溯函数的调用过程。在控制流图中包含许多基本块,基本块是根据函数跳转关系,或者函数调用指令进行分割而得到的。第二步可达性分析。深入分析控制流图,检查其中是否存在一条或多条从敏感信息到可能泄露信息的网络路径。第三步数据流分析,对于每一条可能泄露隐私的路径,再跟踪其中的数据流向。本人使用PIOS分析了100个IOS应用程序(其中苹果商店应用80个,Cydia资源库应用20个),实验结果表明:80%的IOS应用都会将一些用户信息泄露出去,同时对比发现,苹果商店中的IOS应用程序的安全性较Cydia资源库中的要差一些。

3.2应用程序的逆向分析

IOS系统构建的复杂、缜密的安全防范机制在防范恶意攻击的同时,也给应用程序安全监测的逆向工程带来了巨大阻碍。由于绝大部分应用程序都运行在普通的苹果设别上,运行权限均是用户权限,而不是系统(root)权限,如上所述,普通用户权限的应用程序,其可执行代码需要签名认证才能被处理器执行,由此,解密应用程序的可执行文件是应用逆向工程的首要任务。对于IOS系统而言,只能通过设备越狱,利用系统漏洞来解锁设备,进而获得系统(root)访问权限。其次,成功越狱提升权限后就可以修改系统加载策略,使所有签名的程序运行得到许可,这样在运行正常的通过苹果认证的应用程序的同时,就可以装载测试工具软件进行逆向分析,如调试器、反汇编工具等。最后,利用安装的调试器启动程序,在应用程序入口设置一个断点,一旦程序运行就会自动触发这个断点,转而加载系统验证签名,解密应用程序的可执行代码,然后分析、研究二进制地址空间所占的内存区域,获得解密后的应用程序代码。应用程序的逆向分析除过解密应用技术外,还需要直接分析汇编代码等工作。

相关文档
最新文档