CN116432181A - 一种安卓恶意软件检测方法、系统及电子设备 - Google Patents
一种安卓恶意软件检测方法、系统及电子设备 Download PDFInfo
- Publication number
- CN116432181A CN116432181A CN202310385019.1A CN202310385019A CN116432181A CN 116432181 A CN116432181 A CN 116432181A CN 202310385019 A CN202310385019 A CN 202310385019A CN 116432181 A CN116432181 A CN 116432181A
- Authority
- CN
- China
- Prior art keywords
- data
- sample
- feature
- deep learning
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013136 deep learning model Methods 0.000 claims abstract description 65
- 230000003068 static effect Effects 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000001514 detection method Methods 0.000 claims description 50
- 238000012549 training Methods 0.000 claims description 29
- 230000004927 fusion Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002441 reversible effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000012544 monitoring process Methods 0.000 abstract description 7
- 238000011160 research Methods 0.000 abstract description 7
- 230000006399 behavior Effects 0.000 abstract description 5
- 239000000284 extract Substances 0.000 abstract description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 37
- 230000008569 process Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种安卓恶意软件检测方法、系统及电子设备,涉及网络安全技术领域。本发明提供的安卓恶意软件检测方法,深度学习模型提取有效的应用内在静态结构特征提取样本的静态特征,并获取对应样本的动态特征,以能够有效地缩小深度学习模型的特征量的大小,保留结构特性,从而加速模型计算速度。此外,深度学习模型利用流量数据监测的方式提取动态特征,可以有效避免模拟所有的动态行为,提取特征更为简洁、有效。最后,为了增加深度学习模型的可解释性,本发明研究不同数据特征的重要性,从而达到特征可解释性的研究目的。
Description
技术领域
本发明涉及网络安全技术领域,特别是涉及一种安卓恶意软件检测方法、系统及电子设备。
背景技术
近些年,随着5G通讯技术的快速发展,移动设备的通讯速度和使用频率变得越来越高。根据Groupe Speciale Mobile Association(GSMA)2022年移动经济报告显示,目前有57亿移动用户和144亿物联网设备在使用移动设备,其中5G用户约10亿用户。这些设备每时每刻都在创建大量字节的数据,并且大部分都是用户的隐私数据以及个人财产信息。但是,基于移动端的恶意软件也呈爆发式的增长,并且它们借助网络的高效通讯速率不断地传播和演变。根据迈克菲实验室统计,到目前为止全世界共有150亿个恶意软件。所以,恶意软件的存在对用户的私人财产和个人信息安全都造成了极大的威胁。
在现有的移动设备中,安卓(Android)智能手机系统,得益于其灵活的适配性、易用性以及低成本性被广泛应用。安卓市场占有率超过72%。此外,Android成为最受欢迎的操作系统之一的原因之一是它作为开源软件得到了Google公司的支持。Google Play平台是现有大多数用户下载安卓应用的来源,它包含了数千万个安卓应用,但用户并不能确保从这些开源平台下载的APP都是良性安卓应用。因此,安卓恶意软件检测早已引起了广泛关注。准确发现海量移动应用程序中的恶意软件并确定其属于哪个家族和类别是Android恶意软件检测中最重要的挑战之一。只有确定了恶意软件属于那个家族才能高效准确的采取正确的防御及反击措施。
为了有效地挖掘这些恶意软件中的潜在特性,现有机器学习的研究工作中尝试将恶意软件中的应用程序接口(Application Program Interface,API)和权限等特征进行简单的统计量化后带入到训练模型中进行学习。通常特征单一的量化方式无法挖掘出特征间的交互信息,并且机器学习模型提取的特征也难以挖掘出应用程序(Application,App)中内在的结构特性。因此,这些传统机器学习方法的训练和检测速度虽然较快,但是它们的检测精度的上限较低,模型的整体预测性能没有深度学习方法效果好。
深度学习模型是当前性能表现最好的恶意软件检测方法,这些检测模型能够很好地拟合安卓恶意软件的恶意特征,预测精度也是现有工作中最高的。但是,现有的深度学习模型也存在以下一些问题:首先,深度学习训练的参数数目非常的庞大,这导致模型的检测速度比传统的机器学习慢很多。此外,由于深度学习是一个黑盒模型,所以研究人员将所有能提取的特征都带入到模型进行计算,以单一的API特征为例,其数量就有上千万个,因此现有的研究工作尝试使用一些方法来限制数据特征的范围。例如,使用API敏感数据集来限制API特征的数量,但该方法会导致一些样本的特征丢失,因为该样本可能并不包含敏感API特征,并且随着时间的变化,很多敏感API早已被黑客利用其他的方法替代了,所以有效的特征提取是深度学习模型的关键问题。最后,深度学习是黑盒模型,检测模型的解释性很弱,无法对样本的结果和特征重要进行分析。
此外,在特征提取方面,现有的检测模型多以静态的方法提取出APP和权限等特征。该方法提取特征的速度快,但是特征提取的方法容易通过加密、混淆的方式被改变,因此静态特征存在局限。动态特征模型需要对APP进行实时监控,并模拟执行应用内定的行为动作,并转化为模型特征。但是该方法消耗时间较长,需要长期监控。
发明内容
为解决现有技术存在的上述问题,本发明提供了一种安卓恶意软件检测方法、系统及电子设备。
为实现上述目的,本发明提供了如下方案:
一种安卓恶意软件检测方法,包括:
对样本进行逆向编译获取所述样本的API特征信息;所述样本为从测试数据库中获取的安卓应用;
基于所述API特征信息获取所述样本的静态特征;
获取所述样本的动态特征;所述动态特征为正则化处理后的网络流量特征数据;所述网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型;
基于所述静态特征和所述动态特征确定样本的数据特征;
基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将所述训练好的深度学习模型作为检测模型;
获取待检测安卓应用的安卓数据;
将所述安卓数据输入至所述检测模型得到检测结果和特征重要性的可解释性研究结果。
可选地,采用Androguard逆向编译工具对样本进行逆向编译获取所述样本的API特征信息。
可选地,基于所述API特征信息获取所述样本的静态特征,具体包括:
将所述API特征信息转为Family节点;
基于所述Family节点构建调用序列特征;
采用马尔科夫链模型基于所述调用序列特征确定所述样本的静态特征。
可选地,所述静态特征为:
API_Vec=Markov(API_Seq);
式中,API_Vec为静态特征,API_Seq为调用序列特征,Markov为马尔可夫链模型。
可选地,所述动态特征为:
式中,NT_Vec为动态特征,F为网络流量特征数据的每一个特征原始数据,Fmin为网络流量特征数据中最小的特征原始数据,Fmax表示该特征中最大的特征原始数据。
可选地,所述样本的数据特征为:
x=α*NT_Vec+β*API_Vec;
式中,API_Vec为静态特征,NT_Vec为动态特征,α为静态特征的融合参数,β为动态特征的融合参数,α+β=1。
可选地,基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,具体包括:
将所述样本的数据特征输入所述深度学习模型后,获取所述深度学习模型的拟合参数;
基于所述拟合参数确定所述深度学习模型的样本向量;
基于所述样本向量采用交叉熵损失函数优化所述深度学习模型的参数得到所述训练好的深度学习模型。
可选地,在基于所述样本的数据特征对深度学习模型进行训练的过程中,生成特征重要性的可解释性研究结果的过程包括:
基于Shapley值确定所述安卓数据中所有特征的重要性;
基于所述重要性生成所述特征重要性的可解释性研究结果;
其中,所述Shapley值为:
式中,φi(f,x')为Shapley值,x'为深度学习模型中使用的数据特征子集,x'i为待解释的数据特征,z'为样本的数据特征中除第i个数据特征外其余数据特征构建的数据集,f为目标输出函数,M为样本的数据特征的数量,f(*)为特征值预测函数。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的安卓恶意软件检测方法,深度学习模型提取有效的应用内在静态结构特征提取样本的静态特征,并获取对应样本的动态特征,以能够有效地缩小深度学习模型的特征量的大小,保留结构特性,从而加速模型计算速度。此外,深度学习模型利用流量数据监测的方式提取动态特征,可以有效避免模拟所有的动态行为,提取特征更为简洁、有效。最后,为了增加深度学习模型的可解释性,本发明研究不同数据特征的重要性,从而达到特征可解释性的研究目的。
进一步,本发明还提供了以下实施结构:
一种安卓恶意软件检测系统,应用于上述提供的安卓恶意软件检测方法;所述系统包括:
静态数据模块,用于对样本进行逆向编译获取所述样本的API特征信息,并用于基于所述API特征信息获取所述样本的静态特征;所述样本为从测试数据库中获取的安卓应用;
动态数据模块,用于获取所述样本的动态特征;所述动态特征为正则化处理后的网络流量特征数据;所述网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型;
特征融合模块,分别与所述静态数据模块和所述动态数据模块连接,用于基于所述静态特征和所述动态特征确定样本的数据特征;
训练模块,与所述特征融合模块连接,用于基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将所述训练好的深度学习模型作为检测模型;
分类模块,与所述训练模块连接,用于获取待检测安卓应用的安卓数据,并将所述安卓数据输入至所述检测模型得到检测结果和特征重要性的可解释性研究结果。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,与所述存储器连接,用于调取并执行所述计算机程序,以实施上述提供的安卓恶意软件检测方法。
因本发明提供的上述实施结构实现的技术效果与本发明提供的安卓恶意软件检测方法实现的技术效果相同,故在此不再进行赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的安卓恶意软件检测方法的流程图;
图2为本发明实施例提供的安卓恶意软件检测系统的结构示意图;
图3为本发明实施例提供的安卓恶意软件检测方法的实施流程图;
图4为本发明实施例提供的安卓恶意软件检测方法的实施架构图;
图5为本发明实施例提供的数据归一化操作示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种安卓恶意软件检测方法、系统及电子设备,能够有效地缩小模型的特征量的大小,保留其结构特性,从而加速模型计算速度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本实施例提供的安卓恶意软件检测方法,包括:
步骤100:对样本进行逆向编译获取样本的API特征信息。该步骤中,从测试数据库中将样本进行初步的数据处理,首先使用Androguard逆向编译工具对该样本进行逆向编译,获取其中相关粗粒度的API特征信息。这里所说的样本就是从测试数据库中获取的安卓应用。
步骤101:基于API特征信息获取样本的静态特征。API特征信息广泛应用在安卓恶意软件检测,但是由于API特征信息的唯一性节点数量太多,很难将所有的数据都带入到深度学习模型中进行计算。为了解决这个问题,本实施例将样本的API特征信息抽象化,以转为API特征信息的Family节点,利用这些节点构建出新的API特征信息的调用序列特征。最后,利用马尔可夫链模型获取样本的静态特征。静态特征的计算过程如公式(1)所示:
API_Vec=Markov(API_Seq) (1)
式中,API_Vec为静态特征,API_Seq为调用序列特征,Markov为马尔可夫链模型。
步骤102:获取样本的动态特征。动态特征为正则化处理后的网络流量特征数据。网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型。
在该步骤中,流量特征来源于APP的动态特征,研究人员将良性和恶意APP安装到安卓手机后,利用监测工具对这些APP进行实时监控,并收集以下三类特征:1.数据流的源地址、2.数据流的信息和3.数据协议类型。在获取以上相关数据后,为了便于深度学习模型的计算,将网络流量特征数据进行正则化表示得到动态特征,计算方式如公式(2)所示。
式中,NT_Vec为动态特征,F为网络流量特征数据的每一个特征原始数据,Fmin为网络流量特征数据中最小的特征原始数据,Fmax表示该特征中最大的特征原始数据。
步骤103:基于静态特征和动态特征确定样本的数据特征。该步骤中,主要通过融合参数构建最终的数据特征,并通过调整相关参数的范围对检测结果进行可解释性研究,如公式(3)所示:
x=α*NT_Vec+β*API_Vec (3)
式中,α为静态特征的融合参数,β为动态特征的融合参数,α+β=1。
步骤104:基于样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将训练好的深度学习模型作为检测模型。
在该步骤中,得到相关样本的最终数据表征后,结合样本的训练数据对深度学习模型进行训练,并获取深度学习模型的最终拟合参数,其计算过程如公式(4)和公式(5)所示:
ht=σ(W1*x+b1) (4)
随后本实施例使用交叉熵损失函数来优化深度学习模型的参数,其计算过程公式(6)所示:
进一步,在基于样本的数据特征对深度学习模型进行训练的过程中,生成特征重要性的可解释性研究结果的过程包括:
基于Shapley值确定安卓数据中所有特征的重要性。
基于重要性生成特征重要性的可解释性研究结果。
其中,Shapley值为:
式中,φi(f,x')为Shapley值,x'为深度学习模型中使用的数据特征子集,x'i为待解释的数据特征,z'为样本的数据特征中除第i个数据特征外其余数据特征构建的数据集,f为目标输出函数,M为样本的数据特征的数量,f(*)为特征值预测函数。在计算f(z')时,第i个数据特征被屏蔽掉,然后通过从数据集中抽取随机实例或第i个数据特征的随机值来模拟。
步骤105:获取待检测安卓应用的安卓数据。此处获取得到的待检测安卓应用的安卓数据是指采用步骤100-步骤103相同处理方式处理后的待检测安卓应用的数据特征。
步骤106:将安卓数据输入至检测模型得到检测结果和特征重要性的可解释性研究结果。
实施例二
本实施例提供了一种安卓恶意软件检测系统,应用于上述实施例一提供的安卓恶意软件检测方法。如图2所示,该系统包括:
静态数据模块,用于对样本进行逆向编译获取样本的API特征信息,并用于基于API特征信息获取样本的静态特征。样本为从测试数据库中获取的安卓应用。
动态数据模块,用于获取样本的动态特征。动态特征为正则化处理后的网络流量特征数据。网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型。
特征融合模块,分别与静态数据模块和动态数据模块连接,用于基于静态特征和动态特征确定样本的数据特征。
训练模块,与特征融合模块连接,用于基于样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将训练好的深度学习模型作为检测模型。
分类模块,与训练模块连接,用于获取待检测安卓应用的安卓数据,并将安卓数据输入至检测模型得到检测结果和特征重要性的可解释性研究结果。此处获取得到的待检测安卓应用的安卓数据是指采用步骤100-步骤103相同处理方式处理后的待检测安卓应用的数据特征。
图2中的源数据是指测试数据库中存储的数据以及待检测安卓应用的数据。
实施例三
该实施例以上述实施例二提供的安卓恶意软件检测系统为实施架构,对实施例一提供的安卓恶意软件检测方法的实施过程进行具体说明。
该实施例中,静态数据模块根据使用者输入的安卓APP逆向编译获取的API特征、API调用图等特征。具体的,如图4所示,在安卓APP逆向编译过程中,是基于API列表生成API调用图,然后生成家族API图,接着生成API调用序列后得到API特征矩阵,以表征静态特征。
动态数据模块根据使用者输入的安卓APP进行实时安装并监控获取的APP流量特征。
特征融合模块分别与静态数据模块和动态数据模块连接。特征融合模块主要用于安卓APP的静态和动态特征的融合,包括特征融合比例的选择,从而构建最终的APP样本的数据表征。
训练模块与特征融合模块连接,其主要用于针对恶意软件样本数据表征进行模型训练,获取模型的相关参数。
分类模块与训练模块连接,其用于针对恶意软件样本数据表征的检测分类,最终检测出恶意软件。
基于此,该实施例中上述各模块间的数据处理过程如图3所示,包括:
(1)安卓数据采集:从本地化的安卓恶意软件数据库导入数据,并将相关数据导入到本系统中进行安卓数据的预处理。
(2)安卓数据预处理以进行数据特征提取:识别步骤(1)中采集到的原始APP数据包含的所有应用信息。模块需要先对应用进行逆向编译,提取应用的API和权限等特征,并构建API调用图,提取出API的调用序列。构建API调用图并结合马尔可夫链进行量化。随后,利用检测器获取检测应用的动态网络流量特征,并对其进行归一化操作,得到最终动态特征向量。
(3)安卓数据特征融合:对进步骤(2)预处理后的静动态特征进行融合。
(4)检测模型训练:将步骤(3)融合后的安卓数据特征作为输入特征,使用优化的深度学习模型进行模型的训练输出。在训练过程中还需要结合样本数据训练模型。
(4)检测样本数据:结合训练模型挖掘出敏感特征,通过特征的重要性对样本进行分析和可解释性研究。利用敏感特征和模型对样本进行分类,得出恶意软件和良性软件,并对其恶意软件进行家族分类得到恶意软件的检测结果。
在该实施例中,在获取网络流量特征(即动态特征)的过程中,如图4所示,还可以采用CICFlowMeter工具对监测的数据进行处理,并进行归一化操作。其中,归一化操作的实施过程可参见图5。
基于此,本发明首先提取有效的应用内在静态结构特征,构建新的简化API调用图,提取API调用序列,并结合马尔可夫链获取对应样本的API特征矩阵。该方法能够有效地缩小深度学习模型的特征量的大小,保留其结构特性,从而加速深度学习模型的计算速度。此外,利用应用流量监测的方式提取动态特征,可以有效避免模拟所有的动态行为,提取特征更为简洁、有效。最后,为了增加深度学习模型的可解释性,研究不同特征的重要性。本发明通过调整动态和静态特征融合比例对最终预测结果进行分析,从而达到特征可解释性的研究目的。
实施例四
该实施例提供的是一种电子设备,该电子设备包括:存储器和处理器。
其中,存储器,用于存储计算机程序。
处理器与存储器连接,用于调取并执行计算机程序,以实施上述实施例一提供的安卓恶意软件检测方法。
此外,上述的存储器中的计算机程序通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于上述实施例一至实施例四的描述,相较于现有技术,本发明提供的安卓恶意软件检测方法存在以下有益效果:
1.本发明的检测精度更高。
2.本发明的检测速度更快。
3.本发明的可解释性更明确。
具体的,对于本发明的检测精度,之前的两类研究工作(传统机器学习模型以及深度学习模型)进行对比,实验表明,本发明在公开数据集中对于恶意软件家族分类任务中,预测精度能提升20%以上。此外,对于恶意软件分类的检测精度达到99.7%。
并且,对于模型的检测速度,本发明的检测速度与传统机器学习相似,约0.02s完成一个样本的检测。但是,本发明的检测速度远优于深度学习模型,是其速度的数十倍。
而且,本发明对于模型的可解释性研究主要通过两个方面:第一,通过调整动静态特征融合参数的大小,分析出特征对模型表现的影响。第二,利用Shapley值计算每个特征的重要性。这是现有研究所无法实现的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种安卓恶意软件检测方法,其特征在于,包括:
对样本进行逆向编译获取所述样本的API特征信息;所述样本为从测试数据库中获取的安卓应用;
基于所述API特征信息获取所述样本的静态特征;
获取所述样本的动态特征;所述动态特征为正则化处理后的网络流量特征数据;所述网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型;
基于所述静态特征和所述动态特征确定样本的数据特征;
基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将所述训练好的深度学习模型作为检测模型;
获取待检测安卓应用的安卓数据;
将所述安卓数据输入至所述检测模型得到检测结果和特征重要性的可解释性研究结果。
2.根据权利要求1所述的安卓恶意软件检测方法,其特征在于,采用Androguard逆向编译工具对样本进行逆向编译获取所述样本的API特征信息。
3.根据权利要求1所述的安卓恶意软件检测方法,其特征在于,基于所述API特征信息获取所述样本的静态特征,具体包括:
将所述API特征信息转为Family节点;
基于所述Family节点构建调用序列特征;
采用马尔科夫链模型基于所述调用序列特征确定所述样本的静态特征。
4.根据权利要求3所述的安卓恶意软件检测方法,其特征在于,所述静态特征为:
API_Vec=Markov(API_Seq);
式中,API_Vec为静态特征,API_Seq为调用序列特征,Markov为马尔可夫链模型。
6.根据权利要求1所述的安卓恶意软件检测方法,其特征在于,所述样本的数据特征为:
x=α*NT_Vec+β*API_Vec;
式中,API_Vec为静态特征,NT_Vec为动态特征,α为静态特征的融合参数,β为动态特征的融合参数,α+β=1。
7.根据权利要求1所述的安卓恶意软件检测方法,其特征在于,基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,具体包括:
将所述样本的数据特征输入所述深度学习模型后,获取所述深度学习模型的拟合参数;
基于所述拟合参数确定所述深度学习模型的样本向量;
基于所述样本向量采用交叉熵损失函数优化所述深度学习模型的参数得到所述训练好的深度学习模型。
9.一种安卓恶意软件检测系统,其特征在于,应用于上述权利要求1-8任意一项所述的安卓恶意软件检测方法;所述系统包括:
静态数据模块,用于对样本进行逆向编译获取所述样本的API特征信息,并用于基于所述API特征信息获取所述样本的静态特征;所述样本为从测试数据库中获取的安卓应用;
动态数据模块,用于获取所述样本的动态特征;所述动态特征为正则化处理后的网络流量特征数据;所述网络流量特征数据包括:数据流的源地址、数据流的信息和数据协议类型;
特征融合模块,分别与所述静态数据模块和所述动态数据模块连接,用于基于所述静态特征和所述动态特征确定样本的数据特征;
训练模块,与所述特征融合模块连接,用于基于所述样本的数据特征对深度学习模型进行训练得到训练好的深度学习模型,将所述训练好的深度学习模型作为检测模型;
分类模块,与所述训练模块连接,用于获取待检测安卓应用的安卓数据,并将所述安卓数据输入至所述检测模型得到检测结果和特征重要性的可解释性研究结果。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,与所述存储器连接,用于调取并执行所述计算机程序,以实施如权利要求1-7任意一项所述的安卓恶意软件检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310385019.1A CN116432181A (zh) | 2023-04-12 | 2023-04-12 | 一种安卓恶意软件检测方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310385019.1A CN116432181A (zh) | 2023-04-12 | 2023-04-12 | 一种安卓恶意软件检测方法、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432181A true CN116432181A (zh) | 2023-07-14 |
Family
ID=87086839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310385019.1A Pending CN116432181A (zh) | 2023-04-12 | 2023-04-12 | 一种安卓恶意软件检测方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432181A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN108345793A (zh) * | 2017-12-29 | 2018-07-31 | 北京物资学院 | 一种软件检测特征的提取方法及装置 |
CN111882441A (zh) * | 2020-06-03 | 2020-11-03 | 深圳索信达数据技术有限公司 | 一种基于理财产品推荐场景的用户预测解释Treeshap方法 |
CN112464232A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种基于混合特征组合分类的Android系统恶意软件检测方法 |
CN113704759A (zh) * | 2021-08-16 | 2021-11-26 | 广州大学 | 基于Adaboost的安卓恶意软件检测方法、系统及存储介质 |
KR20210144452A (ko) * | 2020-05-22 | 2021-11-30 | 인하대학교 산학협력단 | 동적 분석 및 기계 학습을 사용한 2 단계 랜섬웨어(ransomware) 탐지 방법 |
-
2023
- 2023-04-12 CN CN202310385019.1A patent/CN116432181A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN108345793A (zh) * | 2017-12-29 | 2018-07-31 | 北京物资学院 | 一种软件检测特征的提取方法及装置 |
KR20210144452A (ko) * | 2020-05-22 | 2021-11-30 | 인하대학교 산학협력단 | 동적 분석 및 기계 학습을 사용한 2 단계 랜섬웨어(ransomware) 탐지 방법 |
CN111882441A (zh) * | 2020-06-03 | 2020-11-03 | 深圳索信达数据技术有限公司 | 一种基于理财产品推荐场景的用户预测解释Treeshap方法 |
CN112464232A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种基于混合特征组合分类的Android系统恶意软件检测方法 |
CN113704759A (zh) * | 2021-08-16 | 2021-11-26 | 广州大学 | 基于Adaboost的安卓恶意软件检测方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | Malware detection based on deep learning of behavior graphs | |
Pei et al. | AMalNet: A deep learning framework based on graph convolutional networks for malware detection | |
CN109241740B (zh) | 恶意软件基准测试集生成方法及装置 | |
Zhang et al. | Dalvik opcode graph based android malware variants detection using global topology features | |
Yan et al. | LSTM‐based hierarchical denoising network for Android malware detection | |
Xu et al. | Hierarchical bidirectional RNN for safety-enhanced B5G heterogeneous networks | |
CN112771523A (zh) | 用于检测生成域的系统和方法 | |
Zhao et al. | Structural attack against graph based android malware detection | |
Gao et al. | Android malware detection via graphlet sampling | |
Narayanan et al. | Contextual weisfeiler-lehman graph kernel for malware detection | |
CN114003910B (zh) | 一种基于动态图对比学习的恶意变种实时检测方法 | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
Li et al. | An android malware detection system based on feature fusion | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
Zhang et al. | Malicious code detection based on code semantic features | |
Hou et al. | Disentangled representation learning in heterogeneous information network for large-scale android malware detection in the COVID-19 era and beyond | |
Ban et al. | Fam: Featuring android malware for deep learning-based familial analysis | |
Warmsley et al. | A survey of explainable graph neural networks for cyber malware analysis | |
Niveditha et al. | Detection of Malware attacks in smart phones using Machine Learning | |
Yuan et al. | Android applications categorization using bayesian classification | |
Kuang et al. | Automated data-processing function identification using deep neural network | |
Pei et al. | Combining multi-features with a neural joint model for Android malware detection | |
CN116702143A (zh) | 基于api特征的恶意软件智能检测方法 | |
CN114817925B (zh) | 基于多模态图特征的安卓恶意软件检测方法及系统 | |
CN110941828A (zh) | 基于AndroGRU的安卓恶意软件静态检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |