《黑客大曝光:移动应用安全揭秘及防护措施》一3.4 入侵别人的iPhone:再次释放心中的怒火

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

3.4 入侵别人的iPhone:再次释放心中的怒火

到目前为止,我们已经讨论了一系列可以通过越狱而激发iPhone的所有潜能的方法。现在让我们把注意力转移到其他方面。与其关注怎样入侵自己的iPhone,还不如看看怎样入侵他人的设备。
在本节,我们将讨论在获取iOS设备权限的过程中遇到的多种多样的事件、演示和困难。我们将会看到,相对于其他系统,想对iOS设备发起一次成功的攻击,可采用的方法是有限的。iOS具有极少的网络概要信息,导致远程的基于网络的攻击几乎不可能。当运行较老或配置错误的网络服务时,越狱设备在连接到网络后将面临较多的风险。然而,由于越狱设备只是所有在线设备里较少的一部分,因此常规的攻击方法不能依赖于这些服务。从某种意义上来所,iOS采用了桌面客户端操作系统如Windows的安全趋势,默认关闭了访问大多数或全部的网络服务。但一个最主要的区别在于,网络服务没有为文件共享的互操作或其他服务而再次激活。这就意味着,从远程网络访问iOS以获得访问权限是非常困难的。
当然,除了传统的基于网络的远程攻击,攻击者还有其他可选的攻击手段。大多数攻击手段采用组合多种攻击方法,如客户端漏洞利用、局域访问或物理访问设备。局域网或基于物理访问攻击的可行性取决于攻击目标安全漏洞。如果目标设备只是跟任何连接到局域网上有漏洞的系统有关,基于局域网的攻击才有效。对于一个攻击目标,通过无线接入点(WAP)连接,一旦它出现在机场、咖啡店或者任意一个人口流动性很大且经常使用WiFi的地方,就可以发动此类攻击。如果一个特殊的用户或者企业成为了目标,攻击者就要首先获取目标设备所在局域网的远程访问权限。或者是另外一种情况,即位于目标用户的位置周围,目标用户连接到一个共享的且不安全的无线网络,或诱惑用户连接到一个恶意无线接入点上。对于以上两种情况,进入的门槛很高,而且成功的可能性很低,因为获取特定的局域网的远程访问权限或诱使一个目标用户到特定的无线网络中都非常复杂。
以物理方式访问设备的攻击者拥有更多可选的攻击方式。能够执行基于启动的越狱,访问文件系统的权限,并攻击密钥链及其他保护机制,从设备中成功获取信息的可能性也增大了。然而,获取对设备的物理访问权限具有挑战性,这意味着物理上的接近和偷窃。鉴于此,考虑到个人设备很容易丢失或被盗,针对设备的物理攻击需要严肃考虑。但是若想开发一组通用工具包和方法来入侵基于iOS的设备,就显得有些不切实际。
留给攻击者的实际选择通常归结为客户端攻击。客户端攻击在iOS捆绑的应用程序中多次出现,尤其是Mobile Safari中。当攻击一个iPhone时,通过已知的影响到这些应用程序和其他组件的漏洞列表,攻击者就拥有多种选择。设备上运行的iOS版本对于攻陷设备来说是十分重要的。通常,iOS的版本越老,就越容易获取其访问权限。只要发起攻击,可用的方法和桌面操作系统类似,包括在Web服务器上提供恶意文件或通过邮件传播这些恶意文件。攻击不局限于与iOS捆绑的应用程序,还可以扩展到第三方应用程序。在第三方应用程序中发现并报告出来的漏洞说明攻击确实存在于iOS中。我们有足够的理由推断,随着通过App商店以及像Cydia商店之类的其他商店可以获取的应用程序不断增多,利用应用程序漏洞和客户端攻击将继续成为获得iOS设备访问权的首要选择。
如果攻击的动机是获取应用程序沙箱内可访问的信息,通过利用程序漏洞获取对iOS的初始访问权限对攻击者来说就足够了。如果攻击者想要获取设备的全部控制权,入侵难度也显著增加。在获得了对应用程序的控制权之后,第一步就是通过利用内核级别的漏洞来攻破沙箱的限制。由于内核级别的漏洞非常少,且找到并利用这些漏洞需要更高级的技术,另外具有利用这些漏洞的能力的人也占少数。利用一个新的内核级别的漏洞来入侵沙箱说起来容易,做起来难。特别是针对iOS 6,该操作系统版本的内核采用ASLR,因此攻击内核变得更为困难。对于大多数攻击者,一个更可行的方法就是坐等漏洞出现,并在没有发布补丁来修补漏洞之前攻击用户,或去攻击使用老版本iOS的设备。
在我们介绍一些具体的攻击例子之前,最后需要注意的一点是,与其他平台相比,很少有专门对iOS实行非授权访问的工具。可以获取的与安全有关工具大多数是针对iOS中心的越狱(假定这是与设备拥有者达成一致的越狱,或所有者授权下执行的越狱,那么这些就是有效的被授权的活动)。许多这样的工具可用于双重目的。例如,当设备被攻击者占据之后,就可以利用基于启动过程的越狱来获取对设备的访问。相似的,从jailbreakme.com或其他来源中的越狱工具也可以获取连接网络设备的访问权限。通常来说,当以iOS为目标进行恶意攻击时,攻击者既可以修改现有的工具实现恶意攻击目的,也花费大量时间从新开发越狱工具以实现恶意的攻击。
好了,我们已经进行了高度概括的介绍,下面让我们详细地介绍一些特定攻击的示例。
JailbreakMe 3.0漏洞
我们已经见到了目前最流行的iOS攻击:利用漏洞进行iPhone越狱。尽管在越狱过程中,这些攻击都是在本地实现的,但是想阻止企业级的攻击者远程使用相似的漏洞是不可能的。例如,创建一个恶意文件,该文件能控制其载入的应用程序。该文件随后会通过网站、邮件、聊天或其他常用的媒介分发给用户。在PC界,此类攻击方法在近年来作为许多恶意软件感染和入侵的基础。尽管从远程网络攻击的角度来讲iOS是安全的,即使苹果公司宣称其使用了高级安全架构,iOS在面对这些类型的攻击时还是会暴露出它的漏洞。
此类攻击在本章早先介绍的JailbreakMe 3.0(或JBME 3.0)示例中得到了很好的演示。我们从中了解到,JBME 3.0利用了两个漏洞:一个是PDF程序设计错误;另一个是内核程序设计错误;苹果的iOS 4.3.4安全公告(support.apple.com/kb/HT4802)给我们提供了有关这两个漏洞的更多细节。第一个问题CVE-2011-0226,FreeType Type 1 Fonthanding 处理错误,可导致任意代码执行。这里所提到的是包括一个特殊构造的Type 1字体加入到PDF文件中,当加载时便会导致前述代码的执行。第二个问题是CVE-2011-0227,这是一个无效的类型转换错误,它会影响IOMobileFrameBuffer,可导致使用系统级别权限执行任意代码。
 为了更好地了解CVE-2011-0226机制,可参考esec-lab.sogeti.com/post/Analysis-of-the-jailbreakme-v3-font-exploit.
