0


iOS系统越狱研究现状梳理

姓名:李泽涛** 学号:20202132034 **

  • 背景及意义

为了方便讲述,现在为以下几个名词提供一个便于理解的别称

监狱=iOS****操作系统

囚犯=iOS****系统应用

检察官**=**系统用户

监狱长=iOS****系统防盗版程序

这段参考知乎大佬并作了部分修改:iPhone 越狱(Jailbreak)是什么意思? - 知乎

写的是真的好,我下面也是用这种拟人的风格去解释各种协议和过程

  1. 有一所监狱(iOS操作系统):

  2. 为每个囚犯(App)提供了一间牢房(独立的存储、运行空间)

  3. 狱警、内勤若干(系统自带的插件,如「顶部状态栏」、「锁屏界面」)

  4. 少数永久性「高级」牢房关押终身监禁的要犯(系统自带的 App,不可删除),并得到特别关照(可以访问更多内部接口)

  5. 普通牢房收押经法院审判的犯人(通过 App Store 审核上架的 App) ,根据需要增减(用户自行安装、删除)

  6. 检察官(用户)可以:

  7. 查阅囚犯名单(浏览主屏)

  8. 提审囚犯(App 占据前台运行)——如果检察官愿意(在「系统设置」打开通知选项),当囚犯想起什么的时候会告诉他(通知)

  9. 收押合法犯人(安装 App)——监狱长(iOS操作系统)根据法院许可(App Store 密钥)判断犯人能否收押

  10. 流放犯人(卸载App)——检察官(用户)可以主动流放他自己收押的犯人(从AppStore安装的软件),但不能流放得到特别关照的犯人(内置应用)

什么是iOS系统越狱?

而越狱就等于——某个要犯(系统 App)在被提审时,借助另有所图的检察官(用户出于一定理由),打开了监狱内的某扇暗门(系统漏洞),闯入监狱长办公室(系统核心),拿到了典狱长手里的全部钥匙(获取 root 权限),又把钥匙交给原先逍遥法外的「黑帮」老大(Cydia或其他插件安装程序),请它来当监狱长。

  1. 然后呢,检察官(用户)便可以:

  2. 不经法院审判自行决定收监黑帮自己的犯人(在 Cydia 上安装 App Store 没有提供的 App,或是使用类似Filza这样的特殊工具安装自行下载的 IPA 包)。

  3. 虽然此时已经可以随意收监法院许可遭篡改甚至销毁的犯人(盗版 App),但黑道也有自己的规矩,至少在黑帮老大眼里这种行为是不受待见的(Cydia 原则上禁止盗版,越狱的目的也不是为了装盗版App)

  4. 管理狱警、内勤(安装第三方插件,比如 SBSettings)

  5. 查看监狱内部结构(系统所有目录)

  6. 为了获得全面掌控苹果设备的权限(在iOS软件许可协议中,用户只有使用权而没有所有权),也为了反对苹果的独裁行径(只能从AppStore按照苹果审核通过的应用),苹果越狱就此诞生

  • 基于文献的现状梳理
  1. 进行重放攻击,降级到旧版本操作系统进行越狱

  2. **苹果一般会在新版本操作系统中修复掉越狱漏洞(堵上监狱暗门,不给你拿到钥匙)**,用户可以选择不更新到最新版本的操作系统。但如果你玩脱了导致系统开不了机想重新刷机,苹果会使用手段,阻止你降级到可越狱的iOS版本

  3. 苹果设备在进行系统恢复操作时,有一个证书认证的环节,来确保你只能恢复到苹果想让你恢复的版本,形象化说明如下:

(恢复程序指修改后的官方刷机程序,现在一般为futurerestore)

  1. 恢复程序:我要刷入xx版本操作系统

  2. CPU:请提供该版本的签名证书,你没有或者不对我就不给你刷

  3. (恢复程序向苹果服务器请求对应版本的签名证书)

  4. (如果苹果允许你恢复到当前版本,恢复程序拿到证书)

  5. 恢复程序:呐,xx版本的系统证书,给刷了吧?

  6. CPU:我检查一下…证书有效,允许刷入!

  7. (如果苹果不允许你恢复到当前版本,恢复程序拿不到证书)

  8. 恢复程序:(两手空空,但还是想刷)

  9. CPU:没证书,省省吧(返回错误代码)

  10. 错误代码一般为3194,当然网络不好收不到证书,也会报3194

  11. 初版重放攻击非常简单,只需要在固件还能恢复的时候保存证书即可(我们回到拿不到证书那一步)

  12. (如果苹果不允许你恢复到当前版本,恢复程序拿不到证书)

  13. 恢复程序(反手掏出了珍藏多年的证书):这是我刚拿到的证书,这个固件还能恢复!

  14. CPU并没有怀疑,直接接过证书: 我检查一下…证书有效,允许刷入!

  15. 但苹果很快推出了初版解决方案:

  16. 设备每次开机时,会生成一个随机值,每次开机对应的随机值都不一样

  17. 根据不同的随机值,会生成不同的系统签名证书

  18. 只有系统证书和DRAM的随机值相对应,CPU才允许你刷入系统

  19. 这样子,如果直接进行上述重放攻击,会因为随机值对应不上造成拒绝刷入

  20. **但是道高一尺魔高一丈,既然我动不了证书, **那我就固定随机值!

  21. 利用系统漏洞,把系统随机值固定为证书里的随机值(只需随机值那扇暗门,拿到随机值牢房的钥匙就行,并不用整个监狱的钥匙)

  22. (我们回到拿不到证书那一步)

  23. 恢复程序(掏出了珍藏多年的证书,并假装成典狱长让随机值固定成证书里的随机值)

  24. CPU接过了证书,提取了证书里的随机值,并检查DRAM里的随机值是否和证书里的一致,因为DRAM里的随机值被我们暗改过,所以肯定是一样的

  25. CPU:你这个证书肯定是新的,允许刷入!

  26. 这便是改版后的重放攻击,但是他有个致命的缺点,就是需要漏洞去固定随机值,如果你没有办法固定随机值,就无法通过提前保存的证书欺骗CPU进行系统恢复

  27. 苹果很快推出了第二版解决方案

  28. 苹果推出Touch ID(指纹验证)和Face ID(面容验证)后,在设备内引入了一块名为SEP(Secure Enclave Processor)的安全芯片,专门负责处理生物验证数据,它的内容连CPU都无法访问

  29. 并且,苹果也为它专门开发了一款操作系统,同样,它也有随机值验证系统

  30. 因为其极高的安全性,目前没有任何手段去固定SEP里的随机值。

  31. 幸运的是,SEP可以同时兼容多个不同版本的操作系统,虽然我们只能刷入最新版本的SEP固件,但如果它兼容你要降级的操作系统,你也一样可以进行重放攻击降级

  32. 如果SEP不兼容,那没办法,目前没有任何手段进行SEP不兼容系统的降级,哪怕你能固定随机值并且有对应证书

  33. 现状:目前,我们只能固定操作系统的随机值,而基带(Baseband)、SEP(Secure Enclave Processor)和最新出的玫瑰协处理器(Rose Processor)里的随机值我们都无法固定,因此,如果用一句话概括:

  34. 通过重放攻击,我们只能降级到

  35. 能固定随机值

  36. 有对应系统的签名证书

  37. 最新的SEP、基带和玫瑰协处理器兼容

的操作系统上

  1. 这是利用重放攻击进行系统降级以便越狱的当前研究现状

  2. 利用不可进行软件修复的硬件漏洞进行越狱

  3. 在iOS系统的漏洞级别中,执行权限最高的为iBoot里的漏洞,即引导程序漏洞,它可以在系统引导阶段就对内核进行修改,获取更高权限

  4. 但还有更高一级漏洞的存在,那就是被固化在Bootrom里的硬件漏洞

