“SandJacking”攻击:在未越狱的 iOS 设备上安装恶意应用

简介:

在HITB 2016 会议中,Mi3 Security公司的安全研究员Chilik Tamir发表了一个关于“SandJacking”攻击的演讲,利用一个未打补丁的iOS漏洞在未越狱的iOS设备上使用恶意版本替换合法的应用程序,获取设备的敏感信息。

开发一个以Apple iOS系统为目标的恶意软件并不简单,首先,iOS中的应用程序都运行在沙箱中以防止其他进程访问。沙箱中包含文档、数据库、cookies……其中的任何一项都会导致严重的信息泄露,因此保护沙箱十分重要。

苹果也尝试要求所有通过官网应用商店发布的应用程序使用证书签名,而该证书则需要根据严格的识别程序获取。另外,苹果公司会对应用程序进行严格的审查,其安装过程也会经过全面的验证。

尽管如此,还是有一些攻击者可以利用设计缺陷和漏洞使用恶意软件感染设备。例如WireLurker,YiSpecter,XCodeGhost,ZergHelper,AceDeceiver。

滥用苹果证书安装恶意软件

Chilik Tamir在会上演示了攻击者如何利用苹果最新推出的开发功能安装恶意软件。

在Xcode 7的介绍中,独立开发者只需要提供Apple ID就可以获取证书,创建iOS应用程序。众所周知,创建Apple ID十分容易,创建者只需要提供一个用户名和一个电子邮箱——当然,这些都无法证实是否真实。

但是应用程序的开发者并不想将这些类型的证书上传到应用商店,这就意味着,他们可以不受苹果的审查。当然,相比那些通过正规程序获取证书的应用,这些应用的功能显然是受限的。准确的说是,这些应用程序不允许访问苹果支付,应用程序域,游戏中心,iCloud,内购功能,存折/钱包,并且它们不能使用推送通知。

然而,这些使用“匿名”证书创建的应用仍然可以用于恶意软件,利用获取GPS数据,访问受害者的地址簿和日历,泄露exif数据,使用HealthKit框架(用于健康和健身应用)。

Su-A-Cyder工具

Tamir发布了一个名为Su-A-Cyder的POC工具,可以创建恶意的版本快速替换iOS设备中的合法应用。该工具创建的程序与合法的应用发挥同样的功能,但是其中包含恶意的功能,使攻击者可以该应用的完全控制和访问权限。

由于Su-A-Cyder设计成在目标设备连接计算机时,使用恶意应用替换合法应用,因此该工具及其威胁向量更适用于具有高度针对性的攻击,例如攻击者可以接触目标设备并已知密码。

然而,Tamir指出,Su-A-Cyder攻击还有一些可利用场景。例如,想要监视其配偶和子女的人,拥有多个设备访问权的手机维修店员,企业员工将设备交给IT技术人员等。

在iOS 8.3版本发布之前,攻击者可以很容易地通过为恶意软件分配一个类似的标识符(绑定ID)并在设备上安装(覆盖原有版本)来替换合法的应用。iOS 8.3版本之后,苹果禁止与存在ID相似的Apple ID安装应用。

SandJacking攻击

Tamir发现了一种新的方法,并将其命名为SandJacking,攻击者可利用该方法在最新版本的iOS设备中使用Su-A-Cyder技术。

尽管苹果在应用安装过程中会打补丁,但是它忽略了恢复过程。这就使得拥有访问权限的攻击者可以创建备份,删除合法应用,安装恶意版本,然后从备份中恢复设备,该恢复不会删除恶意应用,攻击者可以访问该应用相关的所有数据。

值得注意的是,该恶意应用只能为攻击者提供应用沙箱的访问权限。这意味着攻击者需要为每个目标应用程序创建恶意版本。但是Tamir认为如果考虑自动化的话这将不会成为阻碍攻击者的难题。

在会议上,Tamir以Skype为例演示了SandJacking攻击。他在一次采访中说,SandJacking攻击已经在多个流行应用中成功测试。

恶意应用安装后,用户很难发现它与原程序的区别——用户需要查看应用的证书和设备配置,验证该应用是否来自合法的开发者。

