黑客陈良首次揭秘如何越狱 iPhone X :乔布斯的苹果终有缺口(2)
乔布斯的苹果终究有缺口长期以来,封闭式和开放式的编程方式被形容为“大教堂”和“集市”两种模式。而苹果的 iOS 与安卓系统被视为两个完美代表。然而,随着这几年苹果逐渐开放权限、开源部分内核代码,这种“大教堂”式的完美形象仍旧存在。但是,乔布斯的那个苹果终究是有缺口的。 简单说 iPhone 的越狱步骤可概括为三步:首先获得低权限的代码执行权限,然后想办法绕过沙盒保护,随后做系统内核提权。 实际上在 iPhone5 之前(包括iPhone5)的苹果手机上完成以上这三点就可以实现越狱,但从 iPhone5S 开始,iOS 推出 KPP,即对内核进行保护,即使能进去,内核在保护机制下仍会阻止你修改内容。但对我们来说,修改内核的目的是把其自有的安全机制去掉,然后安装自己的应用程序,调试系统组件,但KPP的推出让不少安全研究人员竹篮打水。 在 iPhone7 推出后,苹果为了加强对内核的保护,推出了 AMCC(硬件保护),从硬件级别对内核打补丁,其设计理念是即使苹果不可能在短期将所有漏洞补住,但他可以尽全力阻止在内核有任意代码执行时手机不被篡改,这也被认为是最后一道防线。 苹果此举几乎堵死了越狱之路,这也给越狱带来很大困难。不久前面世的 iPhoneX 中也加了防止代码执行的保护措施,将这堵墙砌得更高。 实际上,苹果一次一次加固了这堵“柏林墙”。 一方面是对手机的直接保护,从iPhone 5 到 iPhone 7 再到 iPhoneX 是一个不断迭代的过程。 另一方面则是系统版本的更新,比如 iOS 10.3.2 到 10.3.3 的版本更新,每一次系统版本的更新都会修补漏洞,引入一些系统级别的保护. 我们曾发现,某一接口可以用于内核内存布局,可以利用其进行越狱,但在 iOS 10.3.3 版本中将此接口砍掉修复了这一漏洞。 苹果不止封上了上面这条路。 比如,之前,获得内核具备任意代码执行的权限,就可以获得 Task for pid 0(tfp0),但苹果在 iOS10.3 等版本上做了很多加固,这些都可对越狱造成影响。 这对苹果而言,是一个不断垒高墙的过程,对我们来说,则是不断找出突破口的挑战。 5 月,我们写出自己的越狱工具时,针对的还是 iOS10.3.2 版本,此后苹果每发布一个新的版本,我都要查看是否有加入新的对抗机制,如果加入了新机制,还要在现有工具上增加功能,以此适应全新版本。 越狱有风险,但是把双刃剑获得更高权限对于果粉来说似乎格外有吸引力,但衍生出来的问题是——越狱之后的手机是否安全。 而在我看来,越狱存有风险,但不代表绝对不安全,这是一把双刃剑。 iOS 越狱不代表沙盒被破坏,不代表安装的任意软件都有 root 权限,不代表文件目录可被所有应用任意访问,不代表关键隐私暴露。 越狱只是禁用了部分 iOS 系统先进的防护机制。对用户来说,可以获得更多的权限,但也的确留给不法分子一条“无障碍通路”,这也是诸多支付软件会直接检查系统是否越狱,如果出现越狱情况会直接退出。 当然,目前许多越狱软件做的不够完美,甚至很多越狱软件为了达到自己目的,禁用 iOS 的全部保护机制。 我们跟他们不是一类人,注定了要走不一样的路。我觉得,真正的越狱工具应做到在该禁用时禁用,但在保护用户隐私信息时,也应不遗余力,这也是我们所做的越狱工具的理念。 手持重器,但应行君子之道。 (编辑:ASP站长网) |