(相当于永远有扇通往典狱长房间的暗门,但只凭折扇暗门无法拿到全部监狱钥匙,并且这扇暗门不可修复)

  1. Bootrom是设备上电后执行的第一段程序,它被固化在芯片中,无法通过软件修改,只能烧录修改

  2. Bootrom漏洞权限和iBoot权限一样,最大的区别就在于Bootrom漏洞是不可通过发布软件更新进行修复,而iBoot就可以通过软件更新修复

  3. 因此这种级别的硬件漏洞就弥足珍贵

  4. 目前,可供大众使用的硬件漏洞只有两个

  5. Checkm8(支持iPhone 5~iPhone X)

  6. Limera1n(支持iPhone 3GS~iPhone 4)

  7. 通过硬件漏洞,我们可以做到

  8. 无视系统版本,对系统直接越狱

  9. 无视系统版本,直接固定系统随机值

  10. 然而对硬件漏洞的利用是有条件的,因为Bootrom是开机执行的第一段代码,因此必须通过电脑进行干预,才能使漏洞生效

  11. 使用这种方法进行越狱,又称半不完美越狱或不完美越狱

  12. 每次重启,如果想进入越狱状态,必须通过电脑引导启动,否则手机将无法开机(不完美越狱)或能开机,但越狱相关软件全部失效(半不完美越狱)

  13. 使用多个软件漏洞组合,达成完美越狱或半完美越狱

  14. 完美越狱是指,设备重启后,可以继续进入越狱状态,无需多余的引导启动

  15. 半完美越狱是指,设备重启后,进入的是非越狱状态,越狱插件全部失效。但只需要在手机上进行操作,即可进入越狱状态。和半不完美越狱的区别是,引导进入越狱状态这个过程不需要电脑参与。

  16. iOS 9.1****之前,我们使用的都是完美越狱,就是把设备连接到电脑,点击一下越狱按钮,设备就会自动越狱,并且重启不失效

  17. 越狱流程简要说明如下:

参考CSDN大佬:iOS越狱原理详解_狮兄的博客-CSDN博客

  1. 破解Bootrom(Exploiting the Bootrom)

  2. 启动Ramdisk(Booting the Ramdisk)

  3. 越狱文件系统(Jailbreaking the Filesystem)

  4. 安装完美越狱破解(Installing the Untethering Exploit)

  5. 安装 AFC2服务(Installing the AFC2 Service)

  6. 安装基本程序库(Installing Base Utilities)

  7. 应用程序隐藏(Application Stashing)

  8. 安装程序包 (Bundle Installation)

  9. 安装后过程(Post-Installation Process)

  10. 执行内核Payloads并修改内核(Executing Kernel Payloads and Patches)

  11. 修复内核状态(Kernel State Reparation)

  12. 权限提升(Privilege Escalation)

  13. 修改内核(Kernel Patching)

  14. 清理并返回(Clean Return)

  15. 然而,iOS9.1后,苹果引入了新的防破解措施,使得以下这部分更为艰难:

  16. 安装完美越狱破解(Installing the Untethering Exploit)

  17. 现状:因此,iOS9.1到现在的越狱,我们只有半完美越狱,意思是,设备重启后,进入的是非越狱环境,我们在越狱后作的一切修改全部失效(非法犯人不能提审)。但经过手机上的软件破解后,系统便可以回归到越狱状态

  18. 通过系统缓解措施阻止漏洞利用(exploit mitigations)

  19. 系统缓解措施的意思是,通过各种方式阻止漏洞生效的一切手段。主要是干扰上述两个步骤:

破解Bootrom(Exploiting the Bootrom)

权限提升(Privilege Escalation)

  1. 下面列举对当前越狱阻碍最大的缓解措施:

  2. **内核基址随机化(Kernel ASLR: **Kernel Address Space Layout Randomization)

对iOS的内核地址进行随机分配,主要干扰

权限提升(Privilege Escalation)这步骤。最大的功能是隐藏tfp0,防止精准地址注入

  1. 虚拟地址防护(PAN:Privileged access-never)

作用是防止内核空间访问用户空间可以访问的地址,意识是如果一个指针,用户空间可以访问,那么内核就不允许访问,防止用户空间构造假指针进行漏洞利用

  1. 页面保护层(KTRR:possibly Kernel Text Readonly Region)

保护内核完整性,对高安全性的页表进行防护,防止其被修改。现在的攻击方法是绕过受KTRR保护的内存,攻击未受保护的内存

  1. **指针验证防护(PAC: **Pointer Authentication Codes)

