APP下载

iOS系统数据安全分析与加固*

2014-05-22贺宇轩刘功申

通信技术 2014年6期
关键词:应用程序程序机制

贺宇轩,孟 魁,刘功申,徐 林

(1.上海交通大学电子信息与电气工程学院,上海200240;2.公安部第三研究所信息网络安全公安部重点实验室,上海200240)

0 引言

自2007年美国苹果公司推出了iPhone系统手机和iOS操作系统,以及Google公司推出Android移动操作系统之后,移动设备的智能化程度越来越高。根据文献[1],越来越多的互联网应用移植到了移动设备之上,尤其在社交、即时通信、新闻等方面,移动设备在人们日常使用电子产品过程中,所占时间的比重越来越大。文献[2]指出,相对于传统PC,移动设备存储更多、更重要的个人隐私信息,如通讯录、通话记录、短信等,因此移动设备的安全性将成为未来操作系统安全的重要研究课题。

文中首先介绍了iOS系统的安全架构,分析其安全防护措施,以及在iOS系统越狱之后对系统安全的影响。之后详细分析介绍了iOS系统下各项敏感数据的获取手段,然后讨论了iOS程序植入方法,指出越狱后的iOS系统存在的安全隐患。最后针对这些安全隐患,提出解决方案,以增强越狱后的iOS系统安全性和稳定性。

1 iOS系统数据安全

1.1 iOS系统安全机制

由于苹果公司对iOS系统采取闭源而不公开的策略,使得安全人员很难深入研究其安全机制。一些研究人员通过系统越狱、逆向分析等方法,得到iOS系统的基本安全机制、安全模型和一些数据保护机制的细节[3]。研究人员在相关文献[4-7]中分析了iOS系统所采用的一些安全模型和数据保护机制,归纳起来主要有系统可信引导、代码签名、沙盒机制、数据加密和地址空间布局随机化等[8]。

(1)系统可信引导

系统可信引导(Trusted Bboot)是Cediric Halbronn与Jean Sigwald在黑客大会HITB 2010提出的概念,描述的是iOS设计的可信的启动过程[5]。系统首先引导安全只读内存(Secure ROM),其中嵌入了根证书用以检查下一步所加载组件的RSA签名。在随后的每个启动步骤中,系统都会检验下一步骤所需要加载组件的RSA签名,这就构成了iOS整个系统的信任链,这一信任链确保了系统启动过程中的所有组件都没有被修改和破坏。

(2)代码签名

可信引导机制保证了系统加载过程中各个阶段数据的完整性,而代码签名机制保证了iOS系统中运行的应用程序的完整性。苹果公司限制应用程序的来源,只允许用户从App Store下载、安装应用程序,代码签名机制只允许经过苹果公司签名的应用程序进入用户系统,而未授权的第三方应用程序,则被拒绝安装。

开发者购买苹果公司颁发的证书后,使用证书对开发完成的应用程序进行签名,然后提交到App Store,再由苹果公司进行审核,审核通过后,苹果使用其私钥对应用程序进行签名,再发布至 App Store。用户从App Store下载安装程序时,iOS系统使用相应的程序对签名进行证书校验。代码签名机制使得安装至iOS系统中的所有程序,都是经过审核和安全验证的,保证没有恶意程序进入。这样严格的审核机制,也大大减少了iOS系统上的恶意软件数量,相比开放而自由的Android系统,由单一的App Store下载入口安装的应用程序更加安全可靠[9]。

(3)沙盒机制

iOS沙盒的实质是一个基于TrustedBSD策略框架的一个内核扩展模块。这一访问控制系统,可以针对每个进程制定单独的配置文件,用于限制如文件打开、socket访问等,达到分离应用程序运行空间的目的[10]。从App Store上下载的应用程序,每个都运行在单独的沙盒中,既保证应用程序数据和内容不被其他程序所访问修改,也阻止了应用程序对系统数据的访问[11]。

(4)数据加密

为了保护苹果设备中的数据安全,iOS系统及设备引入了数据加密机制来保护文件和数据安全。该机制确保了不同程度的敏感数据由不同强度的加密机制所保护。这一套机制包括硬件加密和软件加密,保证数据在关机时的镜像拷贝不被破解,以及设备锁定时的数据安全。

(5)地址空间布局随机化

地址空间布局随机化(ASLR,Address Space Layout Randomization)通过随机地分配内存数据区域,达到保护内存数据的目的。ASLR通常随机化分配应用程序堆空间、栈空间、共享库映射等,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止缓冲区溢出攻击的目的[12]。

ASLR是桌面和服务器操作系统中常见的安全机制,据研究表明,ASLR可有效降低缓冲区溢出攻击的成功率,如今 Linux、FreeBSD、Windows等主流操作系统都已经采用ASLR技术。

2 iOS系统越狱及其风险

尽管苹果公司为iOS系统提供了如此之多的安全防护措施,让iOS系统成为一个简便易用,且安全性、稳定性较好的系统,但在另一方面,部分用户对iOS系统有更加个性化的使用需求,或需要从第三方安装应用程序等,因此iOS越狱成为部分用户的选择。

iOS系统越狱后,用户可以通过Cydia安装系统相关的软件和程序库,也可以安装未经代码签名的应用程序。Cydia是一个基于deb的包管理系统,可以识别软件依赖树,从而安装各项系统相关的软件。在Cydia中,可以添加“源”,来增加可以下载的软件列表。大量的越狱开发者都有自己的源,形成一套iOS越狱软件体系。然而普通用户往往不具备对Cydia源安全性的鉴别能力,对于他们需要的软件,往往不假思索便会安装。

与从App Store或IPA格式安装包安装的应用程序不同,由Cydia安装的deb包软件,都是运行于root权限之下,绕过了iOS系统的沙盒系统,可以说对于由Cydia安装的程序而言,iOS设备上的文件系统,是完全暴露的,这就造成了巨大的安全隐患。

因此iOS系统在越狱之后,便给了恶意程序植入的渠道,同时非沙盒机制的程序运行,也让恶意程序可以常驻后台,并且访问所有的系统敏感数据。而文中的远程控制程序,就是在系统越狱后环境中运行的。

2.1 敏感数据的获取

(1)手机基本信息

手机的基本信息可以使用Cocoa Foundation Kit中的UIDevice类获取,可以获取的信息有:手机型号、系统版本、本机手机号码、电池电量、充电状态。

对于手机所使用的移动运营商、信号强度信息,可以使用CoreTelephoney库中的私有API获取。这些私有API可以使用 class-dump工具[13],导出各Foundation库中的函数调用接口,并生成.h文件。如获取手机信息强度,便使用了CTGetSignalStrength这一导出函数。

(2)隐私数据库文件

手机通讯录、通话记录、短信记录是手机中最核心、最敏感的数据。iOS系统只允许一般应用程序读取通讯录,且需要得到用户的授权。但从root权限程序的角度来看,这些数据保存在各个独立的SQLite文件中,只要通过SQLite库打开文件,即可读取其中的所有内容。敏感数据存放路径如表1所示。

表1 敏感数据存放路径Table1 Path of files storing private data

(3)地理位置信息

移动智能设备相对于传统PC,其优势主要体现在小型化和便携化,可以方便地随时随地使用。因此在移动应用中,LBS(Location Based Service,基于位置的服务)逐渐兴起,同时智能手机也充当GPS导航设备,在机载地图的帮助下为用户提供导航。对于移动设备获取地理位置信息,常用的方式有3种,分别是基站定位、Wi-Fi定位和 GPS 定位[14]。

在iOS系统中,上述的3种定位方式均有使用,在不同场合使用不同的定位方式。在iOS 4.2及以前版本系统,苹果手机会记录所有用户的定位历史信息,并保存于数据库中。GPS信息存储路径如表2所示。

表2 GPS信息存储路径Table 2 Path of GPS database

通过读取GPS缓存数据库,可以极小的代价获取手机近一周的定位历史记录,避免了通过调用iOS API,即CoreLocation库,来获取当前位置时,需要用户同意,以及在状态栏出现定位标志等问题。在手机越狱后,即可不获得用户授权而获取地理位置信息。即使用户关闭定位功能,也可以通过Mobile Substrate(Cydia基础库)中提供的API,来静默打开定位功能。

(4)后台拍照及录音

iPhone手机的多媒体功能一方面丰富了用户使用体验,另一方面增加了设备获取环境信息的渠道,即可能遭受窃听或偷拍。