这些漏洞的初始攻击向量是加载一个特殊制作的PDF到Mobile Safari中。这时,负责解析文档的代码触发了一个漏洞,之后,特制的PDF文件中包含的漏洞逻辑便可以控制整个应用程序。此后,这一漏洞逻辑继续利用该内核漏洞,最终控制整个设备。对于希望对其iphone进行越狱的用户来说,这不算什么。然而,对于关注安全的人来说,上述不安全情况可能发生这一事实也许会让他们惊讶。如果JBME 3.0技术可以利用这样一对漏洞来获取设备的完全控制权,那么要阻止类似的技术被用于恶意目的需要做什么呢?不管怎样,答案是—几乎没有。
 苹果公司在2011年7月发布了iOS 4.3.4这一版本,以补救JBME 3.0利用漏洞所造成的问题。大多数设备已经不再使用易受攻击的iOS(4.3.3及更低版本),也不再易被攻击向量感染。
针对JBME 3.0漏洞的防范对策
无论我们多么迷恋越狱,确保你的操作系统和软件安装最新的补丁是最好的安全方法,另外越狱使设备安全更困难,也充满了不确定性。第一,你必须保留iOS的漏洞,以保证越狱能成功。第二,一旦系统被越狱了,你就无法从苹果公司获取官方更新的补丁对漏洞进行修补。除非你在每一次新的补丁发布时,重新越狱你的手机,或者是从非官方渠道获取补丁,我们推荐将你的设备设置为通过无线自动保持更新(iOS 5.0.1及以后版本拥有通过无线进行更新这一功能)。同时记住定期更新你的应用程序(当安装的应用程序有更新时,你将从App商店中看到提示)。
iKee攻击!
时间:2009年,地点:澳大利亚。你最近购买了一个iPhone 3GS并渴望释放它的潜能。为了实现这一目的,你通过USB接口将你的手机与电脑连接,打开信任的越狱应用程序,然后点击鼠标,你便拥有了一台越狱的iPhone!当然,第一件要做的事就是运行Cydia并安装OpenSSH。如果你不能使用命令行,那为什么需要一部越狱的电话呢,对吧?从此刻起,你继续安装你喜欢的工具和应用程序:vim、gcc、gdb、Nmap等。电视上正在播放有趣的节目,你放下手机去看一会儿电视,忘记了改变root权限账户的默认口令,不久之后,你拿起手机,试图解锁屏幕,然后惊奇地发现墙纸被设置成了20世纪80年代英国流行歌手Rick Astley的照片(如图3-11所示)。你被戏弄了!噢,不要!
《黑客大曝光:移动应用安全揭秘及防护措施》一3.4 入侵别人的iPhone:再次释放心中的怒火

2009年11月,第一个攻击iOS的蠕虫病毒被检测到。这种蠕虫病毒称为iKee,它扫描到分配给荷兰和澳大利亚的电信运营商的IP块就会自动运行。扫描的逻辑直截了当:识别设备开启了TCP 22端口(SSH),并尝试使用默认证书“root”和“alpine”(越狱iPhone最常见的默认账户)进行登录。该蠕虫的变种如iKee.A在登录之后会执行一些基本的操作,如关闭用户授权访问的SSH服务器、改变手机的墙纸,以及将蠕虫二进制代码拷贝到设备本地。从这一刻起,被感染的设备就可以用于扫描和感染其他设备。像iKee.B之类的后续变种引入了类似僵尸网络的功能,通过命令和控制信道来远程控制被感染的设备。
iKee是影响iPhone安全问题的历史上的一个有趣的里程碑。这个蠕虫过去是,而且将来也一直会是第一个、也是唯一一个以公开方式成功入侵iOS的恶意软件实例。该蠕虫利用iPhone手机的一个基本配置的弱点,而且早期变种的功能相对较弱,虽然如此,它证实了iOS确实面临真实世界的威胁并可能受到攻击这一事实。
 可以从http://pastie.org/693452获取iKee蠕虫的源代码,该代码最初于2009年11月发布。
iKee已经证实了iOS可能被远程入侵,但这并不一定表明iOS本身具有漏洞。事实上,其对立面也许是更公平的例子。iOS是一个类似于Unix的操作系统,其架构与Mac OS X的架构有关。这意味着这个平台可能受到以攻击其他Unix系统一样的方式发起的攻击。发起攻击的方式有以下这些,但不仅限于这些:利用有漏洞的网络服务发动的远程网络攻击;利用应用程序的漏洞发动的客户端攻击;本地网络攻击,诸如网络流量的中间人(MiTM)攻击;接近目标设备的物理攻击。然而,要注意的是,iOS的特征使得其中的一些技术与在其他平台上相比不太奏效。
例如,刚投入使用的iPhone,它的网络配置文件提供的信息很少,只开启了一个TCP端口62087,目前尚未发现针对此服务的攻击,但是这并不是说以后也不会发现此类攻击,更中肯地说是,iOS的整个网络配置文件能提供的信息量是相当少。在现实中,从远程发起网络攻击以获取对(未被越狱过的)iPhone的非授权访问几乎是不可能的。由于留下的攻击面实在太少,因此并未发现以标准服务(如SSH、HTTP和SMB)为目标的攻击。让我们向在此方面给iPhone提供安全配置的苹果公司致敬。
 一些远程漏洞已被发现,其中一个与处理ICMP请求有关,且可能导致设备重置的漏洞(CVE-2009-1683),另一个是由Charlie Miller发现的iOS在短信处理过程中的漏洞(CVE-2009-2204)。将来可能出现漏洞且需要引起注意的地方有:局域网的支持方面,设备上的其他无线接口,包括基带、Wi-Fi驱动程序、蓝牙等。
 记住,移动设备可能受到通过其IP网络接口和移动手机网络接口实施的远程攻击。
当然,也有其他因素影响iOS的漏洞,使其遭受远程网络攻击。如果一个设备被越狱了,且安装了像SSH之类的服务,则受攻击的面就会增加(如iKee所示那样)。用户安装的应用程序也可以在网络中监听服务,这进一步增加了遭受远程攻击的风险。然而,这些程序只是执行很短暂的一段时间,所以它们不能作为获得设备的远程访问权限的一种可靠的方式。这种情况有望在将来改变,因为关于通过网络来利用应用程序漏洞这方面的研究成果很有限,在将来也许会有更多的漏洞被陆续发现。
 2009年Pinch Media发布的统计报告显示,5%~10%的用户越狱了其设备。iPhone设备开发小组在2012年1月的博客上表示,超过一百万的iPad 2和iPhone 4S(A5)用户在该平台的第一个越狱软件发布之后的3天内就越狱了其设备。2013年初TechCrunch发布的数据指出,大约有2200万越狱设备用户,也就是占iOS所有用户的5%的用户主动使用了Cydia。