通过加密指针的高位存储值防止指针修改,有效打击了悬空指针攻击,在内核读/写和内核代码执行之间设置安全边界

  1. 对于iOS 15,系统引入了一个丧心病狂的缓解措施:

**SSV(system volume signed),**中文名只读系统宗卷

  1. 它把整个root目录挂载为一个快照,意味着每次重启,root目录都会被还原,我们所作的修改都会消失
  2. root目录将变得不可修改,一旦修改root目录,系统将拒绝启动,手机会变成一块板砖
  3. 因此,iOS15到现在都没有半完美越狱
  • 总结体会
  1. 近些年来,苹果不断招安越狱社区的核心人员,如project zero和bazad,曾今的越狱主力pod2g,均已进入苹果安全团队。他们把曾经研究iOS漏洞的经验,转为防护iOS破解的优势,让越狱界雪上加霜
  2. 但这也不能怪他们,因为越狱界的开发者们都是为爱发电,不收钱的,只收捐款。而且他们也不能靠越狱挣钱。因为越狱一旦商业化,苹果就会把它们告上法庭;如果非商业化,可以靠技术无罪豁免
  3. iOS****越狱的初衷是获取对手机的全部掌控权限,让iOS更加开放,让iOS也能装主题,改字体,删掉没必要的内置应用。然而,很多人越狱的目的是按照破解软件,这已经严重背离了越狱的初衷
  4. 七八年前越狱的兴起,并且中国越狱装机量第一,是因为正版意识淡薄,盗版猖獗,买正版是人傻钱多的行为。这种思想也催生了PS4主机越狱的诞生。然而如今,正版已经逐渐深入人心,人们更愿意付费享受有保障的正版,而不会安装可能有病毒的盗版
  5. 前面也提到,iOS构建的核心是一座监狱。监狱里,只要你按规矩行事,那就绝对安全。但代价是牺牲自由。如果你愿意以安全为代价换取自由,越狱设备,获取root权限。但你又不会操作,root密码都不改,那么只要别的设备和你链接同一个WiFi,你有刚好打开了openSSH,别人便可以随时掌握你手机的最高权限。盲目越狱的代价是把自己暴露在危险中
  6. 最近,越狱界的老牌开发者luca todesco发布了一段演讲,名为:’Life and death of an iOS attacker’

意识是一名iOS越狱开发者的诞生和消逝,我看了他的演讲,心里一凉,但还是很不情愿的接受:iOS越狱的时代,可能真的要过去了

  1. 随着正版软件概念深入人心,人民生活水平的提高,iOS安全措施的慢慢加强,iOS个性化的内容越来越多,越狱变得越来越没有必要。然而,越狱商店之父saruik至今还在和苹果打官司,说AppStore一家独大,严重损害了开源自由的互联网精神,并且有垄断的嫌疑,他已经41岁,但仍在为了这个社区奋战
  2. 我以我所学,可能帮不了越狱社区什么。但以后我若是学有所成,真给我找到了对越狱社区有所贡献的漏洞,我一定毫不犹豫把它贡献进越狱的大家庭,为越狱社区带来新的血液
  3. 如果我做不到,我也会在心里,默默祝福每位为爱发电的开发者

参考文献:

  1. A survey of recent iOS kernel exploits --Posted by Brandon Azad, Project Zero

https://googleprojectzero.blogspot.com/2020/06/a-survey-of-recent-ios-kernel-exploits.html

  1. Life and death of an iOS attacker --by Luca Todesco

https://www.youtube.com/watch?v=8mQAYeozl5I

  1. New Kernel exploit for iOS 15 – iOS 15.1.1 / Latest vulnerabilities and Kernel mitigations on iOS 15.2 – iOS 15.5

https://pangu8.com/latest/new-kernel-exploit-for-ios-15-ios-15-1-1-jailbreak/

  1. iOS越狱原理详解

https://blog.csdn.net/IDOshi201109/article/details/51008336

标签: ios java ui

本文转载自: https://blog.csdn.net/u011849172/article/details/128066053
版权归原作者 L-Taufik 所有, 如有侵权,请联系我们删除。

“iOS系统越狱研究现状梳理”的评论:

还没有评论