苹果iOS 10系统“激活锁”绕过漏洞,丢失保护功能形同虚设?
本着求真和好奇的心态,此次宅客频道将带领读者们讲述此次事件的来龙去脉、破解流程以及相关细节,试图将完整的故事呈现给读者们,让读者了解到:
漏洞是什么,可导致何种后果?
这个漏洞最早是如何被发现的?
复现漏洞的具体步骤是怎样的?
我们是否会受影响,该怎么做?
该漏洞有何后果?
从iOS 7开始,苹果设备就具有一项“激活锁”功能, 当用户的设备不慎被偷,只要激活"丢失模式”(Lost mode),盗窃者在没有得到合法机主许可就无法激活设备到正常工作状态,这使得丢失的苹果设备很难被直接转卖,不仅提高安全性还降低了失窃率。
这也是许多人在丢失苹果设备后都收到钓鱼短信及邮件的原因——盗窃者试图骗取APPID账号密码来解锁设备。
然而,此漏洞的出现,意味着任何人都可以绕过“激活锁”直接重置该设备,让丢失模式形同虚设!盗窃者可以利用该漏洞将一些非法获得的设备直接解锁后重新售卖或自行使用。简而言之,当你的设备丢失,你更难将它找回了。
那么这个漏洞是如何被发现的呢?
据外媒报道,该漏洞最早是由印度安全专家赫门特·约瑟夫(Hemant Joseph)发现的,于是宅客频道(公众号:宅客频道)通过博客了解到破解的全部操作流程。
iOS 10.1漏洞发现,源于被坑的购物经历
赫门特给朋友网购了一个iPad,哪知设备刚到手,却发现被开启了“丢失模式”,发现连接WiFi之后,设备会要求输入之前机主的APPID账号密码。赫门特这才知道,自己花了许多时间挑选iPad,最后却买回来一块“砖头”——他觉得自己被彻头彻尾地耍了,简直不能忍!
“自己动手,丰衣足食”,作为安全专家的赫门特决定发挥自己的聪明才智对iPad进行破解,他立刻想到了让设备缓冲区溢出的方法。
以下为赫门特个人博客中对破解过程的描述:
我在WiFi网络选项中,选择“连接另一个网络”。
跳转到一个要求输入用户名的登录框。
以上只有一个输入字段,如果有字符限制的话,比较难引发内存缓冲区溢出。但如果点击“安全选项”,选择安全协议WEP,就有另一个WPA WPA2企业版的选项出现。
我选择WP2企业版,这时会出现三个输入框:名称、用户名和密码,然后我很惊奇地发现,这里居然没有限制字符长度,可以肆无忌惮地输入,真是太适合用来造成内存缓冲区溢出的情况了!
一直复制粘贴输入字符,直到设备卡住。
我等了一会儿,看看是恢复正常还是软件崩溃,结果既没有崩溃也没有恢复,一直卡着。又等了一会,我按下了解锁按钮,结果它把我带回到一开始的欢迎屏幕了 :(
WTF ?(心中一万头羊驼奔过)
第一次尝试破解失败后,赫门特没有放弃,开始第二次尝试:
思考了一会如何诱发程序崩溃让它跳到主屏幕上,我想到了利用iPad外壳(iPad smart Case)的自动唤醒功能来试试,因为可以利用它的这个特性: 当我们用盖上外壳盖来关闭屏幕,再打开外壳盖,它会重现之前关闭之前的屏幕,继续刚才的工作请求。
于是我重复了刚才的操作,在最后一步iPad卡死的时候,盖上外壳盖子,然后过一会儿再打开。
过了大概20~25秒,iPad出现了软件崩溃,然后把我带到了主屏幕,从而绕过了所谓的“激活锁”,成功!
由此可以看出,这里出现的漏洞的主要原因在于:连接 WiFi时的输入框限制输入字符的长度,而在实际使用当中,没有人会使用一个超过1000个字符来当账号或密码。
看到这里,可能有些读者已经想找一台iPad来亲身体验一把了,不过你们可能不会成功,因为发现该漏洞的印度专家赫门非常耿直,发现漏洞后立马写邮件告诉了苹果官方,并很快得到了苹果官方的回复。
苹果很快推出了iOS 10.1.1 的版本更新,修复了该漏洞,因此该漏洞只可能在iOS 10.1 或者更早的版本中复现。
然而,“绕过风波”并没有就此结束。
研究员不依不挠,新版本仍能被破解
Vulnerability Lab实验室的研究人员也对此问题进行分析后,发现利用屏幕旋转和Night Shift(自动调整屏幕色温)功能可在iOS 10.1.1系统中重现这个漏洞。
他们提供了一段成功破解的视频:
宅客频道发现,在视频演示中,主要区别于破解iOS 10.1绕过漏洞的地方主要在于:
输入的字符使用了emoji表情等特殊字符
在最后一个中反复使用了智能外壳和屏幕旋转功能
需要很精准地把握好关键操作的时间点:在某个瞬间设备会出现不到一秒的主屏幕,这时需要适时按下Home键才可以完全绕过激活锁,这一时机很难把握。
宅客频道编辑找来了一个装载iOS 10.1.1系统的iPad mini 2 , 尝试复现该漏洞,但不知是由于没有把握好时机,尝试多次后并没有成功解锁设备。然而在国外社交媒体上有网友表示自己按照视频演示,成功破解了iPad mini 2(同样尝试了好几次)。
目前, 宅客频道还没有发现任何成功利用此方式破解iPhone设备的案例。在国外一名研究员安德鲁·坎宁安的报道中,他也发现了相同的情况:
根据这个视频,我们能够在运行iOS 10.1.1的iPad Mini 2上重现该问题,然而在我们的测试中,我们无法在运行iOS 10.1.1 的iPhone 5设备中重现这个bug,在实验中,iPhone没有向iPad那样旋转为横屏模式,也没办法用智能外壳来控制屏幕的开关。
由此看来,该漏洞在iPad上也需要一定的技巧才能复现,而在iPhone上几乎无法实现,因此人们其实并不必为这个漏洞太过担心,并且相信苹果公司也将会在接下来推出的iOS 10.2的版本更新中修复该问题。
我们该怎么做?
针对此问题,国外相关安全机构给出了一些建议:
当苹果为这个错误提供了一个补丁后,尽快安装它。
日常苹果设备丢失,对方可能不会去恶意破解,但尽可能为之设置一个安全的PIN码或锁屏密码,以确保安全。
不过对于此次“激活锁”绕过漏洞,宅客频道有个更直接有效的终极建议: 看好你的机器设备,别把它弄丢了。
---------------------------
查看
---------------------------
文件 "lantern.exe" 已修改。
您希望在压缩文件里更新它吗?
---------------------------
是(Y) 否(N) 取消
---------------------------
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
无服务器的微服务
在 2015年的LinuxCon/ContainerCon 上我呈现了一次演示驱动的演讲,标题叫做“没有服务器的微型服务”。 其中,我创建了一个图片处理的微型服务,将其部署到了多个区域,构建了一个移动 app 并使用它(译者注:指的是这个微型服务)作为后台,添加了一个使用了 Amazon API 网关的基于 HTTP 的 API 和一个网站,并且对它进行了单元和负载测试,所有这些都没有用到任何服务器。 这篇博文对演讲的细节进行了重制,为你逐步完成所有必要的比周,并深入到了架构中去。而高层次的概述,可以看看这里的 幻灯片。还有这一架构的另外一个示例,可以看看这个可执行的 gist 资源库,SquirrelBin。 无服务器架构 这里“无服务的”, 我们的意思是不需要明确的基础设施,如:没有服务器,没有要对服务器进行的部署,没有任何类型软件的安装。我们将只使用被管理的云服务和一台笔记本电脑。下面的图形描述了高级别的组件及他们的连接: 一个 Lambda 函数作为计算器(“后台”) 以及一个直接连接到计算器上的移动app, 再加上 Amazon API 网关,来提供一个 Amazon S3 ...
- 下一篇
谷歌回归?Google Developers 中国网站正式发布
Google Developers 中国网站 (developers.google.cn) 12月8日正式发布! Google Developers 中国网站是特别为中国开发者而建立的,它汇集了 Google 为全球开发者所提供的开发技术资源,包括 API 文档、开发案例、技术培训的视频。并涵盖了以下关键开发技术和平台产品的信息: Android(developer.android.google.cn) Android 开发者官方网站面向应用开发者提供了 Android SDK 以及开发相关的各类文档。 Web(developers.google.cn/web) 学习如何利用 Progressive Web Apps 等 Web 技术来开发新一代的网站或移动应用。 Tensor Flow (www.tensorflow.org) TensorFlow 是一个大规模机器学习的开源框架,提供了对多种深度神经网络的支持。它可以运行在不同的平台上,从智能手机到数据中心,并已经广泛部署到 Google 多项服务的生产环境中。 Google Play(developer.android.com/d...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)