2023年4月8日~9日,由InForSec、南方科技大学斯发基斯可信自主系统研究院、清华大学网络科学与网络空间研究院、复旦大学软件学院系统软件与安全实验室、国科学院计算技术研究所处理器芯片全国重点实验室、中国科学院软件研究所可信计算与信息保障实验室、中国科学院大学国家计算机网络入侵防范中心、浙江大学NESA Lab、山东大学网络空间安全学院、百度安全、奇安信集团、蚂蚁集团、阿里安全等单位联合主办的“InForSec 2023年网络空间安全国际学术研究成果分享及青年学者论坛”在南方科技大学成功召开。来自清华大学、复旦大学、浙江大学、北京邮电大学、中国科学院大学等66所高校及科研院所的230余人现场出席会议,900余人通过视频会议系统及直播系统参与了本次论坛。
我们将对会议精彩报告进行内容回顾,本文分享的是香港理工大学博士后周昊的报告——《Android系统中跨上下文不一致的访问控制研究》。
周昊博士首先介绍了Android操作系统中用于保护敏感资源的访问控制机制,安卓系统通过权限检查和身份识别实现对系统敏感功能的保护,只有拥有所需权限和身份的APP才能访问对应的系统敏感函数。
随后周昊博士介绍了何为安卓系统服务以及Android APP与系统服务的通信方式。安卓系统服务为Android应用提供了调用敏感系统功能的接口,也负责对调用者进行访问控制检查,两者通过基于Binder的进程间通信方式进行通信,安卓系统服务根据实现语言可以分为Java系统服务和native系统服务。
紧接着,周昊博士分别介绍了APP与Java系统服务和Native系统服务的通信过程,核心思想是通过获取Binder代理对象,然后调用transact函数将信息(包括接口和参数)发送到系统服务进程。此外,Java系统服务与Native系统服务之间也存在通信,即Java系统服务在实现过程中可能会依赖于某些Native系统服务。
周昊博士指出,由于在相同上下文(Java/Native)中Android应用可以通用多个接口调用某一个敏感函数,这些接口的访问控制需要是一致的。另外,由于Java系统服务会依赖native系统服务实现其功能,在Java上下文(即Java服务)中实现的访问控制需要和在native上下文(即native服务)中实现的访问控制一致。已有的研究发现,Java上下文(即Java服务)中存在不一致的访问控制。然而,研究人员忽略了对跨上下文不一致的访问控制的研究。
为了弥补这一研究空白,周昊博士提出了Android框架中跨上下文不一致的访问控制问题,即通过Java系统服务接口调用Native系统服务与直接调用系统服务接口两条调用路径上可能存在不一致的访问控制。
随后,周昊博士介绍了他们设计的自动化分析工具IAceFinder以发现不一致的访问控制。具体而言,IAceFinder识别Java上下文和native上下文中的实现的访问控制,并比较它们以发现不一致。该流程包含三个步骤。第一步,识别出不同上下文中实现的访问控制。第二步,找到存在关联(JNI调用关系)的Java系统服务和native系统服务。第三步,针对每个系统服务调用的JNI接口,比较约束Java JNI接口调用的访问控制和限制native JNI接口执行的访问控制来发现跨上下文不一致的访问控制。
紧接着,周昊博士介绍了IAceFinder在14个开源Android系统中对跨上下文不一致的访问控制缺陷的检测结果。这14个系统中包含2个Google官方AOSP系统和12个第三方开源Android 10和Android 11系统。在这些系统中,IAceFinder发现了23个跨上下文不一致的访问控制,它们可以被攻击者利用窃取用户隐私和损害系统功能。周昊博士团队将发现的bug报告给了Google和第三方系统维护者并获得了Google漏洞奖励。
最后,周昊博士对该研究工作进行了总结和展望,该研究是首次对安卓系统框架层跨上下文访问控制不一致问题的研究,未来可以将IAceFinder进行扩展以支持其他访问控制机制。
演讲者简介
周昊,2022年10月毕业于香港理工大学,现为香港理工大学博士后。主要研究方向包括系统安全和程序分析,工作集中于Android系统漏洞挖掘和Android应用行为分析,获得20余个CVE漏洞编号并得到著名手机厂商谷歌、三星、小米、Vivo、荣耀的致谢。在S&P、USENIX Security、CCS、NDSS、ICSE、FSE、ASE、ISSTA和TIFS、TSE等系统安全和软件工程CCF-A类会议和期刊上发表论文20余篇。获得软件工程CCF-A类会议ISSTA 2022杰出论文奖。