【InForSec2023 年会论坛回顾】刁文瑞:面向Android生态的大规模安全测量

2023年4月8日~9日,由InForSec、南方科技大学斯发基斯可信自主系统研究院、清华大学网络科学与网络空间研究院、复旦大学软件学院系统软件与安全实验室、国科学院计算技术研究所处理器芯片全国重点实验室、中国科学院软件研究所可信计算与信息保障实验室、中国科学院大学国家计算机网络入侵防范中心、浙江大学NESA Lab、山东大学网络空间安全学院、百度安全、奇安信集团、蚂蚁集团、阿里安全等单位联合主办的“InForSec 2023年网络空间安全国际学术研究成果分享及青年学者论坛”在南方科技大学成功召开。来自清华大学、复旦大学、浙江大学、北京邮电大学、中国科学院大学等66所高校及科研院所的230余人现场出席会议,900余人通过视频会议系统及直播系统参与了本次论坛。

我们将对会议精彩报告进行内容回顾,本文分享的是山东大学网络空间安全学院教授、博士生导师刁文瑞的报告——《面向Android生态的大规模安全测量》。

刁文瑞老师首先介绍了其研究对象—安卓操作系统,在现实世界中的广泛使用场景。最新的2023年的移动操作系统市场占用统计结果显示,安卓系统仍然以72.26%的市场占有量高居榜首,其在人们日常生活中涉及丰富的使用场景,除了手机之外,还包括智能电视,车载系统等。

刁老师指出Android的生态中一般会包含Android OS、各类部署Android OS的设备,以及运行在设备上的各类Apps。还有就是网络基础设施,包括运营商相关的基站、SMS,以及Wi-Fi。大多数的安全研究也都是围绕这几方面开展的。

接着刁老师介绍了自己团队围绕Android生态开展的大规模安全测量工作。这两篇工作均发表在软件工程方向顶级会议ICSE 2022年的文章,第一项工作主要关注于移动设备方面,更具体来说是Android手机固件方面。另一项工作主要是关注Android 操作系统本身,具体是Android Non-SDK APIs。本次报告主要介绍第一篇工作的内容。

在第一篇工作中,刁老师首先介绍了安卓固件存在定制化种类繁多,碎片化问题严重等特点。众所周知,Android是开源的,Google提供了一个基线版本,手机厂商根据自己的需求进行二次开发,也就是系统定制化。厂商众多,导致系统定制化也种类繁多,同时也带来了严重的系统碎片化问题。

随后刁老师分别从系统安全补丁和预装应用两个角度介绍了他们关于安卓固件生态风险分析所关注的问题。从安全补丁角度出发,关注两个问题,一个是各家手机厂商能否及时落实官方安全补丁?即在Google已经发布安全公告后,厂商能否及时修补披露的安全漏洞。另一个问题是厂商声明的补丁修补是否可信?也就是说声明已经打了补丁,但是否真的修补了,会不会有补丁遗漏。

从预装应用角度出发也关注两个问题,第一个是预装App会不会存在一些已经被披露、带着CVE编号的安全漏洞?厂商在集成的时候却不知道。第二个是大规模测量预装App的安全性,看一下整体的安全现状如何。

为了解决上述这些问题,刁老师介绍了他们设计和实现的用于大规模安全分析的工具——AndScanner,它会从各种公开渠道进行固件和漏洞信息的爬取,然后将爬取的固件进行解包,分别将系统文件和APK文件传给Patch Analyzer和App Analyzer进行相关分析。这两个分析模块也对应了前面提到的4个安全问题的回答。目前这个工具已经在Github上开源了。

紧接着刁老师对Patch Analyzer(补丁分析)模块和APP Analyzer(应用分析)模块进行了展开介绍。补丁分析模块主要借助了谷歌官方每月发布的安全漏洞信息对应的漏洞补丁信息,包括对应修改的源码文件和修改后的代码diff详情。相关分析是基于开源项目SnoopSnitch,并进行了改进,原本这个项目是在手机上运行的app,被二次开发成了适合大规模分析的版本。首先会将未打补丁源码和已打补丁源码编译为相对应的二进制文件,然后分别将对应的二进制文件进行反编译,清理冗余指令和地址,最后生成对应的文件签名,并将文件签名作为匹配特征。当待测文件传递进来之后,会生成签名特征,然后将签名特征与已知特征进行比对,最后生成补丁有效性的检测结果。