针对iKee蠕虫/SSH的默认证书攻击的防范对策
发生iKee蠕虫的主要原因是由于错误配置的越狱iPhone连接到了网络中。第一个也是最主要的防范此类攻击的措施就是:不要越狱你的iPhone!如果你必须要越狱,好,没问题!请在安装SSH之后马上修改越狱设备上的默认证书(登录账号和口号),并确保只连接到可信任的网络。另外,像SSH之类的网络服务只有当有需要的时候才开启。可以安装诸如SBSetting之类的实用工具,SpringBoard可以用来快速开启或关闭像SSH之类的功能。否则,对于一般的越狱设备来说,只要有可能,必须确保设备更新为对应iOS的最新越狱版本,同时及时安装由越狱社区提供的针对漏洞的补丁。
FOCUS 11的中间人攻击
2011年10月,在拉斯维加斯举办的McAfee FOCUS 11会议上,Stuart McClure和McAfee TRACE团队演示了一系列入侵,包括针对iPad的现场入侵。执行攻击的具体过程是,为MacBook Pro电脑安装和设置两个无线网卡,然后配置其中一个网卡来作为恶意无线接入点(WAP)。这个无线接入点被分配了一个SSID,这个SSID类似于会议中合法的无线接入点的SSID。这样做是为了说明用户很容易上当并连接到恶意的无线接入点上。
然后配置桌面系统将所有来自那个恶意无线接入点的通信数据流转发到一个合法的无线接入点。这使得在桌面电脑系统上运行的工具具有了中间人通信数据流的接收和转发能力—接收或转发来自iPad的通信数据流。据Trustware SpiderLab的报道,为了让这一切更有趣,演示中还利用了CVE-2011-0228 X.509证书链验证的漏洞,为SSL连接的中间人提供了证书支持。
上述设置一经完成,就用iPad来浏览Gmail(在SSL协议层上)。Gmail被加载到iPad的浏览器中,不过邮件中增加了一点东西,即iframe中含有一个到PDF文件的链接,该文件可以用来悄悄地获取设备的root权限,如图3-12所示。加载的PDF与JBME 3.0 PDF相似,但经过了修改,以避免改变SpringBoard的外观,如增加Cydia图标。然后使用该PDF来加载自定义的freeze.tar.xz文件,其中包含越狱后需要的文件以及在设备上安装SSH和VNC所需要的相应软件包。
FOCUS 11入侵演示的目的就是纠正谬误,回归真相。许多人都有这样的印象,即,像iPhone或iPad这样的设备对各种攻击都是“天生免疫”的。这个演示改变人们这种错误观点,因为获取iOS设备的非授权访问也是完全可能的。这种入侵攻击综合利用了几种漏洞攻击技术:客户端漏洞的JBME 3.0技术,SSH证书验证漏洞的攻击技术和基于局域网的攻击技术。这表明了不仅iOS可以被入侵,而且可以使用多种方法入侵。同时这也表明,攻破iOS不是一次就能搞定的,或者说要攻破它并不是只有少数的几种方法,利用多个漏洞发起的复杂攻击还是可能攻破iOS的。总之,利用恶意无线接入点来实施攻击的演示说明了对iOS的攻击不只是停留在理论上,而是真实存在的。上述演示过程很容易复制,并且整个攻击场景在现实中也很容易实施和重现。

《黑客大曝光:移动应用安全揭秘及防护措施》一3.4 入侵别人的iPhone:再次释放心中的怒火

针对FOCUS 11的防范对策
FOCUS 11攻击利用了一组漏洞和一个恶意无线接入点,获取受影响设备的非授权访问权限。操作系统的基本组件被颠覆的事实,使得找到技术上能够用于抵御此类攻击的防范方法非常困难。
正如在“针对JBME 3.0漏洞的防范措施”中概括的那样,防范此类攻击的第一步是更新你的设备,并使其保持更新。另外一个简单的防范措施是配置你的iOS设备为“Ask to Join Networks”(在加入网络前进行询问),如图3-13所示。对于已知的网络依然可以自动加入,但是在加入新的未知网络前用户则会被询问,这至少给了我们做出决定的机会:是否要连接到一个可能是恶意的网络上。是的,FOCUS 11攻击使用了一个看似友好的Wi-Fi网络名,也许一个必要的忠告就是:不要连接到未知的无线网络。现今,能够听从这一忠告的人几乎为零(否则你如何在星巴克查看你的Facebook),但是至少,我们已经警告过你了!
《黑客大曝光:移动应用安全揭秘及防护措施》一3.4 入侵别人的iPhone:再次释放心中的怒火

假定在移动设备上进行网络连接是不可避免的,防范此类攻击的方法最终落实到对设备上存储数据的价值进行评估。例如,如果一个设备永远不会处理敏感数据,或用于访问此类数据,那么此设备被攻陷的风险就微乎其微。在这种情况下,连接到不受信任的网络并访问网页或其他资源基本上不会有什么问题。但对于一个存储和处理敏感数据的设备来说,就需要给予密切关注。当然,让敏感数据彻底远离移动设备是比较困难的,像电子邮件、应用程序和网页浏览都只是可能泄露系统中敏感数据的一些渠道而已。
在任何一种情况下,FOCUS 11演示程序都表明,仅仅是简单地连接到一个无线网络并浏览一个网页,设备都可能被完全控制。即使使用了SSL加强网页浏览安全,设备还是可能被完全控制。正因为如此,用户必须牢记此类事情会发生的事实,并对其要连接到的网络进行仔细检查,以避免将设备或敏感数据置于危险的境地。
恶意应用程序:Handy Light和InstaStock
当然,还有许多其他的客户端攻击方法,用于获取对iOS的非授权访问。其中最主要,也是更复杂的一种攻击方法是引诱用户在其设备上安装恶意应用程序。此攻击方法面临的挑战不仅在于欺骗用户,而且还在于“搞定”苹果公司的应用程序分发模式。在本章的前部分,我们提到在iPhone上市后不久iOS就增加了对安装第三方应用程序的支持。为实现这一支持,苹果公司决定实现一个严格控制的生态系统,及所有的应用程序都要求由苹果公司签名,并且只能从官方的App 商店发布和下载。一个应用程序为了能保证在App商店展出,它必须先提交给苹果公司审查,如果在审查过程中发现了问题,则提交会被拒绝,这就意味着该应用程序不能被分发(至少,对于使用非越狱iPhone的用户是如此)。
苹果公司并没有公开其审查过程的所有细节。正因为如此,人们对在应用程序的审查阶段究竟需要检查什么项目缺乏清晰的认识。特别是对确定一个应用程序是否是恶意的相关检查信息所知甚少。不过,一个恶意软件要想通过App商店发布几乎是不可能的。一些泄露信息如电话号码、联系信息或者其他设备或用户的具体信息的应用程序都会被检测出来,并被下架停止销售。因此很多人认为,即使在审查过程的细节不为人知的前提下,审查的效果也是显著的;然而,我们也会不时看到恶意软件的报道。除了现实世界中的几个例子让我们从安全角度怀疑审查过程的有效性,从目前看来,恶意软件不可能或不存在于App商店中这一事实,让我们觉得苹果公司目前的审查手段还是很有效的。这可能是一个合理的结论。
在2010年,一个名为Handy Light的新应用程序提交到苹果公司进行审查,通过审查之后就被放到了App商店中销售。这个应用程序从表面上看像一个简单的闪光灯应用,提供了一些用于选择光线颜色的选项。在其发布之后不久,Handy Light包含一个隐藏无线共享功能的消息就众所周知了。该无线共享允许用户以特定的顺序点击闪光的颜色,随后就可以让电话开启一个SOCKS代理服务器,通过服务器可以让一台计算机通过无线共享功能利用电话的移动网络。该功能一经公布,苹果公司就把该应用程序从App商店下架了,这样做主要是因为苹果公司不允许包含支持无线共享的应用程序在其App商店中销售。
这其中最有趣的是苹果公司在审查了Handy Light之后,批准了这个事实上包含无线共享的应用程序,他们为什么这样做?原因可能是该功能被隐藏了,并在审查过程中被忽略了。公平地说,这种错误确实会发生。但是,如果像无线共享这样的功能可以被隐藏并避开审查过程,那么审查过程是如何阻止其他隐藏的恶意功能呢?
2011年9月,著名的iOS黑客Charlie Miller提交了一个名为InstaStock的应用程序到苹果公司进行审查。该应用程序被审查通过,并发布在App商店*下载。InstaStock表面上允许用户实时跟踪股票报价,据报道有数百个用户下载了这个应用。在InstaStock中设计的隐藏逻辑可以利用iOS中的一个“0-day”漏洞,该漏洞允许应用程序加载并执行未签名的代码。由于iOS中存在运行时代码签名验证,因此上述现象是不可能发生的。然而,在iOS 4.3中,苹果引入了一些新的功能使得InstaStock能够实现。事实上,在iOS 4.3中,苹果引入了在某些特殊情况下可以执行未签名代码的功能。理论上,该功能只对Mobile Safari开放,并只能用于开启JavaScript的即时编译(JIT)。后来的结果显示,该功能实现上的一个错误导致该功能对所有应用程序都是开放的,而不只对Mobile Safari开放。该漏洞后来归档为CVE-2011-3442,它使InstaStock应用程序能够使用特定的一组标识调用mmap系统,从而获得了绕过代码签名验证的能力。有了执行未签名代码的功能,InstaStock应用程序能够连接到一个命令并控制服务器,来接收并执行命令,执行诸如下载图片和从受影响设备中获取联系人信息等恶意操作。图3-14所示为InstaStock应用程序。
《黑客大曝光:移动应用安全揭秘及防护措施》一3.4 入侵别人的iPhone:再次释放心中的怒火

提到iOS攻击,Handy Light和InstaStock应用程序告诉我们一个事实,可通过App 商店植入一个攻击。此类攻击的许多方面不为人知。可以肯定苹果公司会致力于改善其审查过程,并随着时间的推移,要成功地隐藏恶意功能将变得更加困难。究竟什么可以避开审查过程并不清楚。以InstaStock应用程序为例,利用一个先前未知的漏洞,在提交审查的应用程序中包含利用这个漏洞的恶意代码的情况是非常少见的。除去“0-day”这个漏洞,要在应用程序中包含恶意代码就需要增加更多的代码,这使得应用程序在审查过程中被打上标签并增大被拒绝的可能性。
如果攻击者的目的是获取尽可能多的设备的访问权限,他会去经历这一系列麻烦,而且他一定会这样做。App商店中可供下载的应用程序的不精确性和发布的广泛性表明,它是传播恶意应用程序的诱人途径。然而,如果攻击者以某个特定用户作为目标,那么通过App商店进行攻击将非常复杂。攻击者必须建立一个恶意应用程序,避开审查过程,并最终找到欺骗用户在其设备上安装该应用程序的方法。攻击者可结合一些社会工程学方法,例如可以从用户的Facebook中获取数据,然后根据用户的喜好来创建应用程序。应用程序随后可以使用Facebook的墙面公告,通过一个“itms://”链接推送到指定的目标进行售卖。不需要多费力,就能设想几个这样的场景,在不久的将来,在本质上与此类似的东西也许就可能实现。
针对App商店恶意软件的防范对策
Handy Light和InstaStock例子说明了具有预料之外和恶意行为的软件可能越过审查,并出现在苹果的App商店中。虽然苹果希望这样的情况不要发生,并且更希望人们从App 商店下载应用程序时不用担心自己的设备会受到威胁,但是现实情况证实风险还是存在的。正如面对FOCUS 11类似情况,用于防范从App商店下载预料之外的或恶意应用程序的措施很少甚至几乎没有。苹果不允许在设备上安装安全产品,也没有供应商开发此类产品。此外,由于出现概率小,而且要开发能够实现与iOS生态系统成功集成的此类产品的复杂度很高,所以很少有用于维护iOS安全的工具(用于设备、网络或其他地方)。大多情况下,这意味着对于发布在App商店中的恶意应用程序,用户几乎无能为力,除非在购买和安装应用程序的过程中更加谨慎。到目前为止,多数应用程序是安全的,而且也没有发现恶意软件,对此用户会稍感安慰。来自著名开发商的应用程序几乎都是安全的,且安装也不会有任何问题。对于存储高度敏感数据的用户来说,推荐只在确实有必要使用时才安装所需的应用程序,而且只从有信誉的供应商处获取应用。另外,如果可能,尽量安装最新版本的固件,因为新的固件版本通常解决了可能被恶意软件用于获取设备访问权限的问题(例如JBME3.0内核漏洞利用或InstaStock未签名代码执行的问题)。
具有漏洞的应用程序:iOS绑定的应用程序和第三方应用程序
在21世纪早期,攻击者使用的技术基本都是远程探索网络服务代码的漏洞。在一些流行的UNIX或Windows网络服务中,基本每隔一周就有一个新的远程程序设计bug被发现。在此期间,像Windows XP之类的客户端操作系统默认都会开启一些网络服务,而且也没有主机防火墙。这些因素综合在一起,最终导致了通过网络入侵任意系统相对容易实现。随着时间的流逝,开发商开始更严肃地考虑安全问题,并开始限制网络服务代码,并为客户端操作系统提供默认配置。到21世纪前10年的后期,此类安全获得了显著的改进。随着安全的加强,漏洞研究者开始转向其他领域,尤其是客户端漏洞。从21世纪前10年中期开始,在流行的客户端应用程序中发现了大量的问题,包括Internet Explorer、Microsoft Office、Adobe Reader和Flash、Java运行时以及QuickTime。诸如此类的客户端应用程序漏洞被用于传播恶意软件,或针对特定目标发动如钓鱼攻击或高级持续性危险(APT)类型的攻击。
有趣的是,对于iOS这样的移动平台,几乎没有发现远程网络攻击的存在,业界也没有对此领域的第三方应用程序的风险进行大量研究。这并不表示没有人在对应用程序的漏洞进行研究,因为大量与iOS应用程序有关的致命问题都已经被发现,其中包括最出名的一系列影响Mobile Safari的问题。然而,对于非绑定的应用程序,几乎没有问题被发现和公布,到目前为止还没有发现像Windows中的Flash那样被广泛使用的第三方应用程序,这也许是最合理的解释,因此没有很强烈的动机让人们对此领域进行研究。
在所有事件中,应用程序漏洞都被认为是对基于iOS的设备进行非授权访问的关键因素之一。这么多年来,一系列影响iOS的应用程序漏洞被发现。在因特网上随便搜索就能找到差不多100个影响iOS的漏洞。在这些问题中,其中超过40%都与Mobile Safari有着或多或少的联系。当只针对Mobile Safari时,有大约30~40个漏洞可以被用来提取有用信息,或被用来获取设备(取决于设备的iOS版本)的访问权限。许多漏洞在本质上都是致命的,一旦被利用就会让攻击者有能力执行任何代码。
除了与iOS一起发布的应用程序之外,一些影响第三方应用程序的漏洞也被陆续发现并发表出来。在2010年,一个现在归档为CVE-2010-2913的漏洞被报出来,它影响了Citi Mobile应用程序的2.0.2及其以下版本。这个报道的大意是应用程序将与银行相关的敏感信息存储在设备本地,如果设备被从远程攻击,或者设备丢失、被偷,那么敏感信息就可能从设备中被抽取。这一漏洞并未提供远程访问,且其严重性相对较轻,但是它却恰好说明针对iOS的第三方应用程序,像桌面系统的对应软件一样,只要安全相关的设计存在疏忽,就会受到攻击。
另外一个第三方应用程序的漏洞,现在归档为CVE-2011-4211,在2010年11月被报道出来。这一次,文章说PayPal应用程序受到了一个X.509证书验证问题的影响。事实上,该应用程序并没有验证服务器主机名的值是否与为建立SSL连接而收到的X.509服务器证书的主题字段中的值相匹配。这个漏洞允许一个具有局域网访问权限的攻击者成为中间人,从而获取或修改经由PayPal应用程序的通信数据。该漏洞比Citi Mobile漏洞更严重,因为它允许在没有控制应用程序或设备的前提下,通过局域网访问来利用这个漏洞。然而,这个漏洞的利用需要获取对局域网的访问权,这使得该漏洞在实际中的利用变得十分困难。
在2011年9月,一个跨站脚本攻击漏洞影响了Skype应用程序的3.0.1及其以下版本。该漏洞通过把JavaScript代码嵌入到发送给用户的消息中的“全名”域内,使攻击者能够访问Skype应用程序用户的文件系统。一旦接收到一条这样的消息,嵌入的JavaScript脚本就会被执行,如果与处理URI机制的问题相结合,就可以允许攻击者获取用户的文件,如联系人数据库,并传输该文件到远程系统。从某种情况来看该漏洞是相当有意思的,因为它是第三方应用程序漏洞在不需要获取局域网访问或设备物理访问的情况下也会被远程利用的第一个实例。
2012年4月,iOS上的包括Facebook以及Dropbox在内的几款流行软件受到漏洞的影响,并且导致用于进行身份验证的数据段存在本地设备上,而缺乏更多的安全措施。攻击者可以通过一个应用(如iExplorer)来入侵设备,浏览设备的文件系统和复制文件。这种攻击方式已经被证实。之后,攻击者还可以将文件复制到另一设备上,并且通过“借来”的证书来登录。
2012年11月,iOS上的Instagram应用程序的3.1.2版本受到了一个信息泄露漏洞的影响。这个漏洞允许能对设备网络连接进行中间人攻击的攻击者获取会话信息,并且能利用该漏洞来恢复或删除信息。
2013年1月,iOS上的ESPN ScoreCenter应用程序的3.0.0版本受到了两个漏洞的影响:一个是XSS漏洞,另一个是明文认证漏洞。这个应用程序没有对用户的输入进行审查,而且泄露了敏感数据,包括网络上未加密的用户名及密码。
在此有必要提及,无论目标应用程序是iOS捆绑的应用程序还是安装的第三方应用程序,当要入侵iPhone时,获取应用程序的控制只完成了一半的工作。由于应用程序沙箱和代码签名验证的限制,即便成功获取了对一个应用程序的控制,要从目标设备获取信息还是相对困难的,这和传统的桌面系统不同,在桌面系统上一旦获取了对应用程序的控制,再获取信息的成功率非常大,甚至可以继续攻击系统中各个应用程序的执行。要真正攻陷并占领iPhone,应用程序级的攻击必须利用内核级的漏洞攻击才可能奏效,对于那些期待破解iOS的人来说,这个难度相当高。富有经验的攻击者会倾向于重新利用内核级的漏洞。不管哪种情况,iOS默认绑定的应用程序,再加上App商店中可以下载的超过80万种的应用程序,这些为数众多的应用程序提供了大量的攻击目标,所以在将来,针对应用程序漏洞的攻击将继续成为获取iOS设备初始访问权限的最可靠途径。
针对应用程序漏洞的防范对策
就应用程序的漏洞而言,防范措施将落实到最基本的方式:保证你的设备更新为最新版本的iOS,并保持应用程序更新到最新的版本。通常来说,随着应用程序中漏洞的发现,供应商就会更新并发布修复版本。要跟踪什么时候发现了漏洞或这些漏洞何时会通过更新而被修复有一点困难,所以,最安全的方式就是尽可能保证iOS和所有安装的应用程序都是最新版本。
物理接触
只有考虑黑客对设备实施物理接触式攻击,对于iPhone入侵的讨论才算完整。事实上,从某些方面来说,现在讨论该话题比较合适,因为随着像iPhone之类的智能手机的出现,先前只存放在桌面系统或笔记本上存储的敏感数据,越来越多地渗透到人们日常生活中。对于每天与智能手机紧密联系在一起的员工、领导,查看和发送电子邮件或定期收取并预览文档都是最基本的需求。依据每个人及其角色,从联系人到PowerPoint文档,再到敏感的内部电子邮件,如果被恶意利用,将会对信息的拥有者或其组织造成巨大的损失。同时,此类信息会被人们带到我们所能想象到的各种场合或地点。例如,当领导与客户共进晚餐时,还进行邮件的收发是极其不正常的。手机很可能被遗忘在餐桌上,或者在不注意时被不法分子偷取。
一旦设备落入攻击者之手,要获取对设备上的文件系统的访问权限,并获取存储在设备上的敏感数据只需要几分钟就可以完成。以德国Fraunhofer资讯科技安全研究中心的研究者制作的演示为例,来自该组织的员工在2011年2月发布了一份报告,列出了获取存储在iPhone上的敏感秘钥的步骤。从头至尾整个过程只用了6分钟。具体做法是:使用基于引导过程的越狱方法获得手机的控制,以便获取对文件系统的访问,然后安装SSH服务器,一旦通过SSH获取了访问权限,就会上传一个脚本,使用获得的权限来执行该代码,把保存在设备上密钥链中的口令导出。由于密钥链是用来给许多重要的应用程序存储密钥的,如内置的电子邮件客户端,这一攻击获取了一组初始的证书(登录账户/口令),随后可被用于进一步窃取该设备主人拥有的其他资产。从设备上能够获取的信息在很大程度上取决于安装的iOS版本。对于iOS 3.0之类的老版本,可以从密钥链中获取几乎所有信息。对于iOS 5.0版本,苹果引入了额外的安全机制,将信息暴露的可能性尽量减少。然而,许多信息仍旧可以访问到。这种方法说明了当攻击者实际接触到一部iPhone之后所能实施的入侵的最好范例。
 要获取关于本节介绍的攻击的更多信息,请参考http://sit.sit.fraunhofer.de/studies/en/sc- iphone-passwords.pdf和http://sit.sit.fraunhofer.de/studies/en/sc-iphone-passwords-faq.pdf
