基于移动端的安卓恶意软件检测研究

2023-02-23 04:55尹南南中国人民公安大学
警察技术 2023年1期
关键词:终端设备安卓应用程序

尹南南 中国人民公安大学

引言

随着安卓设备和应用程序数量的不断增加,许多安卓移动用户从中受益,与此同时,涉及安卓设备的安全与隐私问题日益凸显,成为移动用户和利益相关者关注的焦点。越来越多的用户通过购物、银行、社交等热门应用程序将个人数据存储在移动设备中,因此,越来越多的攻击者将注意力转移到了移动应用上,这使得安卓恶意软件成为安全领域最重要的安全威胁之一[1]。

实际上,大多数的解决方案都聚焦在安卓市场的服务器端,但当一个新的安卓恶意软件家族被报道时,并不是所有的安卓市场都能在合理的时间内做出反应。目前通用的分析流程是通过分析应用中的恶意行为,根据生成的特征构建检测模型对整个应用进行检测。由于现实中的安卓应用数量非常庞大,仅第三方安卓应用商店里的数量就超过300万个,要对这么多应用进行完整的检测是一项非常耗时的任务。此外,来自非官方市场的应用程序,其安全性是不可预测和不可控制的,在设备上安装此类软件更容易受到攻击。

传统基于服务器端的检测需要把APK安装包解包,然后将应用上传到服务器上,非常耗时耗力,特别是对于占用空间较大的应用来说更是如此;其次在因特网上传的过程并不安全,例如攻击者能够利用上传期间修改恶意软件,返回一个良性结果从而骗过检测,致使用户安装恶意软件。传统基于服务器端的检测方法很难移植部署到安卓设备端,基于移动端的安卓恶意软件检测则很好地解决了这一问题。基于移动端的安卓恶意软件检测提高准确性的同时也具有部署的便捷性和现实性。随着大数据以及现有的5G技术和互联网的快速发展,再加上终端设备计算能力的提高,这种移动端检测有望成为主流检测方法。

当然基于移动端的安卓恶意软件检测也存在不足,主要是对于安卓终端设备尤其是物联网终端设备而言,检测系统的安装会占用空间并且消耗运行资源,如果检测系统过于依赖终端设备的性能则会影响其正常运行。例如在某些物联网终端设备上,如果安装计算量大且占用空间大的应用,将会不可避免地影响应用的正常功能使用,因此检测系统应该尽可能地压缩占用空间、降低消耗运行资源。

现有的安全机制主要分为三类,即应用市场、安卓操作系统平台和实际的移动设备端,因此在移动设备端上进行安卓恶意软件检测作为恶意软件检测体系最后一道防线是亟需的,也是必要的。

本文主要对移动端的恶意应用检测方法和数据集进行研究介绍,提出并分析几种移动端安卓恶意检测的方法,主要包括基于签名的检测、基于元数据的检测、基于机器学习的恶意软件检测和基于深度学习的恶意软件检测。

一、基于移动端的安卓恶意软件相关检测方法

目前常见的恶意软件检测方法在移动平台上很难直接部署使用。本文基于移动端的设备特征和安卓恶意软件的特点,通过分析研究,提出以下几种可行方法:

(一)基于签名的检测

基于签名的恶意软件检测是最早应用于检测的一种方法。在安卓系统中,应用拥有独有的数字签名作为唯一标识,该方法在检测系统中构建恶意软件的唯一签名,通过签名与已知的恶意软件的数字签名进行匹配来检测是否为恶意软件。基于签名的检测能够收集、提取和分析安卓应用程序文件的签名,它使用程序代码和类作为签名进行检测,基于恶意样本库来实现签名匹配。此方法需要及时地对恶意样本库进行更新补充,无法检测未知的恶意软件,并且随着软件科学技术的发展,软件包的一些细微改变,例如利用重打包技术就可能产生一个新的恶意软件,可以很容易绕过基于签名的检测[2]。

(二)基于元数据的检测

元数据即与安卓应用程序本身代码无关的额外描述信息。关于应用的下载量、功能描述、类别信息以及相关的协议信息等都可以称作元数据。可以利用元数据信息从一个较新颖的视角设计相应的检测方法,该方法既可以作为一种独立检测方法单独检测,也可以作为其他检测方法的一个补充,从而更好地提升检测效果。

