“当消费者们被手机芯片中GPU的强劲性能吸引时,黑客们的注意力也开始聚焦在GPU之上。”
7月30日,这是slipper第二次以演讲嘉宾的身份参加MOSEC移动安全技术峰会,由于从不在会议官网上爆照,因此这也是FreeBuf第一次近距离接触slipper。
slipper的“专用图”:caution slipper rocks(小心滑石)
slipper:盘古实验室安全研究员,曾参加Pwn2Own、DEFCON CTF、Geek PWN和TianfuCup等黑客大赛,曾公开演示破解iPhone8、PlayStation4、Cisco ASA、Safari、Firefox、MacOS、Docker、Cent OS、Ubuntu、Adobe Reader。平时还是一位CTF主播和Baijiucon主播。
前途无量、老实、可靠,都是朋友对slipper的标签。而一说到熟悉的研究领域,slipper立刻进入“角色”:网络安全的研究工作是辛苦的,而从业者一定要有很强的内在动力……“
最近,两款Android主流GPU内核驱动(Adreno和Mali)修补了关于内存管理的逻辑漏洞,而芯片安全、Android安全也是slipper的主要研究方向。
我们从安卓的安全生态发展来看,安卓面临的安全问题包括硬件安全(硬件支持安全启动机制、可信执行环境等)、系统安全、加密与数据保护、App安全。有趣的是,此次MOSEC大会上,仅围绕安卓系统安全的议题就达到3个。
从《Binder:安卓的阿喀琉斯之踵》到《Android GPU内存管理拾遗补阙》、《checkm30》(后两个议题都可以听到slipper的分享)。
一方面,全球移动操作系统领域中,Android系统与IOS系统呈现寡头垄断局面,其他操作系统产业生态链发展则难上加难。随着主流操作系统已形成绝对优势的市场占有率,主流操作系统漏洞利用所带来的威胁更是海啸级别。
与此同时,2020年,根据“美国国家标准技术研究院国家漏洞数据库”公布的官方数据,TheBestVPN整理出了一份包含市面上常见系统或产品的“漏洞警报”。数据显示,安卓是操作系统中披露漏洞最多的。
在安卓系统启动过程中,手机上电启动时,CPU会率先执行固化在芯片里的代码(一般称为bootrom),然后跳到外存储上的代码实现逐级引导,直到运行主操作系统。
图:android系统启动流程(@风中老狼)
如图所示,bootrom作为启动链的“起点”,这部分代码一般会尽可能得小,甚至只有几k,从而保证通过穷举或者人力审查的方式做到在代码设计时的绝对安全性。然而,一旦bootrom出现漏洞,就会从源头上影响整个启动链。
至于Binder,作为安卓系统中的一个核心模块(由于操作系统的进程之间存在隔离,因此Binder是安卓系统最为广泛使用的进程间通信机制),其安全问题将沙箱逃逸、Root、通杀几大属性融为一体,拥有着与生俱来的强大威力。简单来说,攻击者可以通过Binder搭建一条从沙箱直接通往内核的桥梁,直接攻进内核,获取root权限。
在《Binder:安卓的阿喀琉斯之踵》议题里,360 Alpha Lab的安全研究员就介绍了一枚Binder漏洞——能够与浏览器的一个远程代码执行漏洞进行联合使用,仅触发一次就可远程获取安卓设备的Root权限。
不管是Binder漏洞还是GPU/芯片漏洞,在slipper看来,安卓系统安全的核心问题在于如何从防护严密的设备中获取系统的最高权限,也就是随意访问用户数据。因此,围绕着安卓操作系统,无数研究人员在做的事情,就是从不同的角度、不同的思路来探索和检验操作系统的内核安全,这也是安全的追求所在。
一般来说,台式机会有独立的显存,也就是有GPU专用内存空间,而手机等小型终端设备,由于没有独立显卡,会与CPU共用内存。这种情况下,安全软件自然是不能扫描内存空间的。
作为一块“自由之地”,GPU已经成为无数攻击者眼中的跳板,而其安全更需要自设计之初就做到万分考虑。
以slipper分享的Mali漏洞CVE-2021-2866为例,该漏洞通过修改本进程中的任意只读页面,可以造成进一步的内核内存破坏。目前官方发布的补丁主要修复思路是,映射用户态页面的时候,需要检查是否有WRITE标记,如果没有的话此内存在用户态就不能被GPU写入。简单来说,对于同一块内存区域,CPU和GPU可以各自读写,但是要分别记录访问权限,并且在映射前进行检查。
在slipper看来,目前除了bootrom代码确实由于无法更改而需要通过硬件的更替或是设备的更新来解决,其他的部分都是可以通过软件升级的方式来解决安全问题。因此内核级漏洞的危害不言而喻,不过随着设备提供者对于安全的不断重视,可被利用的内核级漏洞也是越来越少。
前文提及“安卓是操作系统中披露漏洞最多的”,事实上,随着安卓安全研究进一步发展,漏洞发现和管理的法规向好,越来越多的漏洞被披露出来,从侧面来看,这也是漏洞规范化与厂商负责任的体现。
一方面,很多漏洞由于影响面很小、难以被利用等原因不会带来实际的危害,另一方面,谷歌、奇安信等国内外安全厂商及安全研究者的持续投入,使得漏洞利用的可能性进一步下降,再加上《网络产品安全漏洞管理规定》等法规的出台引导,众多因素使得每年虽然仍有大量漏洞被披露公开,但实际可以带来所谓的“安全海啸”的漏洞却屈指可数。
因此,无数像slipper这样的安全研究者“不担心无法被利用的漏洞继续存在,而更关注危害大、影响广、可能在实际攻击中被利用的漏洞。”
可以说,防守方与攻击者谁先发现“高危可利用漏洞”,谁就在攻防对抗中掌握了主动权。所以说,这是一个越来越卷的比赛,需要的是拼尽全力的对抗。
图:2021MOSEC移动安全技术峰会 | slipper介绍了iOS和Android系统内核组件的安全漏洞,还分享了华为海思芯片上一枚重要漏洞
未来,随着信创产业发展、国产化推进,越来越多自研操作系统将被应用到关键领域,可预见的是行业对于操作系统安全性的关注还将进一步提升。
从事网络安全行业是为了什么?无数人进入网络安全的初心也不外乎“安全”两字。可能工作得久了,有些人为了更高的薪水,有些人为了提升个人影响力……但slipper坦言,“我的私心就是做更难的事情,享受挑战带来的成就感”。
采访中,slipper几次笑谈:“这个行业这么“苦”,我不做还有谁做呢?最后漏洞(安全问题)就一直存在无人解决了。”颇有些天然的使命感。而这种明知难而迎难而上,投入所有的专注和热情来研究,或许也是FreeBuf在每年MOSEC上看到的极客精神吧。
最后,slipper给白帽子分享了一些小建议:
1、通过逆向分析或者研究底层代码来学习;
2、研究官方发布的漏洞补丁,学习思路;
3、更多地学习、了解前辈们的研究工作。