在iOS系统中,普通应用程序即有权限打开摄像头或麦克风,实现没有交互的拍照或录音。iOS系统针对这一行为,会在状态拦中加以提示,以提醒使用者了解应用程序的行为。运行于系统后台的命令行程序(即以root权限运行的程序)同样可以打算摄像头和麦克风,却不会被系统监视以提醒用户,即做到了完全的后台拍照和后台录音,而不会被用户所发觉。

3 iOS程序植入技术研究

iOS系统默认情况下没有为应用程序提供开机启动或者常驻后台的功能,因此在非越狱状态下是无法通过常规手段实现的。然而在越狱后,iOS系统为我们开放了诸多程序进入的通道,如Cydia软件管理、开放的SSH服务器等,都成为植入程序的切入点。

在另一方面,由于越狱的设备可以修改系统配置文件,实现程序后台运行、开机自启动功能。而且用户对系统层面的管理知识较缺乏,也没有类似Windows下的启动项管理工具,一旦程序植入,将很难被发现。

3.1 Cydia 安装

Cydia是iOS系统越狱后自动安装的一个系统级应用,它类似于苹果公司的App Store,提供软件的安装下载服务。在Cydia上的软件大多为系统补丁、系统插件、系统软件等运行在root权限下、并对系统进行深度定制的软件,其主要目的是弥补iOS系统的不足或突破苹果iOS系统对普通用户在应用上的限制。

Cydia安装软件包时,会指定软件源,即一个基于web的软件包列表,在添加安装源后,Cydia即可获得该源下所有可以安装的包。用户通常会添加一些iPhone论坛的软件源,如178、Weiphone等,其软件大多为网友发布。同时用户可以上传自己的deb包,与网友分享软件。将程序制作成deb软件包,上传到比较热门的软件源中,即可被用户搜索到,或者自行制作软件源,只要用户添加此源,即可安装软件,实现程序植入[15]。

3.2 SSH 弱密码

在iPhone越狱后,不少用户会在手机安装SSH(Secure Shell)服务器(SSHd),来对设备进行命令行操作[16]。iOS系统的 root默认密码始终为固定的“alpine”,只要在网络中搜索开放22号TCP端口的iOS设备,就有很大概率通过默认的root密码进入手机。

根据文献[17],iPhone僵尸网络病毒 iKee.B就是利用越狱设备安装SSHd而未修改root密码的漏洞,进行攻击和传播的。该文献中指出iKee.B通过扫描特定的移动网络运营商IP段,来提高扫描效率。

例如可以根据APNIC的最新IP地址列表[18]及Whois信息生成的各主要ISP网段,得到国内几大移动运营商的主要IP段,以缩小扫描范围。

3.2 物理接触

物理接触iOS设备也是植入程序的有效手段。当iOS设备解锁时,可以通过iTunes协议,使用USB线缆对iOS设备进行备份,将通讯录、短信、通话记录等内容保存在PC上,并可以使用SQLite软件进行查看和编辑。

通过iTunes协议与iOS设备进行通信,有名为libimobiledevice的开源库实现,以及使用此库的实用工具iFuse[19],由此库和工具,可以开发出复制用户敏感数据的程序,或者向iOS设备传送文件,将远程控制程序的deb包复制至Cydia的自动安装目录/var/root/Media/Cydia/AutoInstall下,在设备重启后,即会被自动安装。

如今物理接触的难度随着计算设备小型化而降低,通过物理接触,使用libimobiledevice库进行通讯的设备,可以使用一种称为树莓派(Raspberry Pi)的单片机电脑(见图1)。树莓派的大小仅为一张信用卡那么大,采用主频700 MHz的 ARM处理器,512MB内存和SD存储卡,配备Ethernet、两个USB接口,并可以使用电池供电。使用树莓派作为植入设备,可大大提高物理接触便携性和隐蔽性。

图1 树莓派电脑Fig.1 Raspberry Pi

4 iOS系统恶意程序检测与安全加固

4.1 恶意程序检测

对于iOS系统的恶意程序,往往具有修改系统设置、复制可疑文件、存在网络通信、产生系统日志待特点,根据其特点,可以针对性地查找恶意程序的踪迹,从而达到检测与清除恶意程序的目的。

(1)系统启动项检查

在iOS系统中,系统服务的自启动均通过launchctl服务进行注册。在命令行中输入launchctl list,即可得到所有启动项信息列表,如图2所示。

