CN117354067B - 一种恶意代码检测方法及系统 - Google Patents
一种恶意代码检测方法及系统 Download PDFInfo
- Publication number
- CN117354067B CN117354067B CN202311657266.9A CN202311657266A CN117354067B CN 117354067 B CN117354067 B CN 117354067B CN 202311657266 A CN202311657266 A CN 202311657266A CN 117354067 B CN117354067 B CN 117354067B
- Authority
- CN
- China
- Prior art keywords
- vector
- malicious code
- sensitive api
- function
- module
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 76
- 239000013598 vector Substances 0.000 claims abstract description 87
- 230000006870 function Effects 0.000 claims abstract description 86
- 230000004927 fusion Effects 0.000 claims abstract description 29
- 238000007781 pre-processing Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 25
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000002787 reinforcement Effects 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 238000005728 strengthening Methods 0.000 claims description 3
- 230000002779 inactivation Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000004913 activation Effects 0.000 claims 1
- 239000008186 active pharmaceutical agent Substances 0.000 abstract description 83
- 238000004364 calculation method Methods 0.000 abstract description 2
- 238000004088 simulation Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 244000035744 Hura crepitans Species 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 241000544061 Cuculus canorus Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
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
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及网络安全技术领域,公开了一种恶意代码检测方法及系统,包括:获取代码数据集,提取对应的API调用序列信息;定义敏感API函数,引入特征向量中心性筛选敏感API函数;对敏感API函数进行数据预处理和数据向量化;构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,检测完成后输出检测结果。本发明减少需要分析的API的数量,减少计算时间,提高检测模型的总体检测性能。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种恶意代码检测方法及系统。
背景技术
近年来,边缘设备的恶意代码检测是一项重要的网络安全技术,它可以有效地防止和应对边缘网络中的各种攻击,保护边缘设备和数据的安全。随着物联网、云计算、大数据等技术的发展,边缘设备的数量和复杂度都在不断增加,这给网络安全带来了新的挑战。边缘设备通常具有资源受限、连接不稳定、易受攻击等特点,因此传统的恶意代码检测方法难以满足边缘设备的需求。
传统的恶意代码检测通常使用基于特征签名匹配、灰度图像和系统调用图的检测方法。基于特征签名匹配的检测方法通过将待测应用的特征码与已知的恶意代码的特征码进行匹配来判定恶意代码,这种方法可以快速地检测出已知的恶意代码,但是不能有效地检测出未知或变种的恶意代码,此外,这种方法需要不断地更新和维护特征码库,耗费大量的人力和物力资源;基于灰度图像的检测方法通过图像处理技术将代码转换为灰阶图像,然后利用神经网络模型进行特征提取,可以实现恶意代码的检测,这种方法使用图像处理技术将代码样本转换为灰阶图像来提取代码数据的抽象特征,能充分体现出代码的完整语义信息,但在图像提取方面需耗费大量的时间和存储,检测速度较慢;基于系统依赖图的检测方法利用系统调用依赖图和相似性度量来检测待测样本是否为恶意样本,这种方法能有效地增强代码样本的表征能力,但目前生成代码依赖图的工具较少,且现有版本的代码依赖图提取工具版本较老,由于代码标准一直在不断变化,提取出完整的代码依赖图比较困难。
因此,如何针对边缘设备应用进行异常检测依旧是一项挑战。
发明内容
鉴于上述现有存在的问题,提出了本发明。
因此,本发明提供了一种恶意代码检测方法及系统解决现有检测方法不能有效地检测出未知或变种的恶意代码,检测速度较慢的问题。
为解决上述技术问题,本发明提供如下技术方案:
第一方面,本发明提供了一种恶意代码检测方法,包括:
获取代码数据集,提取对应的API调用序列信息;
定义敏感API函数,引入特征向量中心性筛选敏感API函数;
对敏感API函数进行数据预处理和数据向量化;
构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,检测完成后输出检测结果。
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述定义敏感API函数,引入特征向量中心性筛选敏感API函数,将API调用序列信息表示为API调用图结构,节点表示API函数,边表示API函数间的依赖关系,计算API调用图中每个节点的特征向量中心性指数,对所有节点的特征向量中心性指数数值从大到小进行排序,设排名在前20%的节点为敏感API函数。
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述计算API调用图中每个节点的特征向量中心性指数的公式表示为:
;
其中,表示由API调用图中n个节点形成的邻接矩阵,A中的元素值为0时表示节点之间无连接,A中的元素值为1时表示节点之间存在连接关系,/>表示第/>次迭代后的中心性向量,/>表示下一次迭代后的中心性向量,/>是/>中的最大特征值,迭代完成后得到向量/>,即每个节点的特征向量中心性分数,根据排名筛选得到敏感API函数。
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述将API调用序列表示为API调用图结构,包括以下步骤:
从源代码文件中读取代码,使用代码静态分析工具将代码数据集转换为抽象语法树的形式;
遍历抽象语法树,识别和记录函数调用的位置,筛选抽象语法树中节点类型为函数的节点作为API调用图中的节点,当识别到一个函数调用时,在函数调用图中添加相应的边来连接调用者和被调用者,形成API调用图;
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述对敏感API函数进行数据预处理,使用正则表达式将敏感API函数的调用信息按逗号分隔进行分词,形成敏感API函数特征列表,特征列表中共包括三项特征,分别为敏感API函数名称、参数和执行次数;
所述数据向量化,对预处理后的敏感API函数特征列表中的特征值表示为词向量。
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述构建基于语义卷积记忆融合网络的恶意代码检测模型,包括BiLSTM模块和TextCNN模块,所述将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,包括以下步骤:
将敏感API函数特征词向量输入到BiLSTM模块中,利用BiLSTM模块提取全局特征,并引入自注意力机制强化全局特征;将敏感API函数特征词向量输入到TextCNN模块中,利用TextCNN模块提取局部特征,将经过自注意力机制强化后的BiLSTM模块的输出向量和TextCNN模块的输出向量进行融合,引入Dropout层对融合向量进行随机失活操作。
作为本发明所述的恶意代码检测方法的一种优选方案,其中:
所述将向量化后的数据经过强化的全局特征和局部特征进行融合,包括以下步骤:
输入敏感API函数特征词向量;
未强化前的BiLSTM模型的输出向量表示为:
;
其中为前向LSTM的隐向量,/>为后向LSTM的隐向量;
经自注意力机制强化后的BiLSTM模型的输出向量表示为:
;
TextCNN模型的输出向量表示为:
,
其中为激活函数,/>为高/>宽为/>的卷积核,/>取2、3、4,/>为词向量的维度,取100,/>为词向量矩阵,/>为偏置;
将自注意力机制强化后的BiLSTM模型的输出向量和TextCNN模型的输出向量进行融合的融合向量表示为。
第二方面,本发明提供了一种恶意代码检测系统,包括:
API序列提取模块,用于获取代码数据集,提取对应的API调用序列信息;
定义模块,定义敏感API函数,引入特征向量中心性筛选敏感API函数;
处理模块,对敏感API函数进行数据预处理和数据向量化;
恶意代码检测模块,用于构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征进行融合,检测完成后输出检测结果。
第三方面,本发明提供了一种计算设备,包括:
存储器,用于存储程序;
处理器,用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述恶意代码检测方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,包括:所述程序被处理器执行时,实现所述的恶意代码检测方法的步骤。
本发明的有益效果:
1、本发明将API调用序列表示为API调用图结构,引入特征向量中心性,计算每个API节点的特征向量中心性分数,设定排名,根据排名筛选敏感API函数,只关注敏感API函数的行为信息,减少需要分析的API的数量,减少计算时间。
2、本发明中的检测模型包括TextCNN和BiLSTM模块,融合代码的局部特征和强化后的全局特征,进一步挖掘代码语义特征,提高模型的总体检测性能,引入Dropout层提高模型泛化能力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明一个实施例提供的一种恶意代码检测方法的基本流程示意图;
图2为本发明一个实施例提供的一种恶意代码检测方法的语义卷积记忆融合网络的模型图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
实施例1
参照图1-图2,为本发明的一个实施例,提供了一种恶意代码检测方法,如图1所示,包括以下步骤:
S1:获取代码数据集,提取对应的API调用序列信息;
更进一步的,获取代码数据集,通过在虚拟环境Cuckoo Sandbox中模拟运行正常和恶意代码的样本,得到每个可执行程序执行的日志文件,提取对应的API调用序列信息;其步骤包括:
首先,需要安装和配置Cuckoo Sandbox,该沙箱软件可以在虚拟环境中模拟运行可执行程序,并记录其动态行为;
然后,从Kaggle网站中下载代码数据集,包括恶意代码和正常代码;
启动虚拟机和沙箱,将代码样本提交到沙箱中进行分析;
沙箱在主机上生成一个存储分析结果的文件夹,其中包含了可执行程序的日志文件,日志文件中记录了可执行程序在运行时的所有API调用情况,包括调用的函数名、参数值、返回值等,解析日志文件,提取出API调用序列信息;
提取的API函数特征信息包括API函数的名称、参数、执行次数,提取出的名称、参数和执行次数之间均以逗号分割后存储至文本文件中。
S2:定义敏感API函数,引入特征向量中心性筛选敏感API函数。
更进一步的,将API调用序列表示为API调用图结构,节点表示API函数,边表示API函数间的依赖关系,计算API调用图中每个节点的特征向量中心性指数,对所有节点的特征向量中心性指数数值从大到小进行排序,设排名在前20%的节点为敏感API函数,具体方式包括:
给定一个API调用图,图中的节点有n个,表示n个API函数,初始化一个初始的中心性向量,这个向量包含了图中每个节点的初始中心性分数,根据排名筛选得到敏感API函数;
迭代计算中心性向量,直到收敛,即中心性向量不再发生显著变化,计算API调用图中每个节点的特征向量中心性指数具体公式表示为:
;
其中表示由API调用图中n个节点形成的邻接矩阵,A中的元素值为0时表示节点之间无连接,A中的元素值为1时表示节点之间存在连接关系,/>表示第/>次迭代后的中心性向量,/>表示下一次迭代后的中心性向量,/>是/>中的最大特征值,迭代完成后得到向量/>,即每个节点的特征向量中心性分数,根据排名筛选得到敏感API函数。
如表1所示为部分敏感API函数。
表1 部分敏感API函数表
构建API调用图的步骤包括:
步骤1:从源代码文件中读取代码,使用代码静态分析工具将代码数据集转换为抽象语法树的形式;
步骤2:遍历抽象语法树,识别和记录函数调用的位置,筛选抽象语法树中节点类型为函数的节点作为API调用图中的节点,当识别到一个函数调用时,在函数调用图中添加相应的边来连接调用者和被调用者,形成API调用图。
S3:对敏感API函数进行数据预处理和数据向量化;
更进一步的,从API函数特征信息中读取敏感API函数信息进行分词,构建敏感API函数特征列表,并删除停用词;具体方式为:
使用正则表达式将敏感API调用信息按逗号分隔进行分词,形成敏感API函数特征列表,敏感API函数特征列表中共包括三项特征,分别为敏感API函数名称、参数和执行次数;
使用NLTK提供的停用词表对特征列表进行停用词去除操作。
更进一步的,采用Gensim工具包中的word2vec模型对分词后的敏感API函数特征信息进行词向量化;
word2vec共包括两种模型CBOW和Skip-Gram,本实施例采用CROW模型来提取代码的词向量,提取完成之后作为代码的语义向量,在该过程中每个单词都可以被表示为一个向量,词嵌入维度设置为100。
S4:构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征进行融合,检测完成后输出检测结果。
更进一步的,将代码数据集按照7:3 的比例随机选取训练集和测试集数据,把训练集输入至融合神经网络中进行训练,得到训练完成的语义卷积记忆融合网络。
更进一步的,基于语义卷积记忆融合网络的恶意代码检测模型包括BiLSTM模块和TextCNN模块,BiLSTM模块用于提取全局特征,并引入自注意力机制强化特征,TextCNN模块用于提取局部特征,两模块为并联关系,使用“concatenate”连接融合全局特征和局部特征作为代码的融合特征,融合特征之后引入Dropout层提高模型泛化能力。
更进一步的,将向量化后的数据输入经过强化的全局特征和局部特征进行融合,包括以下步骤:输入词向量,
BiLSTM模型由前向LSTM和后向LSTM组成,BiLSTM模型的输出向量表示为:
;
其中为前向LSTM的隐向量,/>为后向LSTM的隐向量,H为前向和后向隐向量的拼接向量;
经自注意力机制强化后的向量表示为:
;
TextCNN模型的输出向量表示为:
;
其中为激活函数,/>为高/>宽为/>的卷积核,/>取2、3、4,/>为词向量的维度,取100,/>为词向量矩阵,/>为偏置;
融合向量为。
更进一步的,如图2所示,基于语义卷积记忆融合网络的恶意代码检测模型包括输入层、嵌入层、BiLSTM模块、TextCNN模块、Concat层、Dropout层和输出层。
输入层:模型首先通过输入层输入数据的类型和样式;
嵌入层:进行词嵌入;
BiLSTM模块:包括BiLSTM层、Self Attention层。BiLSTM为双向长短时记忆网络,Attention为注意力机制模块,注意力机制是对输入信息的加权求和,根据信息的重要程度确定权重,强化特征表达。
TextCNN模块:该模块中包括三个卷积核大小为2、3、4的卷积模块,采用MaxPooling1D来进行池化,并采用Concat用于特征融合,最后利用Flatten层可以对数组进行展平,即把多维的输入一维化;
Concat:用于把并行的两个模型提取出来的特征进行特征融合;
Dropout:用于在每个训练迭代中随机丢弃神经元的输出,有助于防止过拟合,以防止模型对训练数据过于敏感,提高模型的泛化能力;
输出层:输出分类结果,采用softmax函数作为分类器,得出分类结果,结果为1,即为恶意代码,结果为0,则为正常代码。
本实施例还提供一种恶意代码检测系统,包括:
API序列提取模块,用于获取代码数据集,提取对应的API调用序列信息;
定义模块,定义敏感API函数,引入特征向量中心性筛选敏感API函数;
处理模块,对敏感API函数进行数据预处理和数据向量化;
恶意代码检测模块,用于构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征进行融合,检测完成后输出检测结果。
更进一步的,还包括:
告警模块,根据检测结果对应用进行告警,当检测结果为恶意代码时,触发告警程序,将告警信息下发到应用程序中。
更进一步的,还包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行所述的恶意代码检测方法。
本实施例还提供一种计算机可读存储介质,其存储有程序,所述程序被处理器执行时,实现所述的恶意代码检测方法。
本实施例提出的存储介质与上述实施例提出的恶意代码检测方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(ReadOnly,Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
参照表1,为本发明的一个实施例,提供了一种恶意代码检测方法,为了验证其有益效果,通过具体的实施方式以及实施效果进行科学论证。
本实施例具体如下:
仿真实验的硬件测试平台为:CPU为2th Gen Intel(R) Core(TM) i5-1240P(1.70GHz);操作系统为windows 11;Python库为Gensim、Keras、Scikit-learn、Matplotlib。
仿真实验所使用的数据集来自Kaggle,得到恶意代码554条,正常代码1002条,按照7:3的比例随机选取训练集和测试集数据。仿真实验使用的数据集如表2所示。
表2数据集表
仿真实验采用Accuracy(准确率),Precision(精确率),Recall(召回率),F1-score作为评价指标,具体公式如下:
;
其中TP(True Positive)表示实际上为正样本,预测也为正样本的个数;TN(TrueNegative)表示实际上为负样本,预测也为负样本的个数;FP(False Positive)表示实际上为负样本,预测为正样本的个数;FN(False Negative)表示实际上为正样本,预测为负样本的个数。Accuracy表示分类正确的样本占所有样本的比值;Precision表示分类模型中被预测为正例的数量中,真正的正例所占的比例;Recall表示被正确预测的正样本占所有正样本的比例;F1值为Precision和Recall的调和平均值,既可以兼顾precision又可以兼顾recall,指标的值越大表示分类效果越好。
仿真实验的超参数如表3所示。
表3超参数表
仿真实验通过对不同检测模型进行对比进行本发明模型的测评,包括LSTM、BiLSTM、TextCNN、BiGRU+Self Attention模型,不同模型的实验结果如表4所示。
表4模型性能表
由上表对比结果可以看出,与其他模型相比,本发明模型检测性能更高。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.一种恶意代码检测方法,其特征在于,包括:
获取代码数据集,提取对应的API调用序列信息;
定义敏感API函数,引入特征向量中心性筛选敏感API函数;
对敏感API函数进行数据预处理和数据向量化;
构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,检测完成后输出检测结果;
所述定义敏感API函数,引入特征向量中心性筛选敏感API函数,还包括将API调用序列信息表示为API调用图结构,节点表示API函数,边表示API函数间的依赖关系,计算API调用图中每个节点的特征向量中心性指数,对所有节点的特征向量中心性指数数值从大到小进行排序,设排名在前20%的节点为敏感API函数;
所述计算API调用图中每个节点的特征向量中心性指数的公式表示为:
其中,A表示由API调用图中n个节点形成的邻接矩阵,值为0时表示节点之间无连接,值为1时表示节点之间存在连接关系,xi表示第i次迭代后的中心性向量,xi+1表示下一次迭代后的中心性向量,λ是xi+1中的最大特征值,迭代完成后得到向量x,即每个节点的特征向量中心性分数,根据排名筛选得到敏感API函数;
所述将API调用序列信息表示为API调用图结构,包括以下步骤:
从源代码文件中读取代码,使用代码静态分析工具将代码数据集转换为抽象语法树的形式;
遍历抽象语法树,识别和记录函数调用的位置,筛选抽象语法树中节点类型为函数的节点作为API调用图中的节点,当识别到一个函数调用时,在函数调用图中添加相应的边来连接调用者和被调用者,形成API调用图;
所述对敏感API函数进行数据预处理,使用正则表达式将敏感API函数的调用信息按逗号分隔进行分词,形成敏感API函数特征列表,并删除停用词;
所述敏感API函数特征列表中共包括三项特征,分别为敏感API函数名称、参数和执行次数;
所述数据向量化,将预处理后的敏感API函数特征列表中的特征值表示为词向量;
所述构建基于语义卷积记忆融合网络的恶意代码检测模型,包括输入层、嵌入层、BiLSTM模块和TextCNN模块、Concat层、Dropout层和输出层;
所述将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,包括以下步骤:
将敏感API函数特征词向量输入到BiLSTM模块中,利用BiLSTM模块提取全局特征,并引入自注意力机制强化全局特征;将敏感API函数特征词向量输入到TextCNN模块中,利用TextCNN模块提取局部特征,将经过自注意力机制强化后的BiLSTM模块的输出向量和TextCNN模块的输出向量进行融合,引入Dropout层对融合向量进行随机失活操作;
所述敏感API函数特征词向量表示为:
X={x1,x2,…,xi,…,xn};
未强化前的BiLSTM模型的输出向量表示为:
其中,为前向LSTM的隐向量,/>为后向LSTM的隐向量;
经自注意力机制强化后的BiLSTM模型的输出向量表示为:
A={a1,a2,…,a3};
TextCNN模型的输出向量表示为:
M=f(Wh×wX+b),
其中f为激活函数,Wh×w为高h宽为w的卷积核,h取2、3、4,w为词向量的维度,取100,X为词向量矩阵,b为偏置;
将自注意力机制强化后的BiLSTM模型的输出向量和TextCNN模型的输出向量进行融合的融合向量表示为:
C=Concatenate(A,M)。
2.一种基于权利要求1所述的恶意代码检测方法的检测系统,其特征在于:
API序列提取模块,用于获取代码数据集,提取对应的API调用序列信息;
定义模块,定义敏感API函数,引入特征向量中心性筛选敏感API函数;
处理模块,对敏感API函数进行数据预处理和数据向量化;
恶意代码检测模块,用于构建基于语义卷积记忆融合网络的恶意代码检测模型,将向量化后的数据输入经过强化的全局特征和局部特征中进行融合,检测完成后输出检测结果。
3.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行如权利要求1所述的恶意代码检测方法的步骤。
4.一种计算机可读存储介质,其存储有程序,其特征在于,所述程序被处理器执行时,实现如权利要求1所述的恶意代码检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311657266.9A CN117354067B (zh) | 2023-12-06 | 2023-12-06 | 一种恶意代码检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311657266.9A CN117354067B (zh) | 2023-12-06 | 2023-12-06 | 一种恶意代码检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117354067A CN117354067A (zh) | 2024-01-05 |
CN117354067B true CN117354067B (zh) | 2024-02-23 |
Family
ID=89367112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311657266.9A Active CN117354067B (zh) | 2023-12-06 | 2023-12-06 | 一种恶意代码检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354067B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118036005B (zh) * | 2024-04-11 | 2024-07-02 | 山东省计算中心(国家超级计算济南中心) | 基于精简调用图的恶意应用检测方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112651024A (zh) * | 2020-12-29 | 2021-04-13 | 重庆大学 | 用于恶意代码检测的方法及装置、设备 |
KR20220022170A (ko) * | 2020-08-18 | 2022-02-25 | 아주대학교산학협력단 | 애플리케이션 악성 코드 분석 시스템 및 방법 |
CN115510445A (zh) * | 2022-10-25 | 2022-12-23 | 西安理工大学 | 一种基于深度学习的Android恶意程序检测方法 |
CN115659330A (zh) * | 2022-09-14 | 2023-01-31 | 北京理工大学 | 一种基于内存取证和图神经网络的恶意代码检测方法 |
CN116167057A (zh) * | 2023-04-19 | 2023-05-26 | 国网江苏省电力有限公司信息通信分公司 | 基于关键代码语义检测的代码动态安全加载方法及装置 |
CN116432184A (zh) * | 2023-05-24 | 2023-07-14 | 沈阳理工大学 | 基于语义分析和双向编码表征的恶意软件检测方法 |
CN117009968A (zh) * | 2023-07-28 | 2023-11-07 | 孙锦涛 | 恶意代码的同源分析方法、装置、终端设备及存储介质 |
-
2023
- 2023-12-06 CN CN202311657266.9A patent/CN117354067B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220022170A (ko) * | 2020-08-18 | 2022-02-25 | 아주대학교산학협력단 | 애플리케이션 악성 코드 분석 시스템 및 방법 |
CN112651024A (zh) * | 2020-12-29 | 2021-04-13 | 重庆大学 | 用于恶意代码检测的方法及装置、设备 |
CN115659330A (zh) * | 2022-09-14 | 2023-01-31 | 北京理工大学 | 一种基于内存取证和图神经网络的恶意代码检测方法 |
CN115510445A (zh) * | 2022-10-25 | 2022-12-23 | 西安理工大学 | 一种基于深度学习的Android恶意程序检测方法 |
CN116167057A (zh) * | 2023-04-19 | 2023-05-26 | 国网江苏省电力有限公司信息通信分公司 | 基于关键代码语义检测的代码动态安全加载方法及装置 |
CN116432184A (zh) * | 2023-05-24 | 2023-07-14 | 沈阳理工大学 | 基于语义分析和双向编码表征的恶意软件检测方法 |
CN117009968A (zh) * | 2023-07-28 | 2023-11-07 | 孙锦涛 | 恶意代码的同源分析方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117354067A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chawla et al. | Host based intrusion detection system with combined CNN/RNN model | |
CN110135157B (zh) | 恶意软件同源性分析方法、系统、电子设备及存储介质 | |
Lu | Malware detection with lstm using opcode language | |
CN117354067B (zh) | 一种恶意代码检测方法及系统 | |
CN112307473A (zh) | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 | |
CN113076734B (zh) | 一种项目文本的相似度检测方法及装置 | |
CN113360915A (zh) | 基于源代码图表示学习的智能合约多漏洞检测方法及系统 | |
Mimura et al. | Detecting unseen malicious VBA macros with NLP techniques | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
Masabo et al. | Big data: deep learning for detecting malware | |
Wang et al. | Explainable apt attribution for malware using nlp techniques | |
CN115344863A (zh) | 一种基于图神经网络的恶意软件快速检测方法 | |
Fang et al. | JStrong: Malicious JavaScript detection based on code semantic representation and graph neural network | |
Lekssays et al. | A Novel Approach for Android Malware Detection and Classification using Convolutional Neural Networks. | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
CN116467710A (zh) | 一种面向不平衡网络的恶意软件检测方法 | |
Karbab et al. | SwiftR: Cross-platform ransomware fingerprinting using hierarchical neural networks on hybrid features | |
Lin et al. | Towards interpreting ML-based automated malware detection models: A survey | |
CN113762294B (zh) | 一种特征向量维度压缩方法、装置、设备、介质 | |
CN115858002B (zh) | 基于图对比学习的二进制代码相似性检测方法及系统与存储介质 | |
An et al. | Deep learning based webshell detection coping with long text and lexical ambiguity | |
CN116383707A (zh) | 恶意代码检测方法、装置、设备和介质 | |
Ho et al. | Fusion of deep convolutional and LSTM recurrent neural networks for automated detection of code smells | |
Wu et al. | Detecting Vulnerabilities in Ethereum Smart Contracts with Deep Learning | |
Zheng et al. | A multitype software buffer overflow vulnerability prediction method based on a software graph structure and a self-attentive graph neural network |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |