APP下载

Android恶意软件检测方案探析

2023-09-19吴莹莹殷西祥

科技风 2023年23期
关键词:检测技术

吴莹莹 殷西祥

摘 要:Android系统具有开源性、硬件选择丰富等优点,目前已成为用户基数最为庞大的移动操作系统,但同时也成为恶意应用软件的主要攻击目标,给广大的Android系统用户带来了危害。现阶段针对Android恶意应用检测的研究越来越多,本文对Android恶意应用检测技术和方案进行归纳总结,分析不同技術特点,对Android恶意应用软件检测研究的方向与特点进行讨论。

关键词:Android;恶意应用软件;检测技术

Analysis of Android Malware Detection Scheme

Wu Yingying Yin Xixiang

Anhui Bussiness College AnhuiWuhu 241000

Abstract:Android system has the advantages of open source and rich hardware options.At present,it has become the mobile operating system with the largest user base,but it has also become the main attack target of malicious applications,bringing harm to the majority of Android system users.At this stage,there are more and more researches on Android malicious application detection.This paper summarizes the Android malicious application detection technology and scheme,analyzes the characteristics of different technologies,and discusses the direction and characteristics of Android malicious application detection research.

Keywords:Android;malware;detection technology

随着移动互联网在人们生活中的大量使用,其安全性的讨论也越来越多。移动安全的主要威胁来自于硬件、网络、操作系统、APP应用软件等方面。以Android系统为例,系统的碎片化具有较大的安全隐患,越来越丰富的Android应用软件也带来了越来越多的技术安全风险。恶意软件开发者利用Android系统的安全漏洞,通过各种渠道入侵用户的移动终端设备进行攻击,这对用户的隐私以及财产安全产生了极大的威胁。

1 Android恶意软件的常用检测技术

1.1 静态分析技术

静态分析指的是在APP应用不运行的情况下,对该APP应用的特征进行检测分析,即通过采用逆向处理的方式来获取APP应用的源代码信息,随后对该源代码进行研究分析。特征的选择与分析是其主要研究,常常被选用的特征主要包括网络IP、Java代码、权限、硬件组件等,安装包文件可上传至服务器端进行检测,速度较快。但是针对代码混淆等对抗技术时,静态分析常常力不从心,无法有效识别。常见的静态分析技术有代码相似性检测、基于模板检测等。

1.2 动态分析技术

动态分析指的是在APP运行的情况下,通过监控其运行过程中产生的行为以及数据来进行分析。动态检测技术主要研究点在于运行环境的状态变化和应用程序的行为追踪,前者指对APP运行前后的安卓操作系统参数以及服务是否发生变化进行监控,后者则是对APP运行时的所有行为进行实时监控,例如打电话、拍照等。动态分析技术可有效避免APP程序代码被加固和代码混淆带来的影响,但需要配合自动化的驱动策略。常见做法一般是将应用软件的样本置入沙盒中运行,利用人工或者工具进行时间触发,通过监控工具进行过程监控,得到系统调用日志,从而创建数据集,在此基础之上对系统调用日志进行特征提取,构建特征向量,根据结果对软件进行归类,示意图参见下图所示。

动态技术分析示意图

1.3 混合分析技术

混合分析技术是将静态分析技术与动态分析技术结合,在应用软件安装前提取相关权限信息以及代码信息进行分析,在软件安装后监听应用软件的系统调用信息,此类检测方法成本较高,但较前两者效果好,形成更为准确的恶意软件分析方式。

2 安卓恶意软件的类型分析

2.1 安卓恶意软件的分类方式

对于安卓恶意软件的分类,常采用两种方式。一种是基于家族的分类方式,即具有相同特征的恶意软件的集合[1],另外一种则是按照恶意软件的发生行为进行分类。

2.2 安卓恶意软件的入侵方式分析

安卓恶意软件常常采用重打包、更新包、偷渡式下载等方式入侵用户设备产生危害。

重打包指的是恶意软件开发者通过某些反编译软件对正常APP应用的APK安装包进行解包,解包之后随即植入恶意代码,再进行重新打包,形成新的具有恶意功能的APK安装包,将其投放到某些缺乏监管的APP应用下载市场或者网页论坛,让用户误以为该恶意软件为正常APP应用,从而进行下载。

更新包则是指初始版本的安装包为正常APK安装包,在安装完成后的使用过程中诱导用户下载准备好的恶意代码来完成软件的更新,达到入侵的目的。此类恶意软件的检测往往需要采用动态分析检测手段。

偷渡式下载常见手段则是通过网页浏览器或者相关插件存在的漏洞进行攻击,例如诱导用户使用钓鱼链接,伪造图标按钮。某些基于机器学习的检测手段可对此种下载方式进行实时监测且效果良好。

恶意程序通过上述手段完成入侵用户设备之后,再通过监听事件、引导用户点击等手段进行触发,达到权限提升、远程控制、扣除话费等目的,借助ProGuard、APKFuscator等工具完成应用的代码混淆,提高自身的生存性能,比较棘手。

3 Android恶意软件检测方案分析

3.1 基于静态分析技术的检测方案

常见的基于静态分析技术的恶意软件检测方案包括基于APP安装包文件特征分析、基于APP的特征分析等。

基于APP安装包文件特征指的是对安装包文件进行解压,解压后对其中的非资源文件以及非签名文件进行检测,再对资源文件和签名文件等进行特征表征,随后进行相似性比较,用以判断是否为恶意软件。有学者将APP代码片段进行哈希计算[2],得到哈希值后作为软件应用程序的特征;还有学者提出可以基于多层次签名(API签名、Class签名、Method签名、APK签名等)来进行检测。

基于APP特征分析的方案则是将APP的名称、多媒体文件、用户界面、ICON等做特征表示,随后进行相似度计算以得出结论。例如,有学者根据软件的用户界面特征定位该APP的Dialog界面等,得到界面的跳转流程图后,计算流程图中心图标的相似性来实施恶意软件检测[3]。该方法能够同时兼顾到恶意软件检测的效率与准确率,总体检测效果表现较好。

3.2 基于动态分析技术的检测方案

通常情况下,基于动态分析技术的检测方式会对Android系统进行定制和改写,比如改写安全机制、在原生系统中加入监视器等,由此得到APP应用的行为信息。常见的动态分析技术的检测方案有基于APP动态行为分析、基于污点跟踪等。

Fairuz等学者提出了基于异常和机器学习分类来对应用软件进行检测,在网络流量特征中,选择基于内容、信息、时间、连结自重特征值。在实验结果中可见,基于贝叶斯网络与随机择机分类器的检测方法大大提高了检测准确率,能够达到84.57%;朱月俊等学者则通过改进随机森林算法,对恶意的应用软件进行评估,选取并优化随机森林构建过程中节点分裂时产生的特征子集,利用交叉验证的方法优化模型,对Android应用软件进行分类,通过最终实验评估,该方法的准确率能够达到94.0%;Lindorfer等学者提出的Apps Playground恶意应用软件检测系统,则是融合了多种动态检测特征,将污点分析、系统调用监控、API监控等多种分析方法综合使用,此类方法对于隐私泄露的检测行为较好,但现有的污点分析技术对于本地代码和控制流的跟踪效果有限[4]。

3.3 基于混合分析技术的检测方案

常见的基于混合分析技术的检测流程通常是先进行静态分析再进行动态分析,依据各部分的分析结果进行综合判断,使检测开销和检测效果能够达到平衡。

在Wang等学者基于CuckooDroid开源框架提出的混合检测系统中,从反汇编代码以及清单文件中提取静态特征,在应用运行时获取动态API调用动态特征。该系统由异常检测引擎通过动态分析进行非正常应用检测,由签名检测引擎完成一致的恶意软件进行检测与分类;Spreitzenbarth等学者则提出MobileSandbox系统,静态分析技术用于解析应用软件的Manifest文件,并对应用软件程序进行反编译,对应用是否拥有可疑权限和意图进行判断,动态分析技术执行应用并记录应用所有执行操作[56]。

