CN113961922B - 一种基于深度学习的恶意软件行为检测与分类系统 - Google Patents
一种基于深度学习的恶意软件行为检测与分类系统 Download PDFInfo
- Publication number
- CN113961922B CN113961922B CN202111254605.XA CN202111254605A CN113961922B CN 113961922 B CN113961922 B CN 113961922B CN 202111254605 A CN202111254605 A CN 202111254605A CN 113961922 B CN113961922 B CN 113961922B
- Authority
- CN
- China
- Prior art keywords
- model
- learning
- classification
- detection
- api
- 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
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
- G06F18/24155—Bayesian classification
-
- 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/045—Combinations of networks
-
- 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
Abstract
本发明公开了一种基于深度学习的恶意软件行为检测与分类系统,基于沙箱捕获的恶意软件动态行为数据,包含API调用序列特征工程和模型构建两大核心组成部分,其中特征工程部分摆脱了以往研究中只注重属性特征而忽视结构特征以及主要基于N‑gram采集属性特征进而缺乏语义理解能力的缺陷,模型构建部分利用集成学习思想构建综合检测与分类模型,子模型分别基于有监督学习、无监督学习和强化学习进行选择和设计,以实现对常规恶意软件高精确率检测和对未知APT恶意软件较高精确率检测;采用对抗训练的方法,将对抗攻击方法生成的对抗样本加入模型数据集,提高检测与分类模型抵御对抗样本攻击和鲁棒性的能力。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于深度学习的恶意软件行为检测与分类系统。
背景技术
恶意软件是黑灰产、境内外敌对势力实施网络攻击,进而实现非法牟利乃至颠覆政权等犯罪目的的主要攻击手段,给国家网络空间安全、经济安全和政治安全带来严重威胁。随着攻防对抗不断演化,越来越多的恶意软件通过复杂的加壳、混淆等技术手段,使得基于脱壳和反编译的静态分析、基于正则表达匹配的动态分析等传统方法束手无策,因而恶意软件相关检测与分类技术一直以来既是重点也是难点。
恶意软件检测方法主要分为静态分析和动态分析。然而,随着攻防对抗不断演化,越来越多的恶意软件通过复杂的加壳手段使得研究人员无法直接进行脱壳或反编译研究,需要基于沙箱捕获的恶意软件动态行为展开研究。与此同时,随着机器学习算法的快速发展,学术界、工业界开始探索将机器学习算法应用于恶意软件检测和分类之中,以实现恶意软件检测的自动化和智能化。
基于机器学习的恶意软件检测流程通常被分为软件行为采集、数据清洗和预处理、特征工程、模型构建和验证评估等步骤,其中提取恶意软件特征的特征工程以及恶意软件检测模型构建是最为核心的两个步骤,也成为了国内外相关研究工作的重点和难点。
在恶意软件特征提取与选择方面,2014年,韩晓光等人的《基于行为的恶意代码检测方法研究》中基于纹理分割算法,利用灰阶共生矩阵算法,提取恶意代码转换所得灰度图像的分块纹理特征,并在此基础上完成了恶意软件检测模型的构造。2015年杨晔在《基于行为的恶意代码检测方法研究》中提出将清洗过的API序列作为word2vec模型的输入,并将获得的词向量按序排列为矩阵,最终利用深度卷积神经网络完成特征的提取。2018年,孟曦在文献《基于深度学习的恶意代码分类与聚类技术研究》中提出基于word2vec的恶意代码基因向量化学习模型,从反汇编代码中提取代码基因序列,实现了恶意代码基因的特征提取。同年,倪铭在《基于数据挖掘技术的恶意软件检测关键问题研究》中采用one-hot编码对Windows API的N-gram序列进行特征表示,并作为CNN的输入,通过卷积和池化提取样本的隐藏特征。2019年,金逸灵的《基于卷积神经网络的容器中恶意软件检测》等将可恶意软件静态执行代码段转换为灰度图像,通过CNN提取多维局部特征。
在恶意软件特征选择上,国内众多专家学者也开展了大量的研究工作,取得了丰硕的研究成果。2018年,师炜在《基于特征融合的恶意代码多任务分类技术和恶意代码威胁性评估方法研究》中提出利用逐步回归思想的特征选择方法。该方法先选择初始特征子集,逐步添加新特征并每添加一个新特征时进行一次分类效果评估。同年,邹晓霞在《基于系统调用分析的恶意进程检测技术研究》中从系统调用记录中提取到1亿多个3-gram特征,使用递归特征消除(RFE)和LR检查器进行特征选择。
国内学者在恶意代码特征提取与选择领域相关工作还包括:Jiang等人在文献《Multiresolution abnormal trace detection using varied-length N-grams andautomate》中提出使用变长N-gram和自动机来描述互联网服务用户需求的正常路径,通过基于异常路径检测的故障检测方法来检测故障。2020年,杜冬高在《基于系统调用分析的恶意软件特征提取关键技术研究》中针对程序API行为图的构建较为困难的难题、检查对比时图匹配算法的时间和空间复杂度较大的问题,通过对恶意软件的API分类并利用API之间的数据依赖关系,提出了一种分类行为图的特征提取方法,并在特征提取后使用SVM算法完成了机器学习检测模型的构建。
2004年,About-Assaleh等人在文献《Detection of new malicious code usingN-grams signatures》中提出从程序中提取不同长度的代码字节N-gram(n=1-10),建立长度为L的类别轮廓(Profile)(20≤L≤5000),最终通过实验选择n=4,L=1500。2006年,Reddy等人在文献《New malicious code detection using variable length N-grams》中提出利用基于事件(Episodes)概念的变长N-gram特征提取方法来检测恶意软件。其通过研究恶意软件的API调用顺序,采用变长N-gram算法提取出不同长度的API N-gram(APIhyper-gram)作为恶意软件行为特征,并基于朴素贝叶斯的分类算法,建立基于朴素贝叶斯和API hyper-gram的恶意软件检测模型。2007年,Christodorescu等人在文献《Miningspecifications of malicious behavior》中提出基于恶意软件样本的系统调用之间的数据流依赖关系构建系统调用依赖图(SCDG),挖掘出恶意软件的行为规范。该规范捕获了系统调用之间的关系,并抵抗随机系统调用注入攻击。2009年,Ahmed等人在文献《Usingpatio-temporal information in API calls with machine learning algorithms formalware detection》中证明API调用和参数的组合(如时空特性集)可以提高检测精度,而非独立的API调用或参数集。同年U.Bayer等人在文献《Scalable,behavior-based malwareclustering》中利用Anubis沙箱从恶意软件样本的API调用序列和调用参数中提取行为特征,然后根据行为特征对样本进行聚类。
2012年,Eskandari等人在文献《A graph mining approach for detectingunknown malwares》中采用动态分析方法和N-gram算法从API调用序列中提取API N-gram构建程序连续动态行为特征,随后采用最优选择算法进行降维,并根据实验结果最终选择API 4-gram建立检测模型。2014年,Elhadi等人在文献《Enhancing the detection ofmetamorphic malware using call graphs》中通过集成API调用和操作系统资源为每个恶意软件样本构建了一个API调用图,再利用图形编辑距离算法进行图形匹配。2018年,Lee等人在文献《Automatic malware mutant detection and group classification based onthe N-gram and clustering coefficient》中提出首先将API依据其功能进行分类,并采用动态分析方法从程序中提取出API N-gram作为行为特征,然后用基于聚类系数自动地对不同类型的恶意软件聚类。
在恶意软件检测模型构建方面,2017年,徐琳在文献《僵尸网络中的恶意域名检测系统的设计与实现》中针对僵尸网络中采用的DGA算法生成域名进行了特征研究分析,并采用了聚类算法对DNS解析无效的(NXDomain)域名进行聚类,以寻找可能被感染主机Bots。2020年,郑锐等人在《一种基于深度学习的恶意软件家族分类模型》中对恶意软件的前后API调用概率关系进行了建模,设计了基于双向LSTM的深度学习模型,实现了恶意软件家族分类。同年,肖飞在《基于行为分析的恶意软件检测方法研究》中针对传统机器学习方法提取恶意软件本质特征困难的问题,设计并实现了一种基于行为的含三个隐藏层的深度学习模型,其通过逐层训练,提取特征的高级抽象特征。论文数据集包含880个恶意软件样本和880个白样本,模型准确率达到98.6%。
Hu等人在《Generating Adversarial Malware Examples for Black-BoxAttacks Based on GAN》中提出了MalGAN模型,生成的对抗样本能绕过基于黑盒机器学习的检测模型,使得恶意软件检测的准确率接近于零,从而给恶意软件检测模型的构建提出了新的挑战。
2015年,David等人在《Deepsing:Deep learning for automatic malwaresignature generation and classification》中提出了一种基于深度学习的恶意软件签名生成和分类方法。该方法利用深度置信网络(Deep Belief Network,DBN)来生成恶意软件行为的不变表示。实验结果表明,DBN生成的签名可以对恶意软件变种进行分类,其准确率达到98.6%。2017年,E.Rezende等人在《Malicious Software Classification UsingTransfer Learning of ResNet-50 Deep Neural Network》中提出了一种基于ResNet-50架构的深度神经网络的分类方法。之后,HaddadPajouh等人在2018年《A Deep RecurrentNeural Network Based Approach for Internet of Things Malware Threat Hunting》中提出了基于RNN检测IoT恶意软件的方案。该方案首先使用RNN来分析基于ARM的IoT应用程序的执行操作代码,然后使用三种不同的LSTM网络来训练恶意软件检测模型。分析结果表明,检测准确率高达98.18%。Kyadige A等人在2019年《Learning from Context:Exploiting and Interpreting File Path Information for Better MalwareDetection》中提出将PE文件内容中提取的静态特征传送到前馈神经网络基础层进行处理,文件路径经过卷积神经网络基础层处理,然后将这些基础层的输出串联在一起,通过一系列完全连接层输出恶意文件的置信度。
综上,在恶意软件特征提取与选择方面,无论定长还是变长N-gram特征提取方法,与连续空间词向量模型(如word2vec、FastText等)相比,N-gram模型是基于离散单元词构建而成,本质上是一种统计方法,相对于连续空间词向量,没有语义理解能力。此外,针对API调用序列时序特性的研究还不够充分,无法较好地提取原始数据特征,实现基础的语义理解。
在检测模型的构建方面,主要使用传统的支持向量机、随机森林等算法进行构建。但是,随着恶意软件愈加复杂,其API调用序列也随之更加复杂,按已有方法提取的特征向量体现出明显的高维特性,传统机器学习方法已无法较好地从中学习到潜在的规律。
目前的研究主要是基于已知恶意软件标签的有监督深度学习,对APT高级威胁和未知威胁的研究还有待进一步深入。另外,当前恶意软件动态行为提取着重于其属性特征的提取,对其结构特征提取重视程度不足。
名词解释:
恶意软件:包含特洛伊木马、网路蠕虫、后门程序、电脑病毒、广告软件、间谍软件、僵尸网络、挖矿程序、勒索软件、窃密木马等10种以上恶意软件。
复杂网络:是指具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络。其主要表现有结构复杂、网络进化、连接多样性、动力学复杂性和节点多样性。在网络理论的研究中,复杂网络是由数量巨大的节点和节点之间错综复杂的关系共同构成的网络结构。用数学的语言来说,就是一个有着足够复杂的拓扑结构特征的图。复杂网络具有简单网络,如晶格网络、随机图等结构所不具备的特性,而这些特性往往出现在真实世界的网络结构中。复杂网络的研究是现今科学研究中的一个热点,与现实中各类高复杂性系统,如的互联网、神经网络和社会网络的研究有密切关系。
APT攻击:即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
注意力机制(Attention Mechanism):其作为一种资源分配方案,将有限的计算资源用来处理更重要的信息,是解决信息超载的主要手段。其主要包括注意力打分(Attention Score)、注意力分布(Attention Distribution)、注意力输出(AttentionOutput)。其有多种变体,之间的区别主要在于注意力打分环节的不同。
TCN:TCN是Temporal Convolutional Network的简写,由具有相同输入和输出长度的一维扩张卷积层和因果卷积层组成。
LSTM:是Long Short-Term Memory的简写,意为长短期记忆,是一种时间递归神经网络(RNN)。由LSTM单元组成的RNN通常称为LSTM网络(或仅称为LSTM)。公共LSTM单元由单元,输入门,输出门和忘记门组成。该单元记住任意时间间隔内的值,并且三个门控制进出单元的信息流。LSTM网络非常适合基于时间序列数据进行分类,处理和预测,因为在时间序列中的重要事件之间可能存在未知持续时间的滞后。开发LSTM是为了处理在训练传统RNN时可能遇到的爆炸和消失的梯度问题。对于间隙长度的相对不敏感性是LSTM相对于RNN,隐马尔可夫模型和其他序列学习方法在许多应用中的优势。
Q学习:时序差分学习中离轨策略下的控制算法,是强化学习早期的一个重要突破,其待学习的动作价值函数Q采用了对最优动作价值函数q*的直接近似作为学习目标,因而与用于生成智能体决策序列轨迹的行动策略没有关系。于此对比,Sarsa算法使用的是待学习的动作价值函数本身,其计算需要知道下一时刻的动作,因而与生成数据的行动策略是相关的。
发明内容
本发明的目的是提供一种基于深度学习的恶意软件行为检测与分类系统,包含API调用序列特征工程和模型构建两大核心组成部分,以实现对常规恶意软件高精确率检测和对未知APT恶意软件较高精确率检测。另外,通过采用对抗训练的方法,将对抗攻击方法生成的对抗样本加入模型数据集,能提高检测与分类模型抵御对抗样本攻击和鲁棒性的能力。
为了实现上述目的,本发明提供的一种基于深度学习的恶意软件行为检测与分类系统,具体步骤如下;
S1、读取沙箱采集的正常软件与恶意软件API调用序列;
S2、针对API调用序列,分别基于自然语言处理(Natural Language Processing,NLP)技术和复杂网络技术提取特征,得到Fn和Fc;
S3、对步骤S2提取的两组特征Fn和Fc进行组合(Concatenate),得到API调用序列完成特征数据集F;基于F,利用对抗机器学习生成对抗样本Fa,并将Fa合并到F,得到更新后的F;
S4、对步骤S3的完整特征数据集划分训练集、验证集和测试集,并基于有监督学习、无监督学习和强化学习分别构建检测与分类子模型;
S5、基于大于1个的奇数个有监督学习模型构建Bagging集成学习模型;
S6、基于步骤S5得到的Bagging集成学习模型输出、无监督学习模型和强化学习模型构建Stacking集成学习模型;
S7、保存模型,以此模型对未知分类软件进行检测与分类。
本发明解决的技术问题主要包含:
1、API调用序列特征工程。作为模型构建的数据源,API调用序列是字符串离散列表,使其特征无法直接通过深度学习实现端到端的自动提取,需在API调用序列和构建的模型之间引入特征提取环节,以实现对原始数据的特征提取,并转换为适合模型的特征向量,其中特征提取的优劣直接影响后期构建模型的性能。同时,字符串离散列表中的单个字符串具备自身的属性特征,多个字符串则具备一定的结构特征。
2、恶意软件检测模型构建。诸如随机森林、支持向量机等传统浅层机器学习模型缺乏较好的学习能力,同时单一的深度学习模型只能从单向视角去挖掘数据中潜在规律,从而缺乏鲁棒性和对未知APT恶意软件的检测能力,需要设计从不同原理、不同视角挖掘API调用序列特征向量内在规律的集成学习(ensemble learning)模型。
作为优选:
所述的步骤S1中,采用布谷鸟沙箱采集正常软件和恶意软件的API调用序列。
所述的步骤S2中,利用Bert预训练语言模型,编写代码提取API调用序列属性特征信息,得到特征向量数据集Fn。
所述的步骤S2中,基于API调用序列的顺序,将每一个API调用作为一个网络节点,依据API调用序列的顺序将前后相连的API调用表示为网络中一条边,编写代码创建邻接列表(adjacency list)和边列表(edge list),再将邻接列表和边列表构成邻接矩阵,通过邻接矩阵来表征网络图;利用networkx库编写代码,计算图中API节点的出度、入度、中心度,挖掘关键节点和社群结构特征信息,得到特征向量数据集Fc。
所述的步骤S3中,基于C&W、GAN等攻击方法生成合适的对抗样本。
所述的步骤S4中,利用TensorFlow库编写模型代码,基于时序卷积网络TCN(Temporal Convolutional Network)训练有监督的恶意软件分类与检测子模型,其中TCN由因果卷积层、扩张卷积层和残差模块组成。
所述的步骤S4中,利用TensorFlow库编写模型代码,基于注意力机制(AttentionMechanism)的长短期记忆LSTM(Long Short-Term Memory)模型训练有监督的恶意软件分类与检测子模型,该模型包含注意力机制层和LSTM动态行为检测两部分,在注意力机制层中将解码层的每一层隐藏层同编码层相关联,采取点乘得到注意力得分,再使用softmax激活函数得到注意力分布,以计算特征权重,最后对编码层的隐藏层使用加权和聚焦操作得到注意力输出;在LSTM动态行为检测部分,将注意力机制层的输出作为LSTM的输入,通过学习模型,完成对软件动态行为恶意与否的判定,最终完成软件行为的检测与分类。
所述的步骤S4中,利用TensorFlow库编写模型代码,基于图神经网络GNN(GraphNeural Network)模型采用图分类的思路训练有监督的恶意软件分类与检测子模型,所述图分类包含图的结构信息和各个节点的属性信息,该模型采用图坍塌(Graph Coarsening)池化,将图划分为不同的子图,再将子图视为超级节点,从而形成一个坍塌的图,实现对图全局信息的层次化学习。
所述的步骤S4中,利用TensorFlow库编写模型代码,基于深度强化学习DRL(DeepReinforcement Learning)模型训练恶意软件分类与检测模型,将原始数据类型为字符串数组的API调用序列进行编码,采用One-hot编码或聚类算法进行转换,该转换结果将作为后期深度强化学习子模型的输入;从离线学习的角度出发,将所有API调用序列的特征向量作为一种状态,对软件的持续分类作为一个动作,把原来的分类问题转换成一个决策问题,并通过强化学习中的Q学习方法进行求解,采用深度学习的方式作为函数近似的方法来学习Q值;由环境产生的奖励如下:1)如果状态是恶意软件种类i的,动作输出为ai,则奖励为2;2)如果状态是恶意软件种类i的,动作输出为aj,j∈[1,10],j≠i,则奖励为1;3)如果状态是恶意软件种类i的,动作输出为a11,表示没有检测出,奖励为-1;4)如果状态是正常软件种类,动作输出为aj,j∈[1,10],奖励为-1。
所述的步骤S4中,利用TensorFlow库编写模型代码,基于贝叶斯神经网络BNN(Bayesian Neural Network)训练无监督的恶意软件分类与检测模型该模型主要由编码器、解码器和采样层组成;对训练集进行均值/方差归一化处理,为防止数据泄露,基于训练集的均值/方差对验证集和测试集同样进行归一化处理;编写编码层模块、编写统计特征Lambda模块、采样层模块、解码层模块、Variational Lower Bound(VLB)模块;根据VLB模块,将输入正常软件的训练数据、解码层输出、Lambda模块输出作为VLB模块的输入,设定模型的损失函数、优化器为和初始化学习率。
本发明的核心点是:1)基于预训练语言模型及复杂网络的API调用序列高效、多维特征提取技术;2)基于TCN、Attention+LSTM及GNN模型的同族恶意软件高准确率检测技术;3)基于DRL、BNN和对抗训练的未知恶意软件检测技术;4)基于集成学习Bagging、Stacking的多角度检测模型融合方法。
本发明提出一种基于深度学习的恶意软件行为检测与分类系统,在特征提取阶段,利用具有语义理解能力的自然语言处理模型为基础。在深度学习模型构建方面,通过对基于不同原理的算法的深入研究,建立多种类深度学习检测模型。在此基础上,利用集成学习的思想构建综合检测模型。同时,采用对抗攻击方法将生成的对抗样本加入模型数据集,提高检测模型抵御对抗样本攻击的能力;采用对抗训练的方法,提高综合检测模型的鲁棒性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明的流程图;
图2为本发明检测子模型集成学习逻辑图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面将结合附图对本发明作进一步的详细介绍。
本发明提供了如图1和图2所示的一种基于深度学习的恶意软件行为检测与分类系统,具体步骤如下:
步骤S1:使用布谷鸟沙箱采集正常软件和恶意软件的API调用序列,并读取该API调用序列。
步骤S2.1:利用Bert预训练语言模型,编写代码提取API调用序列属性特征信息,得到特征向量数据集Fn。
步骤S2.2:基于API调用序列的顺序,将每一个API调用作为一个网络节点,依据API调用序列的顺序将前后相连的API调用表示为网络中一条边,编写代码创建邻接列表(adjacency list)和边列表(edge list),再将邻接列表和边列表构成邻接矩阵,通过邻接矩阵来表征网络图;利用networkx库编写代码,计算图中API节点的出度、入度、中心度,挖掘关键节点和社群等结构特征信息,得到特征向量数据集Fc。
步骤S3:将Fn和Fc进行组合,得到完整数据集F,该数据集完整的体现了API调用序列的属性特征和结构特征;基于C&W、GAN等攻击方法生成合适的对抗样本,并将对抗样本合并到数据集F,得到更新后的数据集F。
步骤S4.1:将步骤S3得到的完整数据集F划分为训练集、验证集和测试集。
步骤S4.2:利用TensorFlow库编写模型代码,基于时序卷积网络TCN(TemporalConvolutional Network)训练有监督的恶意软件分类与检测子模型,其中TCN由因果卷积层、扩张卷积层和残差模块组成。
步骤S4.3:利用TensorFlow库编写模型代码,基于注意力机制(AttentionMechanism)的长短期记忆LSTM(Long Short-Term Memory)模型训练有监督的恶意软件分类与检测子模型,该模型包含注意力机制层和LSTM动态行为检测两部分。在注意力机制层中将解码层的每一层隐藏层同编码层相关联,采取点乘得到注意力得分,再使用softmax激活函数得到注意力分布,以计算特征权重,最后对编码层的隐藏层使用加权和聚焦操作得到注意力输出。在LSTM动态行为检测部分,将注意力机制层的输出作为LSTM的输入,通过学习模型,完成对软件动态行为恶意与否的判定,最终完成软件行为的检测与分类。
步骤S4.4:利用TensorFlow库编写模型代码,基于图神经网络GNN(Graph NeuralNetwork)模型采用图分类的思路训练有监督的恶意软件分类与检测子模型。与节点层面分类任务不同,图分类需要关注图数据的全局信息,既包含图的结构信息,也包含各个节点的属性信息。为得到较好的全图表示向量,模型采用图坍塌(Graph Coarsening)池化,将图划分为不同的子图,再将子图视为超级节点,从而形成一个坍塌的图,实现对图全局信息的层次化学习。
步骤S4.5:利用TensorFlow库编写模型代码,基于深度强化学习DRL(DeepReinforcement Learning)模型训练恶意软件分类与检测模型。由于深度强化学习的输入数据类型为状态编码,需将原始数据类型为字符串数组的API调用序列进行编码,由此实现原分类问题到强化学习决策问题的转换。为此,本模型采用One-hot编码或聚类算法进行转换,该特征提取结果将作为后期深度强化学习子模型的输入。
步骤S4.5.1:从离线学习的角度出发,将所有API调用序列的特征向量作为一种状态,对软件的持续分类作为一个动作,这样就可以把原来的分类问题转换成一个决策问题,并通过强化学习进行求解。本项目采用强化学习中的Q学习方法进行研究,同时由于样本空间巨大(正常软件和10类恶意软件,每类恶意软件至少有10万个样本),且每个样本的特征向量维度高且长短不一,无法使用常规的表结构方式来表示,因而本项目采用深度学习的方式作为函数近似的方法来学习Q值。
步骤S4.5.2:由环境产生的奖励如下:1)如果状态是恶意软件种类i的,动作输出为ai,则奖励为2;2)如果状态是恶意软件种类i的,动作输出为aj,j∈[1,10],j≠i,则奖励为1;3)如果状态是恶意软件种类i的,动作输出为a11,表示没有检测出,奖励为-1;4)如果状态是正常软件种类,动作输出为aj,j∈[1,10],奖励为-1。
步骤S4.6:利用TensorFlow库编写模型代码,基于贝叶斯神经网络BNN(BayesianNeural Network)训练无监督的恶意软件分类与检测模型。模型主要由编码器、解码器和采样层组成。
步骤S4.6.1:对训练集进行均值/方差归一化处理,为防止数据泄露,基于训练集的均值/方差对验证集和测试集同样进行归一化处理。
步骤S4.6.2:编写编码层模块、编写统计特征Lambda模块、采样层模块、解码层模块、Variational Lower Bound(VLB)模块
步骤S4.6.3:根据VLB模块,将输入正常软件的训练数据、解码层输出、Lambda模块输出作为VLB模块的输入,设定模型的损失函数、优化器为和初始化学习率。
步骤S5:基于步骤S4.2,步骤S4.3和步骤S4.4得到的三个有监督学习子模型构建Bagging集成学习模型。
步骤S6:基于步骤S4.5,步骤S4.6和步骤S5分别得到有监督学习Bagging模型、强化学习模型和无监督学习模型构建Stacking集成学习模型。
步骤S7:保存模型,以此模型对未知分类软件进行检测与分类。
以上只通过说明的方式描述了本发明的某些示范性实施例,毋庸置疑,对于本领域的普通技术人员,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式对所描述的实施例进行修正。因此,上述附图和描述在本质上是说明性的,不应理解为对本发明权利要求保护范围的限制。
Claims (1)
1.一种基于深度学习的恶意软件行为检测与分类系统,其特征在于:具体步骤如下;
S1、读取沙箱采集的正常软件与恶意软件API调用序列,采用布谷鸟沙箱采集正常软件和恶意软件的API调用序列;
S2、针对API调用序列,分别基于自然语言处理(Natural Language Processing,NLP)技术和复杂网络技术提取特征,得到Fn和Fc;利用Bert预训练语言模型,编写代码提取API调用序列属性特征信息,得到特征向量数据集Fn;基于API调用序列的顺序,将每一个API调用作为一个网络节点,依据API调用序列的顺序将前后相连的API调用表示为网络中一条边,编写代码创建邻接列表(adjacency list)和边列表(edge list),再将邻接列表和边列表构成邻接矩阵,通过邻接矩阵来表征网络图;利用networkx库编写代码,计算图中API节点的出度、入度、中心度,挖掘关键节点和社群结构特征信息,得到特征向量数据集Fc;
S3、对步骤S2提取的两组特征Fn和Fc进行组合(Concatenate),得到API调用序列完成特征数据集F;基于F,利用对抗机器学习生成对抗样本Fa,并将Fa合并到F,得到更新后的F;基于C&W、GAN攻击方法生成合适的对抗样本;
S4、对步骤S3的完整特征数据集划分训练集、验证集和测试集;
S4.1:基于有监督学习、无监督学习和强化学习分别构建检测与分类子模型;
S4.2:利用TensorFlow库编写模型代码,基于时序卷积网络TCN(TemporalConvolutional Network)训练有监督的恶意软件分类与检测子模型,其中TCN由因果卷积层、扩张卷积层和残差模块组成;
S4.3:利用TensorFlow库编写模型代码,基于注意力机制(Attention Mechanism)的长短期记忆LSTM(Long Short-Term Memory)模型训练有监督的恶意软件分类与检测子模型,该模型包含注意力机制层和LSTM动态行为检测两部分,在注意力机制层中将解码层的每一层隐藏层同编码层相关联,采取点乘得到注意力得分,再使用softmax激活函数得到注意力分布,以计算特征权重,最后对编码层的隐藏层使用加权和聚焦操作得到注意力输出;在LSTM动态行为检测部分,将注意力机制层的输出作为LSTM的输入,通过学习模型,完成对软件动态行为恶意与否的判定,最终完成软件行为的检测与分类;
S4.4:利用TensorFlow库编写模型代码,基于图神经网络GNN(Graph Neural Network)模型采用图分类的思路训练有监督的恶意软件分类与检测子模型,所述图分类包含图的结构信息和各个节点的属性信息,该模型采用图坍塌(Graph Coarsening)池化,将图划分为不同的子图,再将子图视为超级节点,从而形成一个坍塌的图,实现对图全局信息的层次化学习;
S4.5:利用TensorFlow库编写模型代码,基于深度强化学习DRL(Deep ReinforcementLearning)模型训练恶意软件分类与检测模型,将原始数据类型为字符串数组的API调用序列进行编码,采用One-hot编码或聚类算法进行转换,该转换结果将作为后期深度强化学习子模型的输入;
S4.5.1:从离线学习的角度出发,将所有API调用序列的特征向量作为一种状态,对软件的持续分类作为一个动作,把原来的分类问题转换成一个决策问题,并通过强化学习中的Q学习方法进行求解,采用深度学习的方式作为函数近似的方法来学习Q值;
S4.5.2:由环境产生的奖励如下:1)如果状态是恶意软件种类i的,动作输出为ai,则奖励为2;2)如果状态是恶意软件种类i的,动作输出为aj,j∈[1,10],j≠i,则奖励为1;3)如果状态是恶意软件种类i的,动作输出为a11,表示没有检测出,奖励为-1;4)如果状态是正常软件种类,动作输出为aj, j∈[1,10],奖励为-1;
S4.6:利用TensorFlow库编写模型代码,基于贝叶斯神经网络BNN(Bayesian NeuralNetwork)训练无监督的恶意软件分类与检测模型该模型主要由编码器、解码器和采样层组成;
S4.6.1:对训练集进行均值/方差归一化处理,为防止数据泄露,基于训练集的均值/方差对验证集和测试集同样进行归一化处理;
S4.6.2:编写编码层模块、编写统计特征Lambda模块、采样层模块、解码层模块、Variational Lower Bound(VLB)模块;
S4.6.3:根据VLB模块,将输入正常软件的训练数据、解码层输出、Lambda模块输出作为VLB模块的输入,设定模型的损失函数、优化器为和初始化学习率;
S5、基于步骤S4.2,步骤S4.3和步骤S4.4得到的三个有监督学习子模型构建Bagging集成学习模型,基于大于1个的奇数个有监督学习模型构建Bagging集成学习模型;
S6、基于步骤S4.5,步骤S4.6和步骤S5分别得到有监督学习Bagging模型、强化学习模型和无监督学习模型构建Stacking集成学习模型,基于步骤S5得到的Bagging集成学习模型输出、无监督学习模型和强化学习模型构建Stacking集成学习模型;
S7、保存模型,以此模型对未知分类软件进行检测与分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254605.XA CN113961922B (zh) | 2021-10-27 | 2021-10-27 | 一种基于深度学习的恶意软件行为检测与分类系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254605.XA CN113961922B (zh) | 2021-10-27 | 2021-10-27 | 一种基于深度学习的恶意软件行为检测与分类系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961922A CN113961922A (zh) | 2022-01-21 |
CN113961922B true CN113961922B (zh) | 2023-03-24 |
Family
ID=79467524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111254605.XA Active CN113961922B (zh) | 2021-10-27 | 2021-10-27 | 一种基于深度学习的恶意软件行为检测与分类系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961922B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114266050B (zh) * | 2022-03-03 | 2022-10-04 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
CN115687911B (zh) * | 2022-06-13 | 2023-06-02 | 北京融合未来技术有限公司 | 基于脉冲信号的信号灯检测方法、装置和系统 |
CN115271067B (zh) * | 2022-08-25 | 2024-02-23 | 天津大学 | 基于特征关系评估的安卓对抗样本攻击方法 |
CN115622806B (zh) * | 2022-12-06 | 2023-03-31 | 南京众智维信息科技有限公司 | 一种基于bert-cgan的网络入侵检测方法 |
CN116361839B (zh) * | 2023-05-26 | 2023-07-28 | 四川易景智能终端有限公司 | 一种基于nlp的涉密屏蔽方法 |
CN116956282B (zh) * | 2023-06-07 | 2024-02-06 | 广州天懋信息系统股份有限公司 | 基于网络资产内存时间序列多特征数据的异常检测系统 |
CN116680141B (zh) * | 2023-07-31 | 2023-12-01 | 北京趋动智能科技有限公司 | 异常预测方法、装置、存储介质及电子设备 |
CN117077141A (zh) * | 2023-10-13 | 2023-11-17 | 国网山东省电力公司鱼台县供电公司 | 一种智能电网恶意软件检测方法及系统 |
CN117692261B (zh) * | 2024-02-04 | 2024-04-05 | 长沙市智为信息技术有限公司 | 一种基于行为子图表征的恶意Bot识别方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829543A (zh) * | 2019-01-31 | 2019-05-31 | 中国科学院空间应用工程与技术中心 | 一种基于集成学习的数据流在线异常检测方法 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
CN111723368A (zh) * | 2020-05-28 | 2020-09-29 | 中国人民解放军战略支援部队信息工程大学 | 基于Bi-LSTM和自注意力的恶意代码检测方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495633B2 (en) * | 2015-04-16 | 2016-11-15 | Cylance, Inc. | Recurrent neural networks for malware analysis |
CN111259393B (zh) * | 2020-01-14 | 2023-05-23 | 河南信息安全研究院有限公司 | 一种基于生成对抗网络的恶意软件检测器抗概念漂移方法 |
CN111428236A (zh) * | 2020-03-06 | 2020-07-17 | 苏州浪潮智能科技有限公司 | 一种恶意软件的检测方法、装置、设备及可读介质 |
CN113221112B (zh) * | 2021-05-28 | 2022-03-04 | 广州大学 | 基于弱相关集成策略的恶意行为识别方法、系统和介质 |
CN113536299A (zh) * | 2021-07-08 | 2021-10-22 | 浙江网安信创电子技术有限公司 | 一种基于贝叶斯神经网络的入侵检测系统的设计方法 |
-
2021
- 2021-10-27 CN CN202111254605.XA patent/CN113961922B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829543A (zh) * | 2019-01-31 | 2019-05-31 | 中国科学院空间应用工程与技术中心 | 一种基于集成学习的数据流在线异常检测方法 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
CN111723368A (zh) * | 2020-05-28 | 2020-09-29 | 中国人民解放军战略支援部队信息工程大学 | 基于Bi-LSTM和自注意力的恶意代码检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113961922A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113961922B (zh) | 一种基于深度学习的恶意软件行为检测与分类系统 | |
Yan et al. | Detecting malware with an ensemble method based on deep neural network | |
Wang et al. | A deep learning approach for detecting malicious JavaScript code | |
CN108718310B (zh) | 基于深度学习的多层次攻击特征提取及恶意行为识别方法 | |
Vinayakumar et al. | Evaluating deep learning approaches to characterize and classify the DGAs at scale | |
CN110266647B (zh) | 一种命令和控制通信检测方法及系统 | |
CN110933105B (zh) | 一种Web攻击检测方法、系统、介质和设备 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN111552971B (zh) | 基于深度强化学习的恶意软件家族分类规避方法 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
Alabadi et al. | Anomaly detection for cyber-security based on convolution neural network: A survey | |
CN116150509B (zh) | 社交媒体网络的威胁情报识别方法、系统、设备及介质 | |
CN111400713B (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
CN113194094A (zh) | 一种基于神经网络的异常流量检测方法 | |
Assefa et al. | Intelligent phishing website detection using deep learning | |
Muslihi et al. | Detecting SQL injection on web application using deep learning techniques: a systematic literature review | |
CN113824725B (zh) | 一种基于因果机器学习的网络安全监测分析方法与系统 | |
Zhu et al. | CCBLA: a lightweight phishing detection model based on CNN, BiLSTM, and attention mechanism | |
Bountakas et al. | Defense strategies for adversarial machine learning: A survey | |
Ellaky et al. | Systematic literature review of social media bots detection systems | |
Remmide et al. | Detection of phishing URLs using temporal convolutional network | |
Herath et al. | Real-time evasion attacks against deep learning-based anomaly detection from distributed system logs | |
Chen et al. | Graphfool: Targeted Label Adversarial Attack on Graph Embedding |
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 |