上下文感知的安卓应用程序漏洞检测研究
2021-12-08秦佳伟张华严寒冰何能强涂腾飞
秦佳伟,张华,严寒冰,何能强,涂腾飞
(1.北京邮电大学网络与交换技术国家重点实验室,北京 100876;2.国家计算机网络应急技术处理协调中心,北京 100029)
1 引言
近几年,安卓应用一直在快速增长中,但是随之增长的还有应用所产生的漏洞。2020 年,国家信息安全漏洞共享平台(CNVD,China National Vulnerability Database)收录安全漏洞中移动互联网漏洞占全年收录数量的8.0%。因为所有的软件漏洞都存在被攻击者潜在利用的可能[1-3],所以发现漏洞并修复它,才是避免软件遭受攻击的有效方法。2018 年,PIAnalyzer[4]分析并提取了PendingIntent权限绕过漏洞的规则,基于静态检测的方法实现对改漏洞的检测。目前,与Intent 机制相关的研究[5-12]主要关注APP 隐私泄露问题。过辰楷等[5]提出了一种基于安全要素语句插装的泄露检测方法。AmanDroid[7]通过跟踪APP 组件间的交互信息来识别隐私泄露问题。
另外,为了降低人工依赖和提高对未知漏洞的发现能力,基于学习的漏洞检测成为技术发展趋势之一[13-25]。基于学习的漏洞检测研究主要集中在Java 语言的漏洞方面。早期的基于学习的Java 源代码漏洞检测研究[21,24]解决了基于规则的漏洞检测方法依赖人工经验的问题,但是漏洞代码的抽象表示缺乏语义特征,从而影响漏洞识别的准确率。2017 年,Ma 等[22]提出将Java 代码转换成抽象语法树(AST,abstract syntax tree)的特征,然后采用机器学习模型来对Java 程序进行漏洞检测。AST 特征可以保留程序对象之间的语义信息,但是包含与漏洞代码无关的噪声数据会导致误报[26-28]。Java 程序不具有APP 的生命周期特性和组件间通信机制(ICC,inter-component communication),所以无法适用于检测无源码的APP 的漏洞。……