混合检测技术虽然可以抵抗的静态检测技术中的代码混淆以及动态检测技术中难以测试应用软件中所有功能而导致的漏报,但由于所选取的特征值复杂,总体效率偏低。

3.4 基于机器学习的检测方案

作为人工智能的主要技术之一,机器学习已经越来越多应用于恶意软件检测的工作中,计算机可以模拟人类来识别恶意软件,并且在面对大量样本时,效率较高。例如,有学者使用了SVM(Support Vector Machines)为训练的数据集构建一个超平面模型,通过检测样本的掉落区域来判断该应用软件的性质,检测率达到了93.9%[7]。

近些年,深度学习在图像领域取得了突破性进展,因此也被迁徙到安卓恶意软件的检测研究中[89]。根据样本表示方法的不同,其检测方案可以分为基于卷积神经网络的恶意软件检测、基于循环神经网络的恶意软件检测、基于图神经网络的恶意软件检测。

卷积神经网络CNN在数据具有空间结构关系的场景中性能表现优秀,因此学者们尝试将恶意软件转换为具有空间关系结构的数据,再使用卷积神经网络进行检测。深层卷积网络对数据的拟合能力较强,面对混淆后的样本也能有效应对,但如果深度过深,则会造成训练时梯度爆炸或消失的不利局面;循环神经网络RNN的特点是序列化数据处理能力较强,因此在机器翻译、自然语言处理表现优秀,目前很多学者在将恶意软件解析为API调用序列等序列数据之后,基于RNN进行恶意软件检测模型的建构。图神经网络GNN在深度学习模型中引入图,能够较好处理关系型数据,因此学者们将应用软件样本转化为图,建立基于GNN的检测模型对图进行识别,目前这方面的研究工作不多,如何有效进行表征学习、将样本用图来进行准确表示需要进一步研究。

结语

Android恶意软件快速发展对Android用户带来了风险与困扰。虽然目前Android恶意应用检测的相关研究已经取得了不少成果,也形成了相对成熟的检测工具,但是要实现对恶意软件的完全检测依然较为困难。总体而言,很多研究仍然处于理论阶段,实际应用中局限性仍然较大,因此,迫切需要工业界以及学术界携手对恶意软件检测进行更加深入的研究,使Android恶意应用检测技术得到更好的发展。

参考文献:

[1]何晓霞.Android平台恶意软件与动态检测技术[J].科学技术创新,2021(31):9193.

[2]肖锦琦,王俊峰.基于模糊哈希特征表示的恶意软件聚类方法[J].四川大学学报(自然科学版),2018,55(03):469476.

[3]李承言.面向安卓的软件恶意行为分析与防御研究[D].中北大学,2021.

[4]秦佳伟.安卓平台的漏洞检测关键技术研究[D].北京邮电大学,2021.

[5]李淼.基于混合特征分析的安卓恶意软件检测技术研究与实现[D].天津大学,2020.

[6]张凯萌.基于多特征的Android恶意软件混合分析检测的方法研究[D].电子科技大学,2021.

[7]陈会兵.基于机器学习的恶意腳本代码检测方法的研究与实现[D].浙江工业大学,2011.

[8]胡冰城.深度学习方法在恶意程序检测系统中的应用[D].北京邮电大学,2021.

[9]谭茹涵,左黎明,刘二根,等.基于图像特征融合的恶意代码检测[J].信息网络安全,2021,21(10):9095.

基金项目:2022年度校科学研究重点项目:基于交互式人工智能的智慧养老系统研究与设计(2022KZZ04);2021年校技术技能创新服务平台应用研究项目:基于用户体验的企业APP设计与应用研究(2021ZDQ15);安徽省教育厅重点研究项目:基于深度学习的Android恶意软件检测研究(2022AH052742)

作者简介:吴莹莹(1983— ),女,汉族,安徽铜陵人,硕士,讲师,研究方向:移动应用开发、网络安全。

猜你喜欢

检测技术
食品安全检测技术研究现状
公路工程试验检测存在的问题及措施
煤矿机电产品检测技术
浅谈现代汽车检测技术与安全管理
食品安全检测技术存在的主要问题及对策探究