图2 查看启动项列表Fig.2 List of launch demons

在列表中标识了正在运行的进程的PID和label,其中label为唯一标识,具体的配置文件保存在/System/Library/LaunchDaemons/下,以 label命名的.plist文件。

iOS系统中注册的自启动应用程序较为固定,通过比对相同系统的启动项列表,可以排查出可疑启动项,进而分析其行为。

(2)网络流量分析

恶意程序在上传数据和获取通信命令时,会通过网络进行通信,通过在iOS设备上运行TCPDUMP程序,或者在设备网关处截取流量,采集通信数据。可以通过黑白名单的方式过滤正常流量,再对其余流量进行分析。

对网络流量的分析可分为两种,一种为内容分析,如对网络通信明文进行查看和分析,这种方式仅对明文通信的数据有效。另一种为时间和空间的分析,通过查看网络活动的周期性,以及手机操作情况的相关性,进行分析。如在手机接听或拨打电话、收发短信时,画出的操作频率图,与网络流量图进行比对,如果出现相关性,则可认定恶意程序记录并发送了用户个人信息。

(3)系统日志分析

苹果iOS系统与Mac系统一样,有统一的系统日志记录和查看接口。在iOS开发中,常用NSLog()方法进行输出调试。如果恶意程序在开发过程中使用了NSLog,则其输出会被记录在系统日志中,可以通过Xcode的设备管理器查看和保存日志。

通过对日志内容进行分析,可以采集所有运行的进程的输出。一旦恶意程序使用了NSLog,相比可能会加密的网络通信,其输出的系统日志往往是明文而且可读的,这便为分析恶意程序留下了线索。

4.2 安全加固

俗话说“防范于未然”,恶意程序在植入后,往往做很多隐蔽性手段以防止检测。但提高安全意识,可以很大程度上防止恶意程序的入侵。对于iOS系统,其漏洞与入侵渠道极少,而安全措施很多,只要根据iOS恶意程序可能植入的渠道,进行针对性的加固,。

首先应该修改SSH密码,将root账户的默认密码设置成较为复杂的密码,同时修改/etc/ssh/sshd_config文件,把SSHd的监听端口修改非22端口,防止被扫描或被攻击者猜解弱密码。

设置复杂的锁屏密码。iOS系统的锁屏密码不仅保护系统不被其他人直接使用,同时也阻止了iTunes备份,只有在设备解锁的情况下,手机上的信息才会被备份。另外四位纯数字的简单密码,可以在数分钟之内被破解,只有设置复杂密码(即字母数字组合)才能够保证设备安全。

对于越狱后安装的应用程序,虽然没有了代码签名机制,通过IPA软件包安装的程序仍然运行在iOS沙盒之下。但通过Cydia安装的程序,则会运行于root权限之下。对于这种安装方式,请尽量使用Cydia原有源,或者声誉较好的源,不要随意安装软件包或插件。必须的时候可以下载其deb软件包,解包后对其进行分析,一方面可以分析control部分的安装脚本,另一方面可以使用IDA pro等软件对二进制代码进行反汇编,以分析软件行为。

对于某些iOS系统版本可能出现的重大漏洞,如 iOS 4.3.3 的 PDF 漏洞[20],可以在越狱之后,在Cydia上下载补丁以修补漏洞。当然保持iOS系统为最新版本,也是增强其安全性的手段。

iOS越狱为用户提供了更灵活更开放的系统定制方案,然而却增加了安全隐患。在使用越狱设备时,更应该提高安全意识,不可完全信任第三方软件,在安装软件时对其进行必要的审查与分析,以保持系统稳定和个人隐私安全。

5 结语

由于iOS系统在越狱后完全丧失安全防范的纵深,安全可靠的iOS系统打开一道缺口,让恶意软件有可乘之机。相关文献[3,4,8]也分析了不同情景下隐私数据遭受的威胁,但未提出可能的防范手段。此外,越狱后的iOS系统急需一套补充的权限管理机制,或研发相关安全管理软件:以保证用户的最机密资料不被随意读取,为敞开的系统添加一道锁。

[1]Ito M.Mobile Phones,Japanese Youth,and the Replacement of Social Contact[M].London:Springer,2005:131-148.

