CN114707151A - 一种基于api调用和网络行为的僵尸软件检测方法 - Google Patents
一种基于api调用和网络行为的僵尸软件检测方法 Download PDFInfo
- Publication number
- CN114707151A CN114707151A CN202210528096.3A CN202210528096A CN114707151A CN 114707151 A CN114707151 A CN 114707151A CN 202210528096 A CN202210528096 A CN 202210528096A CN 114707151 A CN114707151 A CN 114707151A
- Authority
- CN
- China
- Prior art keywords
- sample
- network
- module
- behavior pattern
- extraction layer
- 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.)
- Granted
Links
- 230000006399 behavior Effects 0.000 claims abstract description 104
- 238000000605 extraction Methods 0.000 claims abstract description 61
- 238000004458 analytical method Methods 0.000 claims abstract description 25
- 238000009826 distribution Methods 0.000 claims abstract description 24
- 230000003068 static effect Effects 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims abstract description 17
- 238000007781 pre-processing Methods 0.000 claims abstract description 14
- 230000002776 aggregation Effects 0.000 claims abstract description 12
- 238000004220 aggregation Methods 0.000 claims abstract description 12
- 238000002372 labelling Methods 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 238000006116 polymerization reaction Methods 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 230000008676 import Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 4
- 244000035744 Hura crepitans Species 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000000546 chi-square test Methods 0.000 claims description 3
- 238000002790 cross-validation Methods 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000013604 expression vector Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000005295 random walk Methods 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于API调用和网络行为的僵尸软件检测方法,该方法包括主机行为模式提取层模块、网络行为模式提取层模块和聚合训练模块;其中主机行为模式提取层模块包括文件解析识别子模块、静态FCG提取子模块、样本分发子模块和调用上下文提取子模块,依次进行样本文件的解析和识别、样本分发、样本的静态分析和动态分析、FCG调用图压缩以及节点重标签;网络行为模式提前层模块包括网络行为监控和数据预处理子模块、LSTM表示学习子模块,进行网络行为收集和数据预处理,训练LSTM表示学习子模块;聚合训练模块将主机行为模式提取层模块、网络行为模式提取层模块的输出数据进行聚合训练,输入全连接分类网络中,最后得到分类结果。
Description
技术领域
本发明涉及计算机科学技术领域,具体是一种基于API调用和网络行为的僵尸软件检测方法。
背景技术
随着深度学习的应用,端到端的基于自然语言处理的文本分类技术和学习模型也被应用于恶意代码检测中。X.Xiao等将二进制代码当作最底层的特征,二进制代码类似深度学习其他应用中的图片像素或者流量的前若干字节,然后通过CNN、RNN或LSTM,自编码器等挖掘代码结构或时序上的特征,通过多层隐藏层学习到更高级的特征。M.Yeo则首先提取出特征,输入神经网络进行训练和分类,因为僵尸软件等恶意代码发送的流量往往具有不同的特征,用以完成扫描,拒绝攻击等行为,通过对恶意软件相关的网络流量进行分析来识别恶意代码。类似地,针对恶意代码的通信行为,进行特征工程之后,通过筛选出的35个网络流特征,输入CNN、SVM,随机森林等深度学习和机器学习模型,证明了分析与恶意代码相关网络流,对恶意代码的识别起到了很好的效果。X.Jin等将代码样本编译成二进制文件之后,通过设计算法将其转换为等大的图片,输入自动编码器,通过重构误差来判断是否是恶意代码。端到端学习模型减少了人工特征工程带来的不稳定性,能够学习到一些有用的上下文信息。但是,端到端的模型的缺点之一是可解释性,难以解释模型的分类结果,不足于解释一次攻击的TTP,难以将攻击知识更新到知识库中并进行二次利用和联合分析。
除了原始二进制数据,还能针对系统调用和指令操作码序列进行恶意代码检测,检测中主要关注一些与敏感操作相关的API,因为在对文件,注册表,代码段或者内存的属性进行操作的时候等,都需要通过一些系统调用来进行。为了进一步提高检测效率,通过系统调用图来分类样本的方法出现了,基于随机游走,基于路径或者更小粒度的基于n-gram的方法都被进行了探索,基于n-gram的方法以固定长度的API调用子序列作为研究对象或者特征模式,能够以功能或者行为为单位,能够更好地解释恶意代码完成了什么操作。S.Gülmez等通过提取提取代码样本的二进制指令操作码,生成图用以表示各种操作码,如ADD、OR、JMP、OR、SUB之间的顺序关系和次数,作为机器学习模型的输入。
因此,目前大部分的研究都只关注主机行为或者网络行为的其中一方面,而结合两方面进行分析来识别恶意代码的研究较少。
发明内容
本发明的目的在于提供一种基于API调用和网络行为的僵尸软件检测方法,该方法基于LSTM表示学习和Weisfeiler Lenhan图嵌入的方法,同时对代码的API调用行为和网络通信行为进行分析,实现僵尸软件检测;改进现有方法单独考虑恶意代码行为或流量特征的问题,使恶意代码检测更加准确。
实现本发明目的的技术方案是:
一种基于API调用和网络行为的僵尸软件检测方法,包括主机行为模式提取层模块、网络行为模式提取层模块和聚合训练模块;其中:
1)主机行为模式提取层模块,包括文件解析识别子模块、静态FCG提取子模块、样本分发子模块和调用上下文提取子模块,具体如下:
1-1)样本文件的解析和识别:文件解析识别子模块利用各类文件的签名数据库识别可执行程序的类型,对待分析样本使用特定的文件格式进行解析,得到其文件元信息、导入表和符号表;并通过熵值分析、特征码匹配的方法判断样本文件是否加密或加壳,若样本文件存在加密或加壳,则经过解密或脱壳后将样本文件送入样本分发子模块中,若样本文件未加密或加壳,则将样本文件直接送入样本分发子模块中;
1-2)样本分发:样本分发子模块将步骤1)得到解析和识别结果,将不同平台的样本分发至不同环境的沙箱虚拟机中进行动态分析,并将样本文件分发至静态FCG提取子模块中进行静态分析;
1-3)样本的静态分析和动态分析,具体如下:
1-3-1)原始FCG调用图提取:对于所有类型的样本文件,静态FCG提取子模块从样本文件的入口地址开始,通过静态反汇编模块递归反汇编代码,结合步骤1-1)获得的导入表和符号表,生成调用图FCG,并基于n-gram生成FCG压缩图,对节点进行重标签;具体是:
首先将调用的API以连续的三个调用为单位,用图中的一个节点来描述,然后对节点进行重标签,即对每个节点赋予一个新的整数标签,则基于n-gram的图中每个节点代表一个功能或一个功能的一部分;
1-3-2)函数调用上下文的获取:根据步骤2)中样本分发子模块将可行性文件分发至对应的环境中执行,则调用上下文提取子模块进行动态获取函数调用的上下文,并对window中的API以及linux中的库函数进行hook或插桩,在样本运行时,由于注入了自定义的hook和插桩代码,则在待分析样本调用相关函数的时,记录调用现场的上下文环境;
1-4)FCG调用图压缩以及节点重标签:将步骤1-3-1)和步骤1-3-2)得到的样本调用链和函数调用的上下文信息进行融合,得到样本的主机层行为模式,则基于m步长n-gram对FCG进行压缩和节点重标签,然后利用Weisfeiler Lehman算法进行模式图的图嵌入,即图的嵌入向量,记为vi,将其由大到小排序并截取前k个分量,k为超参数,通过交叉验证网格搜索方法进行调优,得到v_sort_ki,再将其转化为分布的形式Di作为图向量;WeisfeilerLehman算法将图中节点邻居的信息聚合到对应的节点,迭代的次数为超参数;
2)网络行为模式提取层模块,包括网络行为监控和数据预处理子模块、LSTM表示学习子模块,具体如下:
网络行为收集、数据预处理,以及基于LSTM的网络行为模式表示学习:根据样本分发子模块分发到不同环境的样本,在不同环境中运行样本,在运行样本的同时,网络行为监控和数据处理子模块先通过TShark或WireShark记录恶意代码的网络流量,通过CICFlowMeter生成连接记录,并对得到的连接记录进行数据预处理,预处理步骤如下:
2-1)将包含缺失值。异常值、编码错误的连接记录删除,然后将连接记录的属性离散化,对于连接记录中本身离散的属性进行类别化,对于连续的属性基于等宽、等频、1R、卡方检验方法划分区间进行离散化;
2-2)对未处理的连接记录进行均值化聚合,得到聚合向量v,聚合向量v经过线性变换扩充维度为原来的两倍,该线性变换对应的矩阵是可训练的,变换后的向量为v’,分别将前半部分和后半部分作为LSTM的初始化h0和c0;
2-3)对连接记录序列进行截断,只利用前n分钟的连接记录作为LSTM神经网络的输入,将上述的初始化隐藏层和处理后的连接记录输入LSTM神经网络,LSTM网络部分的参数为:batch_size设置为128,epoch设置为3000,droupout设置为0.5.使用relu激活函数;
3)聚合训练模块:利用主机行为模式提取层模块和网络行为模式提取层模块的输出数据进行聚合训练,根据步骤2)中的网络行为模式提取层模块对样本网络行为的属性和时序信息进行嵌入,学习到样本网络行为的表示;根据主机行为模式提取层模块通过样本API调用序列的向量表示样本行为;将主机行为模式提取层模块和网络行为模式提取层模块的输出进行拼接,结合API调用行为和网络通信行为得到样本的模式,将其作为全连接网络的输入,最后经过relu激活函数、softmax层,进一步引入非线性,并将输出转换为概率的形式,用于量化样本属于正常样本和恶意样本的可能性;
4)将步骤3)得到的全连接分类网络,在模型应用时,将待测样本输入主机行为模式提取层模块和网络行为模式提取层模块中,并将两个模块的输出作为全连接分类网络的输入,最后得到分类结果。
本发明提供的一种基于API调用和网络行为的僵尸软件检测方法,该方法对于恶意代码的操作,结合网络通信行为和API调用,可以更加准确地捕捉恶意代码的异常,并对攻击者的攻击链提供更加完整的解释;基于n-gram的API行为表示,能够以代码的功能为单位,分析代码的行为,对代码的操作提供更好的解释,同时能够减小图的大小,提升模型效率;结合图和深度学习,能够充分利用图对结构信息的捕捉和深度学习强大的学习能力,提升模型的准确率。
附图说明
图1为本发明一种基于API调用和网络行为的僵尸软件检测方法的流程图;
图2为一阶Weisfeiler Lehman算法的示意图。
具体实施方式
下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
实施例:
如图1所示,一种基于API调用和网络行为的僵尸软件检测方法,包括如下步骤:
一种基于API调用和网络行为的僵尸软件检测方法,包括主机行为模式提取层模块、网络行为模式提取层模块和聚合训练模块;其中:
1)主机行为模式提取层模块,包括文件解析识别子模块、静态FCG提取子模块、样本分发子模块和调用上下文提取子模块,具体如下:
1-1)样本文件的解析和识别:文件解析识别子模块利用各类文件的签名数据库识别可执行程序的类型,对待分析样本使用特定的文件格式进行解析,得到其文件元信息、导入表和符号表;并通过熵值分析、特征码匹配的方法判断样本文件是否加密或加壳,若样本文件存在加密或加壳,则经过解密或脱壳后将样本文件送入样本分发子模块中,若样本文件未加密或加壳,则将样本文件直接送入样本分发子模块中;
1-2)样本分发:样本分发子模块将步骤1)得到解析和识别结果,将不同平台的样本分发至不同环境的沙箱虚拟机中进行动态分析,并将样本文件分发至静态FCG提取子模块中进行静态分析;
1-3)样本的静态分析和动态分析,具体如下:
1-3-1)原始FCG调用图提取:对于所有类型的样本文件,静态FCG提取子模块从样本文件的入口地址开始,通过静态反汇编模块递归反汇编代码,结合步骤1-1)获得的导入表和符号表,生成调用图FCG,并基于n-gram生成FCG压缩图,对节点进行重标签;具体是:
首先将调用的API以连续的三个调用为单位,用图中的一个节点来描述,可重叠,例如F1, F2, F3, F4, F5为五个连续的调用,则F1F2F3,F2F3F4,F3F4F5分别对应一个节点,然后对节点进行重标签,即对每个节点赋予一个新的整数标签,例如,F1F2F3->1,F2F3F4->2,F3F4F5->3,则基于n-gram的图中每个节点代表一个功能或一个功能的一部分,可以使用其他长度的序列,这里仅对方案进行描述,以长度为3的API序列为例。优点:与常用的以单个API调用作为节点进行图表示不同,以n-gram例如3-gram为单位进行节点表示,能够以功能为单位,更能解释代码进行了什么操作。例如,在windows中,RegOpenKey(),RegSetKeyValue(),RegCloseKey()这个序列对应了一次写注册表的操作。
1-3-2)函数调用上下文的获取:根据步骤2)中样本分发子模块将可行性文件分发至对应的环境中执行,则调用上下文提取子模块进行动态获取函数调用的上下文,并对window中的API以及linux中的库函数进行hook或插桩,在样本运行时,由于注入了自定义的hook和插桩代码,则在待分析样本调用相关函数的时,记录调用现场的上下文环境,例如参数、次数等;
1-4)FCG调用图压缩以及节点重标签:将步骤1-3-1)和步骤1-3-2)得到的样本调用链和函数调用的上下文信息进行融合,得到样本的主机层行为模式,则基于m步长n-gram对FCG进行压缩和节点重标签,然后利用Weisfeiler Lehman算法进行模式图的图嵌入,即图的嵌入向量,记为vi,将其由大到小排序并截取前k个分量,k为超参数,通过交叉验证网格搜索方法进行调优,得到v_sort_ki,再将其转化为分布的形式Di作为图向量;WeisfeilerLehman算法将图中节点邻居的信息聚合到对应的节点,迭代的次数为超参数,迭代的次数越多,考虑的结构信息的范围就越大,一阶的Weisfeiler Lehman算法如图1所示;
在本步骤中,首先对API调用链加入调用现场的信息,例如样本i第一次调用了一个函数F1,其参数为1和2,则其表示为F1_1_2,第二次调用函数F1时,其参数是1和3,则其表示变为F1_1_3,此时,该API在图中对应两个节点,分别对应两次调用。需要注意的是,有一些API的参数是操作完成的字节数,例如读写文件、拷贝内存、发送数据时使用的API,此时如果每次参数不同都产生一个新的结点的话,调用图会变得非常冗余,另外,也会导致过拟合的情况,此时需要对该参数类别化,例如字节数参数在为0、大于0、小于0时,分别对应一种情况。加入函数调用现场的信息之后,需要进一步将API调用链转化为n-gram的形式进行压缩,即将相邻的n个调用用一个节点来表示。本实例采用步长为1的3-gram方式,例如,F1、F2、 F3、F4、F5、F6为连续的6个调用,压缩后从6个节点变为4个节点,分别为F1F2F3、F2F3F4、F3F4F5、F4F5F6,实际应用中,可以采用其他n-gram形式,例如步长为2的4-gram形式,上面的调用序列压缩后就变成F1F2F3F4、F3F4F5F6这2个节点,本实例以前者为例。对图压缩完成之后,应用Weisfeiler Lehman算法,对图进行嵌入,得到主机层行为模式图的向量表示,用于后续的训练。
2)网络行为模式提取层模块,包括网络行为监控和数据预处理子模块、LSTM表示学习子模块,具体如下:
网络行为收集、数据预处理,以及基于LSTM的网络行为模式表示学习:根据样本分发子模块分发到不同环境的样本,在不同环境中运行样本,在运行样本的同时,网络行为监控和数据处理子模块先通过TShark或WireShark记录恶意代码的网络流量,通过CICFlowMeter生成连接记录,并对得到的连接记录进行数据预处理,预处理步骤如下:
2-1)将包含缺失值。异常值、编码错误的连接记录删除,然后将连接记录的属性离散化,对于连接记录中本身离散的属性进行类别化,对于连续的属性基于等宽、等频、1R、卡方检验方法划分区间进行离散化;
2-2)对未处理的连接记录进行均值化聚合,得到聚合向量v,聚合向量v经过线性变换扩充维度为原来的两倍,该线性变换对应的矩阵是可训练的,变换后的向量为v’,分别将前半部分和后半部分作为LSTM的初始化h0和c0;
2-3)对连接记录序列进行截断,只利用前n分钟的连接记录作为LSTM神经网络的输入,将上述的初始化隐藏层和处理后的连接记录输入LSTM神经网络,LSTM网络部分的参数为:batch_size设置为128,epoch设置为3000,droupout设置为0.5.使用relu激活函数;
3)聚合训练模块:利用主机行为模式提取层模块和网络行为模式提取层模块的输出数据进行聚合训练,根据步骤2)中的网络行为模式提取层模块对样本网络行为的属性和时序信息进行嵌入,学习到样本网络行为的表示;根据主机行为模式提取层模块通过样本API调用序列的向量表示样本行为;将主机行为模式提取层模块和网络行为模式提取层模块的输出进行拼接,结合API调用行为和网络通信行为得到样本的模式,将其作为全连接网络的输入,最后经过relu激活函数、softmax层,进一步引入非线性,并将输出转换为概率的形式,用于量化样本属于正常样本和恶意样本的可能性;
具体是:经过relu激活后,输入softmax层,得到样本的预测分类之后,基于样本的真实样本的标签计算模型的交叉熵loss(二分类),其中relu激活函数、softmax层运算、交叉熵损失函数的数学形式分别如公式(1)、公式(2)、公式(3)所示,并且通过反向传播更新网络参数,这些参数包括三个部分:全连接层的参数、LSTM结构的参数、以及用于聚合变量到初始化隐藏层向量的线性变换权重矩阵。
在训练过程中,需要注意一些特殊情况,如果一些样本在短于所设定的时间窗口n的很短的时间内完成运行,那么这种情况不需要进行步骤2)中的连接记录序列截断,直接分析其全生命周期的网络行为即可,对于没有网络活动的恶意代码,在对主机层行为模式的向量表示和网络层行为模式的向量表示进行拼接时,可以用零向量代替主机层行为模式的向量表示与调用图的嵌入向量进行拼接,进行后续的训练。
4)将步骤3)得到的全连接分类网络,在模型应用时,将待测样本输入主机行为模式提取层模块和网络行为模式提取层模块中,并将两个模块的输出作为全连接分类网络的输入,最后得到分类结果。具体是:
主机行为模式提取(包括解析文件格式和文件元信息、判断加密与解密、静态递归反汇编生成函数调用图、动态插桩获取调用现场信息、在调用图中加入调用现场信息、基于m步长n-gram压缩调用图并重标签节点、基于Weisfeiler Lehman算法的调用图嵌入);网络行为模式提取(包括连接记录获取,数据清洗、离散化、聚合向量生成,然后使用训练好的LSTM对连接记录的时序信息进行嵌入),得到主机行为模式和网络行为模式的表示向量并拼接之后,输入训练好的全连接网络,进行前向运算输出分类结果。
Claims (1)
1.一种基于API调用和网络行为的僵尸软件检测方法,其特征在于,包括主机行为模式提取层模块、网络行为模式提取层模块和聚合训练模块;其中:
1)主机行为模式提取层模块,包括文件解析识别子模块、静态FCG提取子模块、样本分发子模块和调用上下文提取子模块,具体如下:
1-1)样本文件的解析和识别:文件解析识别子模块利用各类文件的签名数据库识别可执行程序的类型,对待分析样本使用特定的文件格式进行解析,得到其文件元信息、导入表和符号表;并通过熵值分析、特征码匹配的方法判断样本文件是否加密或加壳,若样本文件存在加密或加壳,则经过解密或脱壳后将样本文件送入样本分发子模块中,若样本文件未加密或加壳,则将样本文件直接送入样本分发子模块中;
1-2)样本分发:样本分发子模块将步骤1)得到解析和识别结果,将不同平台的样本分发至不同环境的沙箱虚拟机中进行动态分析,并将样本文件分发至静态FCG提取子模块中进行静态分析;
1-3)样本的静态分析和动态分析,具体如下:
1-3-1)原始FCG调用图提取:对于所有类型的样本文件,静态FCG提取子模块从样本文件的入口地址开始,通过静态反汇编模块递归反汇编代码,结合步骤1-1)获得的导入表和符号表,生成调用图FCG,并基于n-gram生成FCG压缩图,对节点进行重标签;具体是:
首先将调用的API以连续的三个调用为单位,用图中的一个节点来描述,然后对节点进行重标签,即对每个节点赋予一个新的整数标签,则基于n-gram的图中每个节点代表一个功能或一个功能的一部分;
1-3-2)函数调用上下文的获取:根据步骤2)中样本分发子模块将可行性文件分发至对应的环境中执行,则调用上下文提取子模块进行动态获取函数调用的上下文,并对window中的API以及linux中的库函数进行hook或插桩,在样本运行时,由于注入了自定义的hook和插桩代码,则在待分析样本调用相关函数的时,记录调用现场的上下文环境;
1-4)FCG调用图压缩以及节点重标签:将步骤1-3-1)和步骤1-3-2)得到的样本调用链和函数调用的上下文信息进行融合,得到样本的主机层行为模式,则基于m步长n-gram对FCG进行压缩和节点重标签,然后利用Weisfeiler Lehman算法进行模式图的图嵌入,即图的嵌入向量,记为vi,将其由大到小排序并截取前k个分量,k为超参数,通过交叉验证网格搜索方法进行调优,得到v_sort_ki,再将其转化为分布的形式Di作为图向量;WeisfeilerLehman算法将图中节点邻居的信息聚合到对应的节点,迭代的次数为超参数;
2)网络行为模式提取层模块,包括网络行为监控和数据预处理子模块、LSTM表示学习子模块,具体如下:
网络行为收集、数据预处理,以及基于LSTM的网络行为模式表示学习:根据样本分发子模块分发到不同环境的样本,在不同环境中运行样本,在运行样本的同时,网络行为监控和数据处理子模块先通过TShark或WireShark记录恶意代码的网络流量,通过CICFlowMeter生成连接记录,并对得到的连接记录进行数据预处理,预处理步骤如下:
2-1)将包含缺失值异常值、编码错误的连接记录删除,然后将连接记录的属性离散化,对于连接记录中本身离散的属性进行类别化,对于连续的属性基于等宽、等频、1R、卡方检验方法划分区间进行离散化;
2-2)对未处理的连接记录进行均值化聚合,得到聚合向量v,聚合向量v经过线性变换扩充维度为原来的两倍,该线性变换对应的矩阵是可训练的,变换后的向量为v’,分别将前半部分和后半部分作为LSTM的初始化h0和c0;
2-3)对连接记录序列进行截断,只利用前n分钟的连接记录作为LSTM神经网络的输入,将上述的初始化隐藏层和处理后的连接记录输入LSTM神经网络,LSTM网络部分的参数为:batch_size设置为128,epoch设置为3000,droupout设置为0.5.使用relu激活函数;
3)聚合训练模块:利用主机行为模式提取层模块和网络行为模式提取层模块的输出数据进行聚合训练,根据步骤2)中的网络行为模式提取层模块对样本网络行为的属性和时序信息进行嵌入,学习到样本网络行为的表示;根据主机行为模式提取层模块通过样本API调用序列的向量表示样本行为;将主机行为模式提取层模块和网络行为模式提取层模块的输出进行拼接,结合API调用行为和网络通信行为得到样本的模式,将其作为全连接网络的输入,最后经过relu激活函数、softmax层,进一步引入非线性,并将输出转换为概率的形式,用于量化样本属于正常样本和恶意样本的可能性;
4)将步骤3)得到的全连接分类网络,在模型应用时,将待测样本输入主机行为模式提取层模块和网络行为模式提取层模块中,并将两个模块的输出作为全连接分类网络的输入,最后得到分类结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528096.3A CN114707151B (zh) | 2022-05-16 | 2022-05-16 | 一种基于api调用和网络行为的僵尸软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528096.3A CN114707151B (zh) | 2022-05-16 | 2022-05-16 | 一种基于api调用和网络行为的僵尸软件检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114707151A true CN114707151A (zh) | 2022-07-05 |
CN114707151B CN114707151B (zh) | 2024-03-19 |
Family
ID=82175897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210528096.3A Active CN114707151B (zh) | 2022-05-16 | 2022-05-16 | 一种基于api调用和网络行为的僵尸软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114707151B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272303A (zh) * | 2023-09-27 | 2023-12-22 | 四川大学 | 一种基于遗传对抗的恶意代码样本变体生成方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN110008703A (zh) * | 2019-04-08 | 2019-07-12 | 四川大学 | 一种容器内恶意软件静态检测系统及方法 |
SG10202008469RA (en) * | 2020-09-01 | 2020-10-29 | Ensign Infosecurity Pte Ltd | A deep embedded self-taught learning system and method for detecting suspicious network behaviours |
CN112464233A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种云平台上基于rnn的恶意软件检测方法 |
-
2022
- 2022-05-16 CN CN202210528096.3A patent/CN114707151B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN110008703A (zh) * | 2019-04-08 | 2019-07-12 | 四川大学 | 一种容器内恶意软件静态检测系统及方法 |
SG10202008469RA (en) * | 2020-09-01 | 2020-10-29 | Ensign Infosecurity Pte Ltd | A deep embedded self-taught learning system and method for detecting suspicious network behaviours |
CN112464233A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种云平台上基于rnn的恶意软件检测方法 |
Non-Patent Citations (2)
Title |
---|
王兴凤;黄琨茗;张文杰;: "基于API序列和卷积神经网络的恶意代码检测", 信息安全研究, no. 03, 5 March 2020 (2020-03-05) * |
詹静;范雪;刘一帆;张茜;: "SEMBeF:一种基于分片循环神经网络的敏感高效的恶意代码行为检测框架", 信息安全学报, no. 06, 15 November 2019 (2019-11-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272303A (zh) * | 2023-09-27 | 2023-12-22 | 四川大学 | 一种基于遗传对抗的恶意代码样本变体生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114707151B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng et al. | Deepwukong: Statically detecting software vulnerabilities using deep graph neural network | |
CN108647520B (zh) | 一种基于脆弱性学习的智能模糊测试方法与系统 | |
CN111459799B (zh) | 一种基于Github的软件缺陷检测模型建立、检测方法及系统 | |
Gao et al. | Android malware detection via graphlet sampling | |
CN108563951B (zh) | 病毒检测方法及装置 | |
Zhao et al. | Maldeep: A deep learning classification framework against malware variants based on texture visualization | |
Narayanan et al. | Contextual weisfeiler-lehman graph kernel for malware detection | |
CN113297580B (zh) | 基于代码语义分析的电力信息系统安全防护方法及装置 | |
CN110162972B (zh) | 一种基于语句联合编码深度神经网络的uaf漏洞检测方法 | |
CN115357904B (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
CN113821804A (zh) | 一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统 | |
CN113722719A (zh) | 针对安全拦截大数据分析的信息生成方法及人工智能系统 | |
CN114707151B (zh) | 一种基于api调用和网络行为的僵尸软件检测方法 | |
Ban et al. | Fam: featuring android malware for deep learning-based familial analysis | |
Wu et al. | Code vulnerability detection based on deep sequence and graph models: A survey | |
US11080236B1 (en) | High throughput embedding generation system for executable code and applications | |
Abaimov et al. | A survey on the application of deep learning for code injection detection | |
CN113935041A (zh) | 面向实时操作系统设备的漏洞检测系统及方法 | |
CN113468527A (zh) | 一种基于特征表达增强的恶意代码家族分类方法 | |
CN113468524A (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
Cybersecurity | Machine learning for malware detection | |
CN115567305A (zh) | 基于深度学习的顺序网络攻击预测分析方法 | |
CN112464237B (zh) | 一种静态代码安全诊断方法及装置 | |
Yaseen et al. | A Deep Learning-based Approach for Malware Classification using Machine Code to Image Conversion |
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 |