另一种更简单的恢复iPhone中数据的方法是iExplorer。iExplorer提供了一种更易于使用的点击界面,可以用来浏览所有已有的iOS设备的文件系统的一些部分。你可以在你的台式电脑或掌上电脑上安装这个应用,连接你的手机到电脑上,然后查看设备的文件系统。虽然你不可能有查看文件系统所有部分的权限,但是你可以查看一些感兴趣的数据,而无需用其他一些更复杂、更费时的方法来获取这些权限。
最后一个依赖于iOS版本的方法,可能是最简单的方法,它只需入侵iOS的屏幕锁。2013年1月发布了一种绕开屏幕锁的黑客技术,这种技术被用于从iOS 6.0.1到iOS 6.1。这种技术是通过许多按钮点击和屏幕点击动作,来最终获取对手机上应用的访问权。从这个屏幕,攻击者可以查看联系人、通话记录以及通话的地点!
针对物理接触式攻击的防范对策
就对设备实施物理接触式的攻击而言,相应的防范措施是十分有限的。主要的方法是确保设备上的所有敏感数据都被加密。加密数据时可以使用苹果提供的功能,以及第三方应用程序提供的加密支持,包括如McAfee、Good等商业供应商提供的加密支持。另外,存储敏感信息的设备必须拥有一个至少六位数字长度的口令。这样做有助于增强存储在密钥链中信息的安全性,并使得针对口令的暴力破解更加难以实现。其他可用于防范物理攻击的对策包括:安装能够用于远程追踪设备位置或远程清理敏感数据的软件。

上一篇:大数据计数原理1+0=1这你都不会算(五)


下一篇:一分钟了解阿里云产品:安全网络五大热点技术问题分析