CN110704842A - 一种恶意代码家族分类检测方法 - Google Patents
一种恶意代码家族分类检测方法 Download PDFInfo
- Publication number
- CN110704842A CN110704842A CN201910924383.4A CN201910924383A CN110704842A CN 110704842 A CN110704842 A CN 110704842A CN 201910924383 A CN201910924383 A CN 201910924383A CN 110704842 A CN110704842 A CN 110704842A
- Authority
- CN
- China
- Prior art keywords
- malicious code
- image
- layer
- file
- malicious
- 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
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
-
- 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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种恶意代码家族分类检测方法,包括:从多个网站通过多线程爬虫算法抓取恶意代码样本,通过B2M算法,由二进制码汇编文件生成恶意代码图像,对图像进行标准化、归一化预处理后,再利用Gist算法,调用Matlab接口提取全局特征,采用优化卷积神经网络模型进行训练,得到恶意代码家族分类。在恶意代码家族分类基础上,再通过爬虫算法抓取新的恶意代码样本,自动检测归属类别。本发明所述技术方案能够自动从多个网站抓取恶意代码,自动识别恶意代码家族种类、自动更新恶意代码家族分类特征库,抓取恶意代码效率高,恶意代码家族分类的准确性高,识别恶意代码家族归类的准确性高。
Description
技术领域
本发明涉及网络与信息安全技术领域,尤其涉及一种恶意代码家族分类检测方法。
背景技术
恶意代码(Malicious Code,也称作Malware/恶意软件),指为达到恶意目的专门设计的程序、代码或指令,指一切意在破坏计算机、移动终端或网络系统可靠性、可用性、安全性或者消耗系统资源的恶意程序。恶意代码主要的存在形式包括:恶意数据文档、恶意网页、内存代码、可执行程序和动态链接库等。机器学习作为人工智能的一个重要分支已渗透到很多领域,深度学习是一种实现机器学习的重要技术,深度学习是利用深度神经网络来解决特征表达的一种学习过程。卷积神经网络CNN(Convolutional Neural Network)是深度学习中经典的模型之一,可应用于图像处理和图像识别等领域,在图像分类上展现出了极好的分类特性及良好的应用前景。
在过去十几年时间里,针对恶意代码家族的自动标注方法已经取得了一定成果,研究人员开发出了多种恶意代码家族自动标注系统。L.Nataraj等人(Malware image:visualization and automatic classification[A].Proceedings of VizSes[C],1011)首次将二进制文件以可见灰度图的形式表示,利用图像的纹理特征对恶意代码进行聚类。何源浩等人(一种基于深度学习的恶意代码样本分类方法及系统,1016,10,专利)对恶意代码样本进行反汇编得到汇编代码;然后基于十六进制码与图像灰度值的对应关系,将汇编代码转化为图像样本数据;将所述图像样本数据输入预先训练得到的卷积神经网络,得到恶意代码样本分类。何帅等人(基于恶意代码图像指纹的恶意代码家族标注方法,通信技术,1017,3)该方法将恶意代码反汇编文件绘制成图像,提取图像的全局指纹GIST特征描述符和局部指纹SIFT特征点,通过BoW模型对局部特征进行优化,最终获取图像指纹,并采用随机森林的方法实现恶意代码家族标注。通过对现有文献进行研究,发现每个文献存在如下一种或几种缺陷:(1)直接从恶意代码样本库获取恶意代码样本,对获取恶意代码样本进行分类,后续不能自动丰富更新恶意代码库,不能实时更新恶意代码家族分类特征库,识别恶意代码家族归类的准确性不高;(2)没有利用多线程爬虫算法通过多个提供恶意代码的网站抓取恶意代码样本,导致获取恶意代码样本的范围小、效率低;(3)没有利用卷积神经网络进行深度学习,或者利用了卷积神经网络进行深度学习但是学习的层数及大小不太合适恶意代码分类,导致恶意代码分类方法效率较低、准确率不高。
发明内容
本发明的目的是提供一种能克服上述缺陷、具有对恶意代码进行分类测试功能的一种恶意代码家族分类检测方法。其技术方案为采用以下步骤:
1)利用多线程爬虫算法,从网站抓取恶意代码样本,放入恶意代码样本库,多线程爬虫算法采用并发线程池编程模板threading中的Thread类,再重写run方法,线程自动运行run方法中的代码实现封装,采用threading.Condition实现线程高效上锁和解锁操作;
2)对步骤1)抓取的每一个恶意代码样本进行反汇编生成二进制码文件,放入扩展名为bytes的文件中;
3)通过B2M算法,将每一个二进制码文件生成恶意代码图像,并进行标准化、归一化预处理,放入恶意代码图像库;
4)批量化读取恶意代码图像库中的所有恶意代码图像,再利用Gist算法,调用Matlab软件接口提取恶意代码Gist图像全局特征,放入Gist全局特征库;
5)从Gist全局特征库获取全局特征,使用优化卷积神经网络模型进行深度学习训练,优化卷积神经网络采用多通道卷积技术和批量归一化算法,卷积神经网络优化是在单个卷积层中加入若干个不同尺寸的过滤器,生成更具多样性的feature map特征;批量归一化算法采用BN算法,训练后得到恶意代码家族种族分类,放入恶意代码家族分类特征库;若要抓取新的恶意代码样本进行检测转步骤6),若要自动更新恶意代码家族分类特征库转步骤1),否则结束;
6)抓取新的恶意代码样本进行检测,分为如下几个步骤:(1)通过爬虫算法自动从网站抓取新恶意代码样本;(2)对新恶意代码样本进行反汇编生成二进制码文件;(3)通过B2M算法,由二进制码汇编文件生成恶意代码图像,对恶意代码图像进行标准化、归一化预处理;(4)利用Gist算法,调用Matlab软件接口提取新的恶意代码Gist图像全局特征,并放入Gist全局特征库;(5)将新的恶意代码Gist图像全局特征与恶意代码家族分类特征库比对,若与库中某类特征一致,归属类别确定后结束,否则从Gist全局特征库获取全局特征,采用优化卷积神经网络模型进行训练,得到新的恶意代码家族分类,并自动更新恶意代码家族分类特征库。
所述的一种恶意代码家族分类检测方法,步骤1)中,从多个提供恶意代码网站发布站点抓取恶意代码样本,属于网络频繁型读取数据,针对网络频繁型读取数据操作,采用多线程爬虫算法提高系统的效率。从多个网站获取恶意代码样本,就使恶意代码样本量丰富、样本数据大,更适合采用卷积神经网络进行训练。爬虫算法采用python语言编程,利用并发的线程池模板实现多线程,线程数量与服务器核数及每个物理核上的逻辑processor一致,这样为了提高吞吐量,线程数应该设置在服务器核数与服务器核数乘以逻辑processor数之间。多线程的实现通过继承多线程编程模块threading中的Thread类,再重写run方法,线程就会自动运行run方法中的代码,能够让线程代码更好的封装;线程上锁和解锁操作使用threading.Condition,能避免做一些无用的上锁和解锁操作,在没有数据的时候处于阻塞等待状态,而一旦有合适的数据,就使用notify的相关函数通知其他处于等待状态的线程工作,从而提高程序的性能;由此完成从网站抓取恶意代码样本文件,并放入恶意代码样本库。
所述的一种恶意代码家族分类检测方法,步骤2)中,运行IDA反汇编软件打开恶意代码样本库中每一个可执行文件,反汇编生成汇编码文件以及二进制机器码文件,为每一个可执行文件创建一个名为主文件与原文件名相同、扩展名为bytes的文件。
所述的一种恶意代码家族分类检测方法,步骤3)中,用B2M算法读取bytes二进制机器码文件,以8bit作为一个单位,取值在0-255,对应灰度图的一个像素点,图像宽度固定,高度为整个文件大小与宽度的比值,让每一个文件都生成一个固定宽度的恶意代码图像文件。恶意代码图像文件标准化image_standardization计算利用公式:其中,μ是图像像素点的均值,x表示图像矩阵,其中adjust_stddev的计算利用公式:其中,α表示标准方差,N表示图像的像素数量。接着进行图像归一化处理,归一化处理norm计算利用公式:其中,xi表示图像在第i个点处的像素点值,max(x)、min(x)分别表示图像像素的最大值和最小值,公式的前半部分使图像的像素点范围由[0,255]转化为[0,1]之间的实数,而后再乘以255.0,恢复为正常像素点范围[0,255]。将预处理后的图像文件进行存放,形成恶意代码图像库。
所述的一种恶意代码家族分类检测方法,步骤4)中,利用MATLAB的Gist算法并结合python语言,将恶意代码图像库进行批量化处理操作;批量化处理方法为:读取步骤3)中的恶意代码图像库中的所有恶意代码图像,将图像路径传递给命令中img_path参数,而后利用Gist算法完成所有图像文件的全局特征提取,并放入Gi st全局特征库。采用python语言进行批量化处理操作,调用Matlab的接口,直接在命令行中运行matlab-nojvm-nosplash-r“get_gist(‘img_path’);”,其中img_path为要输入图像的路径。图像全局特征包括:纹理特征、形状特征和空间关系特征。采用全局特征信息对其场景进行识别和分类,实现快速场景识别和分类。采用GIST算法提取图像的全局特征,具体方法为:假设待提取特征的恶意代码图像为f(x,y),首先,将恶意代码图像划分为n×n的网格,每个网格表示一个子区域,子区域的个数是n×n,用滤波器g(x,y)对子区域进行卷积滤波;然后在每个网格内计算每个通道的平均能量得到特征,将每个网格的特征级联,就得到恶意代码图像的Gist全局特征Gi(x,y),Gi(x,y)的计算利用公式:其中,cat表示级联运算,*为卷积运算,i的取值为1~n×n,m、l分别表示滤波尺度和方向数,c等于滤波尺度和方向数的乘积。
所述的一种恶意代码家族分类检测方法,步骤5)中,优化卷积神经网络模型输入形状为32×16×1,层次训练步骤如下:第一层卷积核为5×5,将输入的1通道转为32通道;第二层使用批量归一化BN算法,反向计算时参照的样本分布就会与正向计算时的数据分布一致,并对权重进行调整,最大限度的保证每次的正向传播输出在同一分布上,这样反向计算时参照的样本分布就会与正向计算时的数据分布一致,保证了分布的统一,对权重的调整更加有意义;第三层为Relu激励层;第四层是卷积核形状为2×2的最大池化层;第五层为两个卷积核并行的卷积层,两个卷积核形状分别为3×3和5×5,使用多通道卷积技术,在单个卷积层中加入若干个不同尺寸的过滤器,生成多样性feature map特征,通过优化卷积核技术,如将一个3×3的过滤器裁剪成3×1和1×3两个等效过滤器,分别对原有输入进行卷积操作,提高运算速度;第六层分别对第五层两个卷积操作进行批量归一化处理;第七层为两个卷积的Relu激励层;第八层使用concat函数将两个卷积操作后的输出合并在一起;第九层是卷积核形状为2×2的最大池化层;第十层输出1024节点的全连接层;第十一层为Relu激励层;第十二层为dropout层,随机选择一定比例的数据丢弃,降低对小概率异常数据的学习机会,丢弃的比例范围为1/1000~1/10为宜;第十三层为k个节点的全连接层,最后归为k类;第十四层为softmax层。将采用优化卷积神经网络模型训练后得到的恶意代码家族种族分类结果,放入恶意代码家族分类特征库。
所述的一种恶意代码家族分类检测方法,步骤6)中,抓取新的恶意代码样本进行检测,分为如下步骤:(1)通过爬虫算法自动从网站抓取新恶意代码样本,单个文件的抓取不需要多线程;(2)对新恶意代码样本进行反汇编生成二进制码文件;(3)通过B2M算法,由二进制码汇编文件生成恶意代码图像,对恶意代码图像进行标准化、归一化预处理;(4)利用Gist算法,调用Matlab软件接口提取新的恶意代码Gist图像全局特征,并放入Gist全局特征库;(5)将新的恶意代码Gist图像全局特征与恶意代码家族分类特征库比对,若与库中某类特征一致,归属类别确定后结束,否则从Gist全局特征库获取全局特征,采用优化卷积神经网络模型进行训练,得到新的恶意代码家族分类,并自动更新恶意代码家族分类特征库。
本发明与现有技术相比,其优点在于:
1)从多个网站获取恶意代码样本,就使恶意代码样本量丰富、样本数据大,更适合采用卷积神经网络进行训练。针对网络频繁型读取数据,爬虫算法采用并发的线程池模板实现多线程,提高了抓取恶意代码的效率;利用threading多线程编程模块中的Thread类,再重写run方法,线程就会自动运行run方法中的代码,能够让线程代码更好的封装;使用threading.Condition能避免做一些无用的上锁和解锁操作,由此提高程序的性能。
2)优化卷积神经网络进行深度学习使之更加合适恶意代码分类,提高恶意代码分类方法效率和准确率;使用多通道卷积技术,在单个卷积层中加入若干个不同尺寸的过滤器,使生成的feature map特征更加多样性;使用批量归一化算法(BN算法),最大限度的保证每次正向传播输出在同一分布上,这样反向计算时参照的样本分布就会与正向计算时的数据分布一致,对权重的调整更加有意义。
3)实时利用多线程爬虫算法抓取新的恶意代码,自动识别恶意代码家族种类或者重新利用优化卷积神经网络模型进行训练产生新的恶意代码家族种类,同时实时更新恶意代码家族分类特征库,恶意代码家族分类特征库的不断扩大,又进一步提高了识别恶意代码家族归类的准确性。
附图说明
图1是本发明一种恶意代码家族分类检测方法流程图;
图2是本发明所用优化卷积神经网络层次结构图;
图3是本发明训练过程准确率变化图;
图4是本发明训练过程损失函数变化图;
图1中:101为利用爬虫算法抓取恶意代码样本文件,102为利用反汇编生成bytes文件,103为生成恶意代码图像库,104为构建Gist全局特征库,105为通过卷积神经网络训练后构建恶意代码家族分类特征库,106为判断是否抓取新的恶意代码样本进行类型检测,107判断是否进行恶意代码家族分类特征库的更新,108为待检测代码文件,109为反汇编生成bytes文件,110为生成恶意代码图像并进行预处理,111为Gist全局特征提取,112为判断是否属于已知某类恶意代码,113属于某类恶意代码,114结束。
具体实施方法
本发明给出了一种恶意代码家族分类检测方法实施例,为使本技术领域人员更好地理解本发明实施例中的系统架构和技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图并通过3个实施例对本发明中的技术方案作进一步详细说明:
实施例1:恶意代码家族分类
步骤1),爬虫算法抓取恶意代码样本文件101,利用多线程爬虫算法从如下网站抓取恶意代码样本文件:https://github.com/ytisf/theZoo/、https://www.cert.org.cn/、https://www.hybrid-analysis.com/、http://83.133.184.251/virensimulation.org/、https://www.kaggle.com/c/malware-classification/、http://www.virusign.com/、https://forums.malwarebytes.com/forum/44-research-center/、https://malware.lu/、http://malc0de.com/database/、http://vxvault.net/ViriList.php、https://dasmalwerk.eu/,并放入恶意代码样本库。具体实施为:
爬虫算法采用python语言编程,利用并发的线程池模板实现多线程;多线程的线程数量与服务器核数及每个物理核上的逻辑processor一致,本例中采用的服务器核数是40,且每个物理核上有2个逻辑processor,线程数为40;多线程的实现通过继承多线程编程模块threading下的Thread类,再重写run方法,线程自动运行run方法中的代码;采用threading.Condition实现上锁和解锁操作。
步骤2)反汇编生成bytes文件102,具体实施为:运行IDA反汇编软件并打开步骤1)抓取的每一个恶意代码样本可执行文件,反汇编生成汇编码文件以及二进制机器码文件,创建一个名为主文件与原文件名相同、扩展名为bytes的文件。
步骤3)生成恶意代码图像库103,具体实施为:针对每一个bytes文件都生成一个固定宽度的恶意代码图像文件,利用公式对恶意代码图像文件标准化,其中μ是图像像素点的均值,x表示图像矩阵,其中 式中α表示标准方差,N表示图像的像素数量;然后利用公式 对标准化后的恶意代码图像文件进行图像归一化处理,其中xi表示图像在第i个点处的像素点值,max(x)、min(x)分别表示图像像素的最大值和最小值,公式的前半部分将图像的像素点范围由[0,255]转化为[0,1]之间的实数,将预处理后的恶意代码图像文件进行存放。
步骤4)构建Gi st全局特征库104,具体实施为:批量读取步骤3)恶意代码图像库103中的所有恶意代码图像,将图像路径传递给命令中img_path参数,而后利用Gist算法完成所有图像文件包括纹理特征、形状特征和空间关系特征的全局特征提取,放入Gi st全局特征库,特征提取具体实施为:先将恶意代码图像划分为n×n的网格,每个网格表示一个子区域,子区域的范围个数是n×n,用滤波器g(x,y)对子区域进行卷积滤波;然后利用公式将每个网格的特征级联,得到恶意代码图像的Gist全局特征Gi(x,y),其中cat表示级联运算,*为卷积运算,i的取值为1~n×n,m、l分别表示滤波尺度和方向数,c等于滤波尺度和方向数的乘积。
步骤5)卷积神经网络训练后构建恶意代码家族分类特征库105,具体实施为:恶意代码家族分类采用优化卷积神经网络,层次结构如图2,优化卷积神经网络模型输入形状为32×16×1,层次训练步骤如下:第一层卷积核为5×5,将输入的1通道转为32通道;第二层使用批量归一化BN算法,反向计算时参照的样本分布就会与正向计算时的数据分布一致,并对权重进行调整,最大限度的保证每次的正向传播输出在同一分布上;第三层为Relu激励层;第四层是卷积核形状为2×2的最大池化层;第五层为两个卷积核并行的卷积层,两个卷积核形状分别为3×3和5×5,然后进一步将3×3的过滤器裁剪成3×1和1×3两个等效过滤器,将5×5的过滤器裁剪成5×1和1×5两个等效过滤器;第六层分别对第五层两个卷积操作进行批量归一化处理;第七层为两个卷积的Relu激励层;第八层使用concat函数将两个卷积操作后的输出合并在一起;第九层是卷积核形状为2×2的最大池化层;第十层输出1024节点的全连接层;第十一层为Relu激励层;第十二层为dropout层,随机的选择一定比例数据丢弃,丢弃的比例范围为1/1000~1/10为宜,本例丢弃的比例为1/100;第十三层为k个节点的全连接层,最后归为k类;第十四层为softmax层。将采用优化卷积神经网络模型训练后得到的恶意代码家族种族分类结果,放入恶意代码家族分类特征库,实现恶意代码家族种族分类。
使用Google公司的开源TensorFlow框架,整个训练过程可视化显示,训练过程准确率(accuracy)变化如图3,损失函数(loss)变化如图4。
实施例2:代码文件A的检测
在已经创建了恶意代码家族分类特征库的基础上,执行步骤6),具体过程为:获取待检测代码文件A并进行检测的步骤为:
步骤(1)利用爬虫算法抓取恶意代码样本文件101,利用爬虫算法从如下网站抓取恶意代码文件A:https://github.com/ytisf/theZoo/、https://www.cert.org.cn/、https://www.hybrid-analysis.com/、http://83.133.184.251/virensimulation.org/、https://forums.malwarebytes.com/forum/44-research-center/、https://malware.lu/、https://www.kaggle.com/c/malware-classification/、http://malc0de.com/database/、http://vxvault.net/ViriList.php、http://www.virusign.com/、https://dasmalwerk.eu/,得到待检测代码文件A108。
步骤(2)反汇编生成bytes文件109,具体实施为:运行IDA反汇编软件并打开步骤(1)抓取的待检测代码文件A可执行文件,反汇编生成汇编码文件以及二进制机器码文件,创建一个名为主文件与原文件名相同、扩展名为bytes的文件。
步骤(3)生成恶意代码图像110,具体实施为:针对步骤(2)中的bytes文件生成一个固定宽度的恶意代码图像文件,利用公式对恶意代码图像文件标准化,其中μ是图像像素点的均值,x表示图像矩阵,其中 式中α表示标准方差,N表示图像的像素数量;然后利用公式 对标准化后的恶意代码图像文件进行图像归一化处理,其中xi表示图像在第i个点处的像素点值,max(x)、min(x)分别表示图像像素的最大值和最小值,公式的前半部分将图像的像素点范围由[0,255]转化为[0,1]之间的实数,将预处理后的恶意代码图像文件进行存放。
步骤(4)Gist全局特征提取111,具体实施为:读取步骤(3)中存放的恶意代码图像文件,而后利用Gist算法完成图像文件包括纹理特征、形状特征和空间关系特征的全局特征提取,放入Gist全局特征库,特征提取具体实施为:先将恶意代码图像划分为n×n的网格,每个网格表示一个子区域,子区域的范围个数是n×n,用滤波器g(x,y)对子区域进行卷积滤波;然后利用公式 将每个网格的特征级联,得到恶意代码图像的Gist全局特征Gi(x,y),其中cat表示级联运算,*为卷积运算,i的取值为1~n×n,m、l分别表示滤波尺度和方向数,c等于滤波尺度和方向数的乘积。
步骤(5)判断是否属于已知某类恶意代码112,将步骤(4)中提取的Gist全局特征与恶意代码家族分类特征库比对,与库中某类特征一致,则归属类别确定后113,结束114。
实施例3:恶意代码家族分类特征库更新
在已经创建了恶意代码家族分类特征库的基础上,执行步骤1)~步骤5)。
Claims (6)
1.一种恶意代码家族分类检测方法,其特征在于采用以下步骤:
1)利用多线程爬虫算法,从网站抓取恶意代码样本,放入恶意代码样本库,多线程爬虫算法采用并发线程池编程模板threading中的Thread类,再重写run方法,线程自动运行run方法中的代码实现封装,采用threading.Condition实现线程高效上锁和解锁操作;
2)对步骤1)抓取的每一个恶意代码样本进行反汇编生成二进制码文件,放入扩展名为bytes的文件中;
3)通过B2M算法,将每一个二进制码文件生成恶意代码图像,并进行标准化、归一化预处理,放入恶意代码图像库;
4)批量化读取恶意代码图像库中的所有恶意代码图像,再利用Gist算法,调用Matlab软件接口提取恶意代码Gist图像全局特征,放入Gist全局特征库;
5)从Gist全局特征库获取全局特征,使用优化卷积神经网络模型进行深度学习训练,优化卷积神经网络采用多通道卷积技术和批量归一化算法,卷积神经网络优化是在单个卷积层中加入若干个不同尺寸的过滤器,生成更具多样性的feature map特征;批量归一化算法采用BN算法,训练后得到恶意代码家族种族分类,放入恶意代码家族分类特征库;若要抓取新的恶意代码样本进行检测转步骤6),若要自动更新恶意代码家族分类特征库转步骤1),否则结束;
6)抓取新的恶意代码样本进行检测,分为如下几个步骤:(1)通过爬虫算法自动从网站抓取新恶意代码样本;(2)对新恶意代码样本进行反汇编生成二进制码文件;(3)通过B2M算法,由二进制码汇编文件生成恶意代码图像,对恶意代码图像进行标准化、归一化预处理;(4)利用Gist算法,调用Matlab软件接口提取新的恶意代码Gist图像全局特征,并放入Gist全局特征库;(5)将新的恶意代码Gist图像全局特征与恶意代码家族分类特征库比对,若与库中某类特征一致,归属类别确定后结束,否则从Gist全局特征库获取全局特征,采用优化卷积神经网络模型进行训练,得到新的恶意代码家族分类,并自动更新恶意代码家族分类特征库。
2.根据权利要求1所述的一种恶意代码家族分类检测方法,其特征在于:步骤1)中,从提供恶意代码网站发布站点抓取恶意代码样本,爬虫算法采用python语言编程,利用并发的线程池模板实现多线程,线程数量与服务器核数及每个物理核上的逻辑processor一致;多线程的实现通过继承threading中的Thread类,再重写run方法,线程就会自动运行run方法中的代码,让线程代码封装,线程的上锁和解锁操作使用threading.Condition,使用notify的相关函数通知其他处于等待状态的线程工作,由此完成从网站抓取恶意代码样本文件,并放入恶意代码样本库。
3.根据权利要求1所述的一种恶意代码家族分类检测方法,其特征在于:步骤2)中,运行IDA反汇编软件打开恶意代码样本可执行文件,反汇编生成汇编码文件以及二进制机器码文件,创建一个名为主文件与原文件名相同,扩展名为bytes的文件。
4.根据权利要求1所述的一种恶意代码家族分类检测方法,其特征在于:步骤3)中,用B2M算法读取二进制机器码文件,以8bit作为一个单位,取值在0-255,对应灰度图的一个像素点,图像宽度固定,高度为整个文件大小与宽度的比值,让每一个文件都生成一个固定宽度的恶意代码图像文件;
恶意代码图像文件标准化image_standardization计算如式(1):
其中μ是图像像素点的均值,x表示图像矩阵,其中adjust_stddev的值如式(2):
其中α表示标准方差,N表示图像的像素数量;
接着进行图像归一化处理,归一化处理norm计算如式(3):
其中xi表示图像在第i个点处的像素点值,max(x)、min(x)分别表示图像像素的最大值和最小值;
将预处理后的图像文件进行存放,形成恶意代码图像库。
5.根据权利要求1所述的一种恶意代码家族分类检测方法,其特征在于:步骤4)中,利用MATLAB的Gist算法并结合python语言,将恶意代码图像库进行批量化处理操作,具体为:批量化读取步骤3)中的恶意代码图像库中的所有恶意代码图像,将图像路径传递给命令中img_path参数,而后利用Gist算法完成所有图像文件的全局特征提取,并放入Gist全局特征库;
利用GIST算法提取图像全局特征的技术方案为:
假设待提取特征的恶意代码图像为f(x,y),首先将恶意代码图像划分为n×n的网格,每个网格表示一个子区域,子区域的个数是n×n,用滤波器g(x,y)对子区域进行卷积滤波;
然后在每个网格内计算每个通道的平均能量得到特征,将每个网格的特征级联,就得到恶意代码图像的Gist全局特征Gi(x,y),即为式(4):
其中cat表示级联运算,*为卷积运算,i的取值为1~n×n,m和l分别表示滤波尺度和方向数,c等于滤波尺度和方向数的乘积。
6.根据权利要求1所述的一种恶意代码家族分类检测方法,其特征在于:步骤5)中,优化卷积神经网络模型输入形状为32×16×1,层次训练步骤如下:
第一层卷积核为5×5,将输入的1通道转为32通道,
第二层使用批量归一化BN算法,对权重进行归一化调整,
第三层为Relu激励层,
第四层是卷积核形状为2×2的最大池化层,
第五层为两个卷积核并行的卷积层,两个卷积核形状分别为3×3和5×5,使用多通道卷积技术,在单个卷积层中加入若干个不同尺寸的过滤器,生成多样性feature map特征,
第六层分别对第五层两个卷积操作进行批量归一化处理,
第七层为两个卷积的Relu激励层,
第八层使用concat函数将两个卷积操作后的输出合并在一起,
第九层是卷积核形状为2×2的最大池化层,
第十层输出1024节点的全连接层,
第十一层为Relu激励层,
第十二层为dropout层,随机选择一定比例的数据丢弃,降低对小概率异常数据的学习机会,
第十三层为k个节点的全连接层,最后归为k类,
第十四层为softmax层,
将采用优化卷积神经网络模型训练后得到的恶意代码家族种族分类结果,放入恶意代码家族分类特征库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910924383.4A CN110704842A (zh) | 2019-09-27 | 2019-09-27 | 一种恶意代码家族分类检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910924383.4A CN110704842A (zh) | 2019-09-27 | 2019-09-27 | 一种恶意代码家族分类检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704842A true CN110704842A (zh) | 2020-01-17 |
Family
ID=69196857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910924383.4A Pending CN110704842A (zh) | 2019-09-27 | 2019-09-27 | 一种恶意代码家族分类检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704842A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783088A (zh) * | 2020-06-03 | 2020-10-16 | 杭州迪普科技股份有限公司 | 一种恶意代码家族聚类方法、装置和计算机设备 |
CN112214767A (zh) * | 2020-10-13 | 2021-01-12 | 北京理工大学 | 一种基于操作码序列的恶意软件家族分类方法 |
CN112347478A (zh) * | 2020-10-13 | 2021-02-09 | 北京天融信网络安全技术有限公司 | 一种恶意软件检测方法及装置 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112417447A (zh) * | 2020-11-11 | 2021-02-26 | 北京京航计算通讯研究所 | 一种恶意代码分类结果的精确度验证方法及装置 |
CN112733144A (zh) * | 2021-01-18 | 2021-04-30 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112800426A (zh) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | 一种基于群智能算法和cGAN的恶意代码数据不均衡处理方法 |
CN112861135A (zh) * | 2021-04-12 | 2021-05-28 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
CN113282927A (zh) * | 2021-05-31 | 2021-08-20 | 平安国际智慧城市科技股份有限公司 | 恶意代码检测方法、装置、设备及计算机可读存储介质 |
CN113282925A (zh) * | 2021-03-30 | 2021-08-20 | 深圳融安网络科技有限公司 | 恶意文件检测方法、装置、终端设备以及存储介质 |
CN113434858A (zh) * | 2021-05-25 | 2021-09-24 | 天津大学 | 基于反汇编代码结构和语义特征的恶意软件家族分类方法 |
CN113468527A (zh) * | 2021-06-22 | 2021-10-01 | 上海电力大学 | 一种基于特征表达增强的恶意代码家族分类方法 |
CN114861178A (zh) * | 2022-04-25 | 2022-08-05 | 北京计算机技术及应用研究所 | 一种基于改进b2m算法的恶意代码检测引擎设计方法 |
CN112861135B (zh) * | 2021-04-12 | 2024-05-31 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
CN108062478A (zh) * | 2018-01-04 | 2018-05-22 | 北京理工大学 | 全局特征可视化与局部特征相结合的恶意代码分类方法 |
CN108376220A (zh) * | 2018-02-01 | 2018-08-07 | 东巽科技(北京)有限公司 | 一种基于深度学习的恶意样本程序分类方法及系统 |
CN108717512A (zh) * | 2018-05-16 | 2018-10-30 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于卷积神经网络的恶意代码分类方法 |
CN110096878A (zh) * | 2019-04-26 | 2019-08-06 | 武汉智美互联科技有限公司 | 一种恶意软件的检测方法 |
-
2019
- 2019-09-27 CN CN201910924383.4A patent/CN110704842A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
CN108062478A (zh) * | 2018-01-04 | 2018-05-22 | 北京理工大学 | 全局特征可视化与局部特征相结合的恶意代码分类方法 |
CN108376220A (zh) * | 2018-02-01 | 2018-08-07 | 东巽科技(北京)有限公司 | 一种基于深度学习的恶意样本程序分类方法及系统 |
CN108717512A (zh) * | 2018-05-16 | 2018-10-30 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于卷积神经网络的恶意代码分类方法 |
CN110096878A (zh) * | 2019-04-26 | 2019-08-06 | 武汉智美互联科技有限公司 | 一种恶意软件的检测方法 |
Non-Patent Citations (1)
Title |
---|
郎大鹏: "基于多特征融合的恶意代码分类算法", 《计算机应用》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783088A (zh) * | 2020-06-03 | 2020-10-16 | 杭州迪普科技股份有限公司 | 一种恶意代码家族聚类方法、装置和计算机设备 |
CN111783088B (zh) * | 2020-06-03 | 2023-04-28 | 杭州迪普科技股份有限公司 | 一种恶意代码家族聚类方法、装置和计算机设备 |
CN112347478B (zh) * | 2020-10-13 | 2021-08-24 | 北京天融信网络安全技术有限公司 | 一种恶意软件检测方法及装置 |
CN112214767A (zh) * | 2020-10-13 | 2021-01-12 | 北京理工大学 | 一种基于操作码序列的恶意软件家族分类方法 |
CN112347478A (zh) * | 2020-10-13 | 2021-02-09 | 北京天融信网络安全技术有限公司 | 一种恶意软件检测方法及装置 |
CN112214767B (zh) * | 2020-10-13 | 2022-09-20 | 北京理工大学 | 一种基于操作码序列的恶意软件家族分类方法 |
CN112417447A (zh) * | 2020-11-11 | 2021-02-26 | 北京京航计算通讯研究所 | 一种恶意代码分类结果的精确度验证方法及装置 |
CN112417447B (zh) * | 2020-11-11 | 2021-07-20 | 北京京航计算通讯研究所 | 一种恶意代码分类结果的精确度验证方法及装置 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112733144A (zh) * | 2021-01-18 | 2021-04-30 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112733144B (zh) * | 2021-01-18 | 2024-05-24 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112800426B (zh) * | 2021-02-09 | 2024-03-22 | 北京工业大学 | 一种基于群智能算法和cGAN的恶意代码数据不均衡处理方法 |
CN112800426A (zh) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | 一种基于群智能算法和cGAN的恶意代码数据不均衡处理方法 |
CN113282925B (zh) * | 2021-03-30 | 2023-09-05 | 深圳融安网络科技有限公司 | 恶意文件检测方法、装置、终端设备以及存储介质 |
CN113282925A (zh) * | 2021-03-30 | 2021-08-20 | 深圳融安网络科技有限公司 | 恶意文件检测方法、装置、终端设备以及存储介质 |
CN112861135A (zh) * | 2021-04-12 | 2021-05-28 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
CN112861135B (zh) * | 2021-04-12 | 2024-05-31 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
CN113434858A (zh) * | 2021-05-25 | 2021-09-24 | 天津大学 | 基于反汇编代码结构和语义特征的恶意软件家族分类方法 |
CN113282927B (zh) * | 2021-05-31 | 2024-02-02 | 平安国际智慧城市科技股份有限公司 | 恶意代码检测方法、装置、设备及计算机可读存储介质 |
CN113282927A (zh) * | 2021-05-31 | 2021-08-20 | 平安国际智慧城市科技股份有限公司 | 恶意代码检测方法、装置、设备及计算机可读存储介质 |
CN113468527A (zh) * | 2021-06-22 | 2021-10-01 | 上海电力大学 | 一种基于特征表达增强的恶意代码家族分类方法 |
CN114861178A (zh) * | 2022-04-25 | 2022-08-05 | 北京计算机技术及应用研究所 | 一种基于改进b2m算法的恶意代码检测引擎设计方法 |
CN114861178B (zh) * | 2022-04-25 | 2024-03-29 | 北京计算机技术及应用研究所 | 一种基于改进b2m算法的恶意代码检测引擎设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704842A (zh) | 一种恶意代码家族分类检测方法 | |
CN110659495A (zh) | 一种恶意代码家族分类方法 | |
Luo et al. | Fire smoke detection algorithm based on motion characteristic and convolutional neural networks | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN113095370B (zh) | 图像识别方法、装置、电子设备及存储介质 | |
CN113194094B (zh) | 一种基于神经网络的异常流量检测方法 | |
Dou et al. | Metagait: Learning to learn an omni sample adaptive representation for gait recognition | |
Choe et al. | The Real‐Time Mobile Application for Classifying of Endangered Parrot Species Using the CNN Models Based on Transfer Learning | |
CN113283414A (zh) | 行人属性识别方法、相关设备及计算机可读存储介质 | |
Zhou et al. | Discriminative attention-augmented feature learning for facial expression recognition in the wild | |
WO2022063076A1 (zh) | 对抗样本的识别方法及装置 | |
Defriani et al. | Recognition of Regional Traditional House in Indonesia Using Convolutional Neural Network (CNN) Method | |
CN117155706B (zh) | 网络异常行为检测方法及其系统 | |
CN112699858B (zh) | 无人平台烟尘雾感知方法、系统、计算机设备及存储介质 | |
Wang et al. | CDFF: a fast and highly accurate method for recognizing traffic signs | |
CN112613496A (zh) | 一种行人重识别方法、装置、电子设备及存储介质 | |
CN116797533B (zh) | 电源适配器的外观缺陷检测方法及其系统 | |
CN117036933A (zh) | 农作物病虫害智能防治系统及其方法 | |
Li et al. | Incremental learning of infrared vehicle detection method based on SSD | |
Curran et al. | Accurate New Zealand wildlife image classification-deep learning approach | |
Amritraj et al. | An Automated and Fine-Tuned Image Detection and Classification System for Plant Leaf Diseases | |
Dijaya et al. | Corn Plant Disease Identification Using SURF-based Bag of Visual Words Feature | |
Fitrianah et al. | Fine-tuned mobilenetv2 and vgg16 algorithm for fish image classification | |
CN114140879A (zh) | 基于多头级联注意网络与时间卷积网络的行为识别方法及装置 | |
Priya et al. | An Enhanced Animal Species Classification and Prediction Engine using CNN |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200117 |