[2]HALPERT B.Mobile Device Security[C]//Proceedings of the 1st Annual Conference on Information Security Curriculum Development.Kuala Lumpur,Malaysia:ACM,2004:99-101.

[3]李柏岚,谷大武,李卷孺,等.iOS备份机制中隐私威胁问题的分析[J].通信技术,2012,45(02):25-28.LI B L,GU D W,LI J R,et al.Analysis on Privacy Threats in iOS Backup Mechanism[J].Communications Technology:2012,45(02):25-28.

[4]PANDYA V R.IPhone Security Analysis[D].San Jose:San Jose State University,2008.

[5]HALBRONN C,SIGWALD J.iPhone Security Model&Vulnerabilities[EB/OL].Kuala Lumpur,Malaysia:HITB SecConf,2010(2010-10-17)[2013-09-25].https://esec - lab.sogeti.com/dotclear/public/publications/10 -hitbkl-iphone.pdf

[6]BéDRUNE J B,SIGWALD J.IPhone Data Protection in Depth[R].France Sogeti:ESEC,2010.

[7]GEOHOT.Jailbreak[EB/OL].(2014-01-05)[2014- 01 - 12].http://theiphonewiki.com/wiki/index.php?title=Jailbreak.

[8]陈佳霖,王轶骏,薛质.iOS系统数据安全研究[J].信息安全与通信保密,2012(08):100-103.CHENJ L,WANG Y J,XUE Z.Study on iOS Data Security[J].China Information Security:2012(08):100-103.

[9]FELT A P,FINIFTER M,CHINE,et al.A Survey of Mobile Malware in the Wild[C]//Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices.Malaysia:ACM,2011:3-14.

[10]WATSON R,MORRISON W,VANCE C,et al.The Trusted BSD MAC Framework:Extensible Kernel Access Control for Free BSD 5.0[C]//Proc.2003 USENIX Annual Technical Conference.San Antonio,Texas:FREENIX Track,2003:285 -296.

[11]BLAZAKIS D.The Apple Sandbox[R].USA:Blackhat,2011.

[12]MILLER C.Mobile Attacks and Defense[J].Security& Privacy,2011,9(04):68 -70.

[13]NYGARD S.Class-dump[EB/OL].(2013-11-16)[2013-12-13].http://stevenygard.com/projects/class- dump/.

[14]张帅,范荣双,梁勇,等.基于手机定位方法的研究与精度分析[J].全球定位系统:2011,36(02):45-48.ZHANG S,FAN R S,LIANG Y.Phone-based Location Method and Accuracy Analysis[J].GNSS WORLD OF CHINA:2011,36(02):45-48.

[15]HARALANOVA C.Jailbreak Me,Possess Me:Mobile Hacking Practices[EB/OL].(2012-10-05)[2013-12 -10].http://wi.mobilities.ca/jailbreak - me -possess-me-mobile-hacking-practices/.

[16]YLONEN T,LONVICK C.The Secure Shell(SSH)Protocol Architecture, RFC4251 [S]. [s.l.]:[s.n.],2006.

[17]PORRAS P,SAIDI H,YEGNESWARAN V.An Analysis of the iKee.b iphone Botnet[M].Berlin Heidelberg:Springer,2010:141 -152.

[18]阿里核心系统团队.Apanic IP地址段的获取与整理方法介绍[EB/OL].(2011-04-05)[2014-01-22].http://csrd.aliapp.com/?p=908.CoreSystem Team of Alibaba.Introduce of Crawling and Analyzing Apanic IP Addresses.[EB/OL].(2011 -04 -05)[2014 - 01 - 22].http://csrd.aliapp.com/?p=908.

[19]RENARD M.Practical iOS AppsHacking[EB/OL].(2012-10-19)[2013-12-16].http://ensiwiki.ensimag.fr/images/4/40/GreHack-2012-paper-Mathieu_Renard_ - _Practical_iOS_Apps_hacking.pdf

[20]ESSER S.Exploiting the iOS Kernel[R].USA:Blackhat,2011.

猜你喜欢

应用程序程序机制
删除Win10中自带的应用程序
试论我国未决羁押程序的立法完善
自制力是一种很好的筛选机制
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
破除旧机制要分步推进
注重机制的相互配合
打基础 抓机制 显成效
关闭应用程序更新提醒