关键词:
Android恶意应用检测
跨语言
门控图神经网络
函数调用图
摘要:
随着移动应用的快速发展,移动应用安全成为了网络空间安全中的重要组成部分,其中Android应用安全在移动安全领域受到了广泛的关注。近年来,信息技术的不断发展,人们对移动应用功能多样性的要求越来越高,应用开发人员倾向于实现各种功能来满足用户的需求。为了实现丰富的功能以及保持高速的系统响应,开发人员使用Java语言与Native语言相结合来加快程序运行速度。但这样的跨语言编程框架为移动应用安全引入了更多的安全问题,攻击者开始将恶意行为隐藏在Native层代码中以逃避Android安全审查。目前,现有的Android恶意应用检测工具主要依赖在Java层代码中提取到的信息来推断在Native代码中实现的潜在恶意行为,无法探究Java层和Native层代码中的交互行为,而仅有的少部分跨语言安全性分析工作也具有很大的局限性。
跨语言应用的安全性分析应对Java层代码与Native层代码之间的交互关系进行分析。针对以上问题,本文提出了一种语义驱动的恶意应用检测工具,通过结合Java层代码和Native层代码中实现的行为来对应用的恶意性进行判定,并设计实现了恶意应用检测系统,以下是本文的主要贡献。
(1)针对跨语言应用程序中Java层和Native层之间上下文交互信息难以表示的问题,本文研究实现了一种基于语义的跨语言应用行为表示方法。本文研究Android系统中跨语言调用过程,提出并实现了基于图的跨语言函数调用图的融合方法。为了保留程序运行时的函数调用过程,本方法首次分别提取Java层、Native层函数调用图(Function Call Graph,FCG),并对跨语言函数调用进行研究,基于正则表达式对两部分之间的交互信息进行提取,并将Java FCG与Native FCG进行融合的恶道一个可以描述跨语言完整行为的多关系有向图(Multi-Relational Directed Graph,MRDG)。对于构建得到的MRDG,应用中的恶意行为都可以被完全暴露出来。除此之外,随着Android应用开发技术的不断发展,现有的恶意应用检测方法需要不断适应新的恶意模式,手动更新关键字列表、API序列等,本方法可以自动从Android应用程序中提取全面的MRDG并研究其恶意行为模式。该方法也可以扩展到其他平台。在此基础上,采用图神经网络对恶意行为进行识别,经实验表明,本文方法可以在特征处理阶段最大程度保留应用程序的语义信息,并且可扩展性高。
(2)针对传统神经网络如卷积神经网络(Conventional Neural Network,CNN)在对图进行学习时会损失大量语义,并且在特征转换时可能消耗大量时间的问题,本文提出了一个基于图神经网络(Graph Neural Network,GNN)的跨语言恶意软件检测方法。该方法采用擅长处理长序列问题的门控图神经网络(Gated Graph Neural Network,GGNN)对由公开数据集构建的恶意软件检测数据库进行学习训练。该方法首先基于统计特性对MRDG进行图节点的向量化,并保证图中有向边的信息完整性。然后利用门控图神经网络在数据集上进行训练,得到分类模型。根据MRDG中的应用行为信息,图神经网络可以对恶意行为的模式进行学习,以构建一个用于Android应用安全性审查的工具。为此,本文构建了GNNDroid数据集,经实验表明,本方法具有检测准确率高、对于不同大小的应用泛化能力强的优点。
(3)根据提出的跨语言恶意应用检测方法,设计实现了针对Android恶意应用的检测系统,并进行了测试。测试结果表明系统各模块均可正常使用,满足用户对于恶意应用检测系统的基本需要。