该SandJacking漏洞在2015年12月被研究人员发现,并在1月报告给苹果,苹果已经确认了该漏洞,但是还没有发布补丁。该漏洞修复后,Tamir会发布利用该漏洞利用工具。
本文转自d1net(转载)

相关文章
|
3天前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
14 5
|
9天前
|
Swift iOS开发 UED
揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【9月更文挑战第5天】本文通过具体案例介绍如何在iOS应用中使用Swift与UIKit实现自定义按钮动画,当用户点击按钮时,按钮将从圆形变为椭圆形并从蓝色渐变到绿色,释放后恢复原状。文中详细展示了代码实现过程及动画平滑过渡的技巧,帮助读者提升应用的视觉体验与特色。
31 11
|
13天前
|
API iOS开发
探索iOS开发:打造你的第一个天气应用
【8月更文挑战第31天】 在这篇文章中,我们将一起潜入iOS开发的海洋,从初学者的角度出发,一步步构建我们自己的天气应用。通过实际的项目实践,你将学习到如何获取网络数据、如何在界面上展示这些数据,以及如何处理用户交互。文章以通俗易懂的语言,结合代码示例,引导你理解并实现一个简单天气应用的核心功能。无论你是编程新手还是希望扩展你的iOS开发技能,这篇文章都将为你提供宝贵的指导和启发。
|
5天前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
在数字时代的浪潮中,安卓和iOS这两大操作系统如同双子星座般耀眼夺目,引领着移动应用的潮流。它们各自拥有独特的魅力和深厚的用户基础,为开发者提供了广阔的舞台。然而,正如每枚硬币都有两面,安卓与iOS在开发过程中也展现出了截然不同的特性。本文将深入剖析这两者在开发环境、编程语言、用户体验设计等方面的显著差异,并探讨如何根据目标受众和项目需求做出明智的选择。无论你是初涉移动应用开发的新手,还是寻求拓展技能边界的资深开发者,这篇文章都将为你提供宝贵的见解和实用的建议,帮助你在安卓与iOS的开发之路上更加从容自信地前行。
|
13天前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
66 0
|
图形学 iOS开发
Unity 之 记录打包IOS首次安装启动弹窗通知权限问题
IOS应该如何去掉首次进程序的获取权限确认框。
736 0
Unity 之 记录打包IOS首次安装启动弹窗通知权限问题
|
3天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
1天前
|
API Android开发 iOS开发
安卓与iOS开发中的线程管理对比
【9月更文挑战第12天】在移动应用的世界中,安卓和iOS平台各自拥有庞大的用户群体。开发者们在这两个平台上构建应用时,线程管理是他们必须面对的关键挑战之一。本文将深入探讨两大平台在线程管理方面的异同,通过直观的代码示例,揭示它们各自的设计理念和实现方式,帮助读者更好地理解如何在安卓与iOS开发中高效地处理多线程任务。
|
3天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术与科学
在移动应用开发的广阔天地中,安卓与iOS两大平台如同东西方哲学的碰撞,既有共通之处又各具特色。本文将深入探讨这两个平台的设计理念、开发工具和市场定位,旨在为开发者提供一份简明扼要的指南,帮助他们在这场技术与商业的博弈中找到自己的道路。通过比较分析,我们将揭示每个平台的优势与局限,以及它们如何影响应用的性能、用户体验和市场接受度。无论你是初涉江湖的新手,还是经验丰富的老手,这篇文章都将为你的选择提供新的视角和思考。
16 5
|
3天前
|
开发工具 Android开发 Swift
探索安卓与iOS开发的差异:从新手到专家的旅程
在数字时代的浪潮中,移动应用开发已成为连接世界的桥梁。本文将深入探讨安卓与iOS这两大主流平台的开发差异,带领读者从零基础出发,逐步了解各自的特点、开发环境、编程语言及市场策略。无论你是梦想成为移动应用开发者的初学者,还是希望扩展技能边界的资深开发者,这篇文章都将为你提供宝贵的见解和实用的建议。