CN117708815A - 一种基于精简行为图的安卓恶意软件检测方法 - Google Patents
一种基于精简行为图的安卓恶意软件检测方法 Download PDFInfo
- Publication number
- CN117708815A CN117708815A CN202311686421.XA CN202311686421A CN117708815A CN 117708815 A CN117708815 A CN 117708815A CN 202311686421 A CN202311686421 A CN 202311686421A CN 117708815 A CN117708815 A CN 117708815A
- Authority
- CN
- China
- Prior art keywords
- api
- cluster
- graph
- node
- malicious software
- 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
- 238000010586 diagram Methods 0.000 title abstract description 6
- 239000013598 vector Substances 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 10
- 238000013528 artificial neural network Methods 0.000 claims abstract description 7
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 176
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004138 cluster model Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 16
- 230000003068 static effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- Stored Programmes (AREA)
Abstract
本发明属于安卓软件检测技术领域,具体涉及一种基于精简行为图的安卓恶意软件检测方法;该方法包括:获取安卓软件样本数据并对其进行反编译,得到源代码文件;从源代码文件中提取API特征;根据API调用关系和API特征构造API调用图;将API调用图输入到预训练的聚类模型中进行处理,得到API的类别;根据API调用图和API的类别构建API聚类图;对API聚类图进行向量嵌入处理,得到API聚类节点特征向量;将API聚类节点特征向量输入到深度神经网络中,得到安卓恶意软件检测结果;本发明可以在有效保留软件行为特征的同时降低图的规模,提高模型训练的效率。
Description
技术领域
本发明属于安卓软件检测技术领域,具体涉及一种基于精简行为图的安卓恶意软件检测方法。
背景技术
二十一世纪以来移动通信技术迅猛发展,智能终端作为典型的时代产物得到广泛普及与应用。其中,Android***由于其具有代码开源、可移植性强等特点,在智能终端中被广泛采用且市场占有率高。据相关统计,Android***承受了97%的恶意软件攻击,这无疑给用户的隐私、资产和人身安全带来了严重威胁。
近年来,大量学者从多角度深入研究了恶意软件检测的相关理论与方法。现有Android恶意软件检测方法可分为基于静态分析和基于动态分这析两类。动态检测是指在程序运行在虚拟环境中或者沙盒中,获取其运行时的信息作为特征,比如被运行的函数,日志打印信息等,其优点是能有效抵抗混淆,但也存在代码覆盖率低、检测时间开销较大的缺点,导致无法全面获取软件的特征。静态检测是对未运行的程序进行分析,获取其特征,常见的特征包括应用权限,安卓四大组件等,其优点是能够全面获取软件的信息,检测速度快,但抗混淆能力差,导致检测准确率受到影响。
综上所述,兼顾检测效率和获取软件的行为特征是十分重要的,目前,有部分研究者通过静态分析获取软件的函数调用图来分析软件的行为,在一定程度上提高了检测的准确率,但也存在函数调用图规模庞大,存在冗余信息等问题,对模型的检测效率有一定影响。所以,如何精简函数调用图,提高检测效率尤为重要。
发明内容
针对现有技术存在的不足,本发明提出了一种基于精简行为图的安卓恶意软件检测方法,该方法包括:获取待检测的安卓恶意软件数据,将其输入到训练好的安卓恶意软件检测模型中,得到安卓恶意软件检测结果;
安卓恶意软件检测模型的训练过程包括:
S1:获取安卓软件样本数据并对其进行反编译,得到源代码文件;
S2:从源代码文件中提取API特征;
S3:根据API调用关系和API特征构造API调用图;
S4:将API调用图输入到预训练的聚类模型中进行处理,得到API的类别;
S5:根据API调用图和API的类别构建API聚类图;
S6:对API聚类图进行向量嵌入处理,得到API聚类节点特征向量;
S7:将API聚类节点特征向量输入到深度神经网络中,得到安卓恶意软件检测结果;计算模型总损失并根据模型总损失调整模型参数,得到训练好的安卓恶意软件检测模型。
优选的,构造API调用图的过程包括:从API特征中得到API函数名,将API函数名作为有向图的节点,根据API调用关系为节点添加有向边,得到API调用图。
优选的,聚类模型对API调用图的处理过程包括:聚类模型包括多个聚类簇,每个聚类簇均存在一个簇中心;
遍历API调用图,得到API节点信息,计算API节点信息到每个簇中心的距离,将API节点分配到距离最小的簇中,根据API节点所属聚类簇得到API的类别。
优选的,构建API聚类图的过程包括:
将API类别均作为有向图的节点;遍历API调用图,得到API节点信息;根据API节点以及API的类别计算API类别节点间的边权重,得到API聚类图。
进一步的,计算有向图节点间的边权重的方式为:将一API类别节点中API节点与另一API类别节点中的API节点间的有向边数量作为这两个API类别节点间的边权值。
优选的,对API聚类图进行向量嵌入处理的过程包括:根据API聚类图的边权重计算API聚类图的边级别;根据API聚类图和API聚类图的边级别,采用TransH算法对API聚类图进行向量嵌入处理,得到API聚类节点特征向量。
进一步的,计算API聚类图的边级别的公式为:
li,j=wi,j/100
其中,li,j表示第i个API类别节点到第j个API类别节点间的边级别,wi,j表示第i个API类别节点到第j个API类别节点间的边权值。
优选的,所述深度神经网络为BiLSTM网络。
本发明的有益效果为:本发明首先从样本中提取API特征,并根据API之间的调用关系构建API调用图,使用k-means方法将API聚类为20种不同类别,用数字0到19表示,进而将API调用图转换为API聚类图,达到图规模的精简,同时能保留图的行为特征,提高检测准确率。本发明对函数调用图进行了精简,可以在有效保留软件行为特征的同时降低图的规模,提高模型训练的效率。
附图说明
图1为本发明中基于精简行为图的安卓恶意软件检测方法训练流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种基于精简行为图的安卓恶意软件检测方法,如图1所示,所述方法包括以下内容:获取待检测的安卓恶意软件数据,将其输入到训练好的安卓恶意软件检测模型中,得到安卓恶意软件检测结果;
安卓恶意软件检测模型的训练过程包括:
S1:获取安卓软件样本数据并对其进行反编译,得到源代码文件。
获取安卓软件样本数据,包括Android恶意样本和Android良性样本;优选的,良性样本1000个,恶意样本1000个,恶意样本可从Virusshare等开源恶意软件样本库提取;对安卓软件样本反编译获得源代码文件。
S2:从源代码文件中提取API特征。
API是软件运行的重要载体,对于识别恶意软件具有重要作用。优选的,使用开源框架Androguard从源代码文件中提取API特征;将提取的API特征保存为csv文件,用于后续API语义聚类训练。其中,API特征包括包名,类名,函数名和子引用等。
S3:根据API调用关系和API特征构造API调用图。
使用networkx框架构建空白有向图DG1;将所有API特征中的函数名作为有向图中节点,在DG1中添加节点。根据节点间的调用关系在节点间添加边;将API调用图保存为gexf文件,作为后续构建API聚类图的依据。
S4:将API调用图输入到预训练的聚类模型中进行处理,得到API的类别。
聚类模型的预训练过程包括:
使用k-means方法根据API语义信息(API函数名)将API聚类为20个类别(经过实验对比发现,当聚类数量为20时能起到很好的聚类效果,API聚类后),用数字0到19表示其类别编号。k-means是一种广泛使用的聚类算法,旨在将一组数据点划分为k个簇,使得每个数据点都属于离它最近的簇中心,目标是最小化所有簇内点与其对应簇中心的距离之和,通常是用欧氏距离来衡量,对于一组观测数据{x1,x2,...,xn},其中观测xi是一个d维实数向量。K-means聚类旨在划分这些观测数据到k个集合S={S1,S2,...,Sk}中,以最小化平方误差准则,该准则定义为:
其中,||x-μi||是点x即第x个API的函数名和簇Si的均值μi之间的欧式距离,μi是簇Si中所有点的均值,计算公式如下:
算法步骤如下:
S41:随机选择k个观测数据作为初始簇中心,优选的,k为20;
S42:将每个观测数据分配到最近的簇中心所在的簇;
S43:重新计算每个簇的均值,作为新的簇中心;
S44:重复和迭代步骤S42-S43,如果簇中心不再发生变化或达到预定的迭代次数则停止。
S45:保存聚类模型,用于后续API类别预测。
聚类模型对API调用图的处理过程包括:聚类模型包括多个聚类簇,每个聚类簇均存在一个簇中心;
遍历API调用图,得到API节点信息,计算API节点信息到每个簇中心的距离,将API节点分配到距离最小的簇中,根据API节点所属聚类簇得到API的类别。
S5:根据API调用图和API的类别构建API聚类图。
使用networkx创建空白有向图DG2,将API类别均作为有向图的节点;遍历API调用图,得到API节点信息;根据API节点以及API的类别计算API类别节点间的边权重;得到API聚类图。计算有向图节点间的边权重的方式为:将一API类别节点中API节点与另一API类别节点中的API节点间的有向边数量作为这两个API类别节点间的边权值。即初始边权重为0,每存在一对有调用关系的API节点,则边权值加1。
例如,假设在函数调用图中节点i指向节点j,并且API节点i和j聚类后分别属于API类别a和b,那么在聚类图中就会存在API类别节点a指向API类别节点b的边,其边权值为1,若这俩API类别节点间存在与上述情况相同的多条边,则这俩API类别节点间的边权值为这种同种指向的数量。
API聚类图实现了调用图的精简,将API聚类图保存为gexf文件。
S6:对API聚类图进行向量嵌入处理,得到API聚类节点特征向量。
根据API聚类图的边权重计算API聚类图的边级别;根据API聚类图和API聚类图的边级别,计算API聚类图的边级别的公式为:
li,j=wi,j/100
其中,li,j表示第i个API类别节点到第j个API类别节点间的边级别,wi,j表示第i个API类别节点到第j个API类别节点间的边权值。
采用TransH算法对API聚类图进行向量嵌入处理,得到API聚类节点特征向量;具体的:
API聚类图可以看作是一个知识图谱,每个API类别是一个实体,边级别对应一种关系,因此,聚类图中每一个节点和边都可以形成如下三元组:(聚类节点i,聚类节点j,li,j),其中li,j表示聚类节点i指向聚类节点j的边的级别,将这些三元组作为输入,经过TransH算法处理后得到各聚类节点的特征向量表示。TransH算法是一种用于知识图谱嵌入的算法,它的目的是在向量空间中有效地表示实体和关系。TransH的目标函数主要是基于最小化正样本的得分和最大化负样本的得分,其公式如下:
其中,S是由正确的三元组构成的集合,S’是由错误的三元组构成的集合,γ是间隔参数,用来分隔正负样本的得分,max(0,x)为损失函数,确保损失为非负。f(h,r,t)是三元组的得分函数,它测量了头实体和尾实体在嵌入空间中的关系匹配程度,其定义如下:
其中,h和t是头实体和尾实体的向量表示,dr是关系r的向量,wr是关系在特定超平面的法向量。
S7:将API聚类节点特征向量输入到深度神经网络中,得到安卓恶意软件检测结果;计算模型总损失并根据模型总损失调整模型参数,得到训练好的安卓恶意软件检测模型。
优选的,深度神经网络为BiLSTM网络。对于每个样本,将其API聚类节点特征向量按照类别序号从小到大排列组成向量20*50大小的矩阵(20种类别,每一个聚类节点经过TransH算法训练后得到一个长度为50的一维向量),对于缺省的类别向量用0向量填充,将样本向量矩阵转为tensor类型数据,并打好标签,良性样本用0表示,恶意样本用1表示,输入到BiLSTM网络中进行训练。训练集和测试集分别占80%和20%,学习率设置为0.0001,batch_size设置为128,epoch设置为50。模型采用交叉熵损失函数,其定义如下:
其中,N是样本数量,M是类别数量,本文只有两种类别,即良性样本和恶意样本,yic是二进制指示器,如样本i属于类c则为1,否则为0,pic是模型预测样本i属于c类的概率。
获取待检测的安卓恶意软件数据,将其输入到训练好的安卓恶意软件检测模型中,可得到安卓恶意软件检测结果。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于精简行为图的安卓恶意软件检测方法,其特征在于,包括:获取待检测的安卓恶意软件数据,将其输入到训练好的安卓恶意软件检测模型中,得到安卓恶意软件检测结果;
安卓恶意软件检测模型的训练过程包括:
S1:获取安卓软件样本数据并对其进行反编译,得到源代码文件;
S2:从源代码文件中提取API特征;
S3:根据API调用关系和API特征构造API调用图;
S4:将API调用图输入到预训练的聚类模型中进行处理,得到API的类别;
S5:根据API调用图和API的类别构建API聚类图;
S6:对API聚类图进行向量嵌入处理,得到API聚类节点特征向量;
S7:将API聚类节点特征向量输入到深度神经网络中,得到安卓恶意软件检测结果;计算模型总损失并根据模型总损失调整模型参数,得到训练好的安卓恶意软件检测模型。
2.根据权利要求1所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,构造API调用图的过程包括:从API特征中得到API函数名,将API函数名作为有向图的节点,根据API调用关系为节点添加有向边,得到API调用图。
3.根据权利要求1所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,聚类模型对API调用图的处理过程包括:聚类模型包括多个聚类簇,每个聚类簇均存在一个簇中心;
遍历API调用图,得到API节点信息,计算API节点信息到每个簇中心的距离,将API节点分配到距离最小的簇中,根据API节点所属聚类簇得到API的类别。
4.根据权利要求1所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,构建API聚类图的过程包括:
将API类别均作为有向图的节点;遍历API调用图,得到API节点信息;根据API节点以及API的类别计算API类别节点间的边权重,得到API聚类图。
5.根据权利要求4所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,计算有向图节点间的边权重的方式为:将一API类别节点中API节点与另一API类别节点中的API节点间的有向边数量作为这两个API类别节点间的边权值。
6.根据权利要求1所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,对API聚类图进行向量嵌入处理的过程包括:根据API聚类图的边权重计算API聚类图的边级别;根据API聚类图和API聚类图的边级别,采用TransH算法对API聚类图进行向量嵌入处理,得到API聚类节点特征向量。
7.根据权利要求6所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,计算API聚类图的边级别的公式为:
li,j=wi,j/100
其中,li,j表示第i个API类别节点到第j个API类别节点间的边级别,wi,j表示第i个API类别节点到第j个API类别节点间的边权值。
8.根据权利要求1所述的一种基于精简行为图的安卓恶意软件检测方法,其特征在于,所述深度神经网络为BiLSTM网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311686421.XA CN117708815A (zh) | 2023-12-08 | 2023-12-08 | 一种基于精简行为图的安卓恶意软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311686421.XA CN117708815A (zh) | 2023-12-08 | 2023-12-08 | 一种基于精简行为图的安卓恶意软件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117708815A true CN117708815A (zh) | 2024-03-15 |
Family
ID=90158182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311686421.XA Pending CN117708815A (zh) | 2023-12-08 | 2023-12-08 | 一种基于精简行为图的安卓恶意软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117708815A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118036006A (zh) * | 2024-04-12 | 2024-05-14 | 山东省计算中心(国家超级计算济南中心) | 基于敏感api的恶意软件检测方法、***、设备及介质 |
-
2023
- 2023-12-08 CN CN202311686421.XA patent/CN117708815A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118036006A (zh) * | 2024-04-12 | 2024-05-14 | 山东省计算中心(国家超级计算济南中心) | 基于敏感api的恶意软件检测方法、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737406B (zh) | 一种异常流量数据的检测方法及*** | |
CN110070141B (zh) | 一种网络入侵检测方法 | |
US11544570B2 (en) | Method and apparatus for large scale machine learning | |
CN112491796A (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN111612041A (zh) | 异常用户识别方法及装置、存储介质、电子设备 | |
CN111866004B (zh) | 安全评估方法、装置、计算机***和介质 | |
CN112632609B (zh) | 异常检测方法、装置、电子设备及存储介质 | |
CN117708815A (zh) | 一种基于精简行为图的安卓恶意软件检测方法 | |
CN110135681A (zh) | 风险用户识别方法、装置、可读存储介质及终端设备 | |
US20230005572A1 (en) | Molecular structure acquisition method and apparatus, electronic device and storage medium | |
Karanam et al. | Intrusion detection mechanism for large scale networks using CNN-LSTM | |
Song et al. | Feature grouping for intrusion detection system based on hierarchical clustering | |
CN114169439A (zh) | 异常通信号码的识别方法、装置、电子设备和可读介质 | |
CN115344693B (zh) | 一种基于传统算法和神经网络算法融合的聚类方法 | |
Lim et al. | More powerful selective kernel tests for feature selection | |
CN115392351A (zh) | 风险用户识别方法、装置、电子设备及存储介质 | |
US20230128462A1 (en) | Hidden markov model based data ranking for enhancement of classifier performance to classify imbalanced dataset | |
CN114095268A (zh) | 用于网络入侵检测的方法、终端及存储介质 | |
CN111581640A (zh) | 一种恶意软件检测方法、装置及设备、存储介质 | |
Li et al. | A BYY scale-incremental EM algorithm for Gaussian mixture learning | |
CN113934813A (zh) | 一种样本数据划分的方法、***、设备及可读存储介质 | |
CN113408579A (zh) | 一种基于用户画像的内部威胁预警方法 | |
CN115420866A (zh) | 药物活性检测方法、装置、电子设备和存储介质 | |
Tian et al. | [Retracted] Intrusion Detection Method Based on Deep Learning | |
CN112507912A (zh) | 一种识别违规图片的方法及装置 |
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 |