应用分析模块利用的则是公开的CVE漏洞信息,其中包括漏洞影响的设备信息,对应的App包名、版本以及漏洞特征。首先会通过一个基于AndroGuard开发的一个静态分析器,得到两组数据。一组数据包含App的包名、版本签名,主要用来与已知漏洞中的App信息做匹配,然后进而得到这个漏洞的真实影响范围。另一组信息,除了包含App的基础信息之外,还包含了一些属性配置信息和代码特征信息,然后再经过一组漏洞检测规则,得到一些可能存在安全风险的app,用作未知漏洞挖掘,这个挖掘主要还是轻量级的挖掘,像是组件暴露、网络安全配置等问题。

接下来,刁老师展示了他们所进行的大规模分析的结果以及对已有现状背后的原因进行了剖析。在数据集方面,收集了来自150多个厂商的6千多个固件,从其中提出了大约30万个经过哈希去重的APK文件。另外收集了600多个CVE,分两个部分。其中400个就是安卓系统相关的漏洞信息。这个是从Google的安卓安全公告里面爬取出来的,后续用于补丁有效性分析。另外200个预装App的漏洞信息,这个是从CVE和NVD的漏洞库里爬取出来的,这一部分主要用来做App漏洞真实影响的分析。

对于补丁滞后性的测试,实验发现大约31.4%的固件存在至少一个月的补丁滞后,其中滞后固件的平均滞后时间大约2.5个月。尽管Google是允许3个月,但2.5个月是一个平均值,有些设备的滞后时间是很久的。最差的一个case是国内O字头的国内Top厂商的一个固件,补丁滞后时间长达40个月,经过调研后发现该型号手机出厂(2015年)后的所有固件更新包中都未做安全更新。此外,还发现某X字头的Top厂商45.3%的固件存在补丁滞后。

对于补丁遗漏的测试发现大约有5.6%的固件存在补丁遗漏,其中最差的case是某O字头国内Top厂商的一个手机固件,遗漏了46个安全补丁。而在这个厂商的固件中,大约有19.5%的固件存在补丁遗漏,遗漏补丁的平均数量是1.5个。

基于上述的实验结果分析,刁老师对前面提出的前两个问题进行了回答。

紧接着刁老师介绍了针对预装应用相关的实验结果。刁老师发现5.7%的固件中存在未修复的预装应用漏洞,并且一个预装应用可能会影响到很多厂商,在选择了5个应用进行深入分析后,刁老师发现预装App漏洞真实影响范围远远超出披露的影响范围,并且预装App漏洞在被披露后,依然有大量ROM会集成有漏洞的App。

对于未知漏洞,刁老师指出虽然他们只采用了轻量级方法,但依然发现了大量漏洞,他们总共提交了300多个可利用漏洞,截至目前,共有涉及15家厂商的38个App漏洞得到了确认,已申请到了32个CVE和CNVD的漏洞编号。

基于这些实验结果,刁老师对前面提出的第三个和第四个问题也进行了回答。

最后,刁老师对这些现象的原因进行了总结并给出了合理的建议。

演讲者简介

刁文瑞,山东大学网络空间安全学院教授、博士生导师,山东省泰山学者青年专家。2017年博士毕业于香港中文大学,导师为张克环教授。主要研究方向为移动安全与物联网安全,关注现实世界的系统与设备的安全问题。研究成果发表于IEEE S&P、CCS、NDSS、ICSE、WWW、RAID等系统安全与软件工程领域知名国际学术会议,关于Android OS的漏洞研究多次得到Google的官方致谢并得到实际应用。获得2019年度ACM SIGSAC中国新星奖(Rising Star Award)。

Bookmark the permalink.

Comments are closed.