例如如果一个仅有天气预报功能的应用,在其元信息中对其功能描述应该也只是预报某地天气,在运行中调用相应的API函数获取位置信息则可以认为是正常的API调用,但如果此类应用调用别的函数则可能会被当做异常应用。如果描述信息和程序实际功能相差太大甚至毫不相干,那么理论上此类程序很大几率是恶意程序。因此可根据描述信息即元信息与软件行为进行结合,在各个类别中挖掘异常应用程序,进而可将异常应用分为强异常、弱异常和非异常,分别就这三种类型进行不同的处理。但是元信息往往是一线开发人员编写,受主观因素影响较大,并且每个人的想法和表达能力不尽相同,检测结果可能会和实际真实结果存在较大的偏差,因此应该把该方法作为其他检测方法的一种参考和补充。

(三)基于机器学习的恶意软件检测

安卓系统应用程序是由Activity、Service(服务)、Broadcast Receiver(广播接收器)以及Content Provider(内容提供者)四类组件类型构成,这些组件在安卓应用程序的功能中发挥着重要作用。基于机器学习的恶意软件检测方法基本原理是通过程序分析等技术提取不同的特征描述,作为待分析样本,然后每一个样本均用一个固定维度向量表示,最后借助于现有的机器学习算法对已知标签的样本进行训练并构建分类器,从而能够对未知样本进行预测判断。目前广泛使用的算法有支持向量机、随机森林等[3]。

1. 静态特征和动态特征检测

静态特征是指固有的、一般不会轻易变化的特征。对于安卓应用程序来说,APK文件的内容一般认为是不会轻易发生变化的。APK文件有各种特征,如权限、代码、网络地址、字符串和硬件组件等。利用静态特征构建安卓恶意软件检测系统,往往是通过构建一个静态分析工具来提取一些敏感特征,然后在大数据集和标记良好的数据集上进行实验。

总体而言,利用静态特征实现对安卓恶意软件的检测分类具有比较明显的效果,但由于受到安全策略的限制,利用静态特征分析尚存在一些不足,动态分析方法则能够对这些不足进行弥补。动态特征是在程序运行过程中会发生变化的特征,在程序运行过程中,应用程序与操作系统或网络连接相互连接和交互的行为都可认为是动态特征,目前常用的动态特征是网络流量和系统调用[4]。应用程序运行都要通过读取、写入和打开等系统调用向操作系统请求所需的资源和服务。应用程序通过连接到网络发送和接收数据,如果是恶意应用,会通过一系列不正常的系统调用将隐私数据泄露出去。因此系统调用和网络流量是检测恶意软件的方法中常用的两个动态特征。

2. 混合特征检测

混合特征分析是动态和静态特征共同作为特征分析依据,混合特征现在已经被广泛应用于恶意软件的特征检测,该方法既能克服仅用静态特征方式的缺点,又能利用动态特征的优点,同时也不需要巨大的流量分析及动态特征检测和提取。混合特征分析的评价依据是标记良好的数据集,它基于静态和动态相结合的特征提取,使用恶意评分和机器学习技术来确定未知的安卓应用程序是否为恶意应用。

(四)基于深度学习的恶意软件检测

神经网络是一种机器学习计算模型,依赖于大量的神经单元,高度密集的神经元通过轴突相互连接。人工神经元网络通常由多层组成,每一层都有许多人工神经元。第一层是输入层,最后一层是输出层,其余的层称为隐藏层,神经网络由多个隐藏层组成,层次越多,神经网络越深。传统的机器学习方法受限于从原始数据中手工生成特征,利用深度学习和神经网络能分析恶意应用程序并提取相关特征,并且可以从原始数据中自动学习特征来执行检测任务[5]。

使用深度卷积神经网络的安卓恶意软件检测基于对一个可分解程序的原始操作码序列的静态分析,将恶意软件的特征从原始操作码序列中自动学习,学习适当的特征并进行分类,只需要给出大量标记恶意软件样本的原始操作码序列,就能同时学习进行特征提取和恶意软件分类。系统的主要优点是不需要手工设计的恶意软件功能,并且可以在移动设备的GPU上运行即可以将模型部署到移动终端设备上[6]。

二、恶意软件数据集

安卓恶意软件检测离不开有效恶意样本数据集的支撑,恶意检测的数据集是测试算法可靠性和准确性的关键。由于恶意软件攻击方式多种多样,不同的数据集对于检测系统的效果验证不尽相同,数据集不理想会导致系统达不到期望效果,比如使用小样本数据集只需要一个较小的恶意家族样本就可以实现系统较高的准确性;再如有的数据集不包含恶意家族信息,无法用于恶意家族识别。在移动设备端实现安卓恶意软件检测并没有固有的、标准的样本数据集,现有的有限样本集有时候会导致系统达不到效果目标,并且不符合自身的系统要求,因此选取多种数据集对于构建效果优秀的检测系统至关重要,并且为了实现个性化需求研究人员可以根据自己的实际需求自行收集编写数据样本集。

常用的恶意样本集主要有以下几类来源:一类是恶意样本共享网站,典型的如Contagio与VirusShare;另一类是具有家族信息的常用数据集,包括Genome数据集、Drebin数据集、FalDroid数据集、DroidBench数据集、AMD数据集以及RmvDroid数据集。

?

三、移动端恶意检测对于公安工作的影响和未来研究方向

近年来,随着移动端设备的计算性能不断提高,物联网发展迅猛,智慧小区、智慧门禁、智慧物流等依托物联网设备的科技逐渐流行,随之而来的是各种各样的安全风险问题,倘若还依赖于过去的手段,不仅效率低、操作繁琐,还做不到实时检测。对于公安技术部门来说,能够及时对此类案件进行发现和取证的需求是非常迫切的,例如在物联网设备中,最容易出现的是入侵和攻击,极容易造成隐私和数据泄露,基于移动终端进行检测会实时报告和阻止这种入侵和攻击,并且将攻击行为和方式进行记录,方便今后对攻击方法的研究和对检测技术进行针对性改进。因此基于移动端的检测对于当今科技信息化的公安工作至关重要。

随着信息技术的发展,新型恶意软件也在不断升级和更新。针对新型恶意软件需要提出有效的检测方案并不断改进,开发新的安卓检测工具,以便能够实时检测出潜在的恶意应用。当前终端系统芯片的发展已经能够支持很多占用系统资源不太高的检测系统,同时针对云计算和大数据的发展,终端设备能够很容易地访问和使用云端上的数据,在终端设备上进行安卓恶意软件检测将会是一种潮流和未来发展的方向。

人工智能自动分析技术将会大大推动检测技术的提高,目前绝大多数检测方法仅能够实现恶意软件检测的功能,检测到之后无法进行后续的拦截和控制等操作。人工智能自动分析技术能根据应用的行为,采取人工智能算法对其进行监控并且分析,如果发现应用存在恶意威胁,那么将采取相应的警告和处理措施。现有的检测方法基本上都是被动防御,在攻击出现之后才制定出具体的解决方案,检测方法始终落后于威胁攻击。在未来的研究中,通过找出攻击的根源实现在根源上检测控制恶意攻击,化主动为被动,预防为先,是未来探索的一个新方向。

四、结语

恶意软件的快速增长给移动智能终端设备带来了巨大的威胁,安卓系统作为目前恶意软件的主要攻击目标之一,其安全问题已经得到越来越多的关注。目前,针对服务器端已经提出了大量的恶意软件检测方法,并已经形成了一些相对成熟的恶意软件检测工具与系统,但是针对安卓终端设备,比较完善的检测工具和系统还处在发展阶段,有待进一步成熟和完善,下一步将继续进行这方面的研究。

猜你喜欢
终端设备安卓应用程序
iPhone不卡的秘密曝光:安卓也能享受
视频监视系统新型终端设备接入方案
文物表情包
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
配电自动化终端设备在电力配网自动化的应用
一种基于安卓系统的手机侧抓包分析方法
车站信号系统终端设备整合及解决方案
安卓L未至安卓M来了!安卓首泄漏M系统
基于手持终端设备中软件通信架构的应用