CN116595525A - 一种基于软件图谱的阈值机制恶意软件检测方法及系统 - Google Patents
一种基于软件图谱的阈值机制恶意软件检测方法及系统 Download PDFInfo
- Publication number
- CN116595525A CN116595525A CN202310554806.4A CN202310554806A CN116595525A CN 116595525 A CN116595525 A CN 116595525A CN 202310554806 A CN202310554806 A CN 202310554806A CN 116595525 A CN116595525 A CN 116595525A
- Authority
- CN
- China
- Prior art keywords
- malicious software
- map
- software
- threshold mechanism
- 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
- 230000007246 mechanism Effects 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000001514 detection method Methods 0.000 claims abstract description 31
- 238000012549 training Methods 0.000 claims abstract description 21
- 238000000605 extraction Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 210000002569 neuron Anatomy 0.000 claims description 9
- 238000011176 pooling Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000003384 imaging method Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000013135 deep learning Methods 0.000 abstract description 3
- 108091006146 Channels Proteins 0.000 description 60
- 230000006870 function Effects 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Virology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种基于软件图谱的阈值机制恶意软件检测方法及系统,属于软件安全技术领域。首先通过反编译技术来获取恶意软件的字节码,其次将连续8bit位的数据转化为0至255以内的无符号整数,用以生成恶意软件图谱。然后利用图像的纹理特点,并借助注意力机制,用于提取恶意软件的相关特征;最后通过软阈值化的方法,去除无关信息,进一步提升特征提取的准确性从而提高检测的性能。结果表明:基于软阈值机制的恶意软件检测方法在检测效率上明显优于其他传统的深度学习方法。解决了计算资源不足、模型训练速度慢、系统鲁棒性差等问题。
Description
技术领域
本发明属于软件安全技术领域,涉及一种在海量软件检测环境下的恶意软件检测方法,具体为恶意软件的图谱生成方法、基于恶意软件的软阈值方法和基于软阈值机制的恶意软件软件检测方法。
背景技术
随着物联网、云计算、大数据等技术的进一步发展,各种应用软件给人们生活提供便捷服务的同时,也带来了诸多安全问题,如木马以及蠕虫病毒,诱导用户进行点击,从而感染用户的系统文件、注册列表,危害用户的信息安全,同时给软件的开发厂商以及国家的财产安全造成巨大的危害,严重影响互联网的健康发展。目前,在恶意软件检测领域还存在两方面的不足:一是随着恶意软件数量的增多,现有安全审查机制的准确性和可扩展性较差,同时恶意软件检测技术受到存储资源、计算资源和网络资源的限制,在海量恶意软件行为检测的场景下,已有的恶意软件检测机制的效率较差;其次,随着恶意软件开发技术的发展,很多恶意软件通过代码混淆技术来躲避检测,导致已有的恶意软件检测方法精度下降,鲁棒性变差。
发明内容
本发明所要解决的技术问题是:
随着恶意软件数量的增多,现有安全审查机制的准确性和可扩展性较差,同时恶意软件检测技术受到存储资源、计算资源和网络资源的限制,在海量恶意软件行为检测的场景下,已有的恶意软件检测机制的效率较差。为了避免现有技术的不足之处,本发明提供一种基于软阈值机制的恶意软件检测方法,借助软阈值机制来大幅度提高海量恶意软件检测场景下的检测系统准确率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于软件图谱的阈值机制恶意软件检测方法,其特征在于包括:
S1:对恶意软件反编译得到二进制代码,对得到的二进制代码经过裁剪变换得到恶意软件图谱;
S2:将恶意软件图谱输入基于软阈值机制的恶意软件检测模型,提取恶意软件图谱中的特征并对恶意软件检测模型进行反复训练;
所述特征:恶意软件图谱样本通过向前传播和反向传播阶段,经过层层卷积池化后得到恶意软件图谱的浅层特征图;将浅层特征图谱经过软阈值处理,获取到恶意软件图谱的深层次特征;
S3:利用训练好的模型进行恶意软件检测。
本发明进一步的技术方案:S1具体步骤如下:
S11:打开逆向工具IDA-Pro,点击导入按钮,将恶意软件上传至工具内,然后选择反编译按钮,利用逆向工具IDA-Pro反编译恶意软件样本,获取恶意软件的源码文件;
S12:将恶意软件的源码文件反编译成二进制代码;
S13:将连续的8bit数据转化成0到255内的无符号整数;
S14:连续四个字节代表一条指令,分别对应R、G、B、A四个特征通道;
S15:按照固定728*384的长宽,对特征进行裁剪并转换为RGBA图像。
本发明进一步的技术方案:还包括:对于恶意软件图谱长度小于固定值,或者在裁剪过程中出现了二进制编码丢失的现象,均用使用0字节进行填充。
本发明进一步的技术方案:所述软阈值机制的具体公式如下:
其中τ是每一个通道的阈值,软阈值化通过将[-τ,τ]这个区间中的特征值置为0,将大于τ的特征减τ,将小于τ的特征值+τ这样使得每一个通道上的值都向着0的位置收缩,能够更快的加速收敛。
本发明进一步的技术方案:在软阈值机制中加入了BN方法,将每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,让激活输入值落在非线性函数对输入敏感的区域。
一种基于软件图谱的阈值机制恶意软件检测系统,其特征在于包括特征提取模块和恶意软件检测模块;
所述特征提取模块:对恶意软件反编译得到二进制代码,对得到的二进制代码经过裁剪变换得到恶意软件图谱;
所述恶意软件检测模块:将恶意软件图谱作为输入,采用基于软阈值机制提取恶意软件图谱中包含的特征对恶意软件检测模型进行反复训练。
本发明进一步的技术方案:所述特征提取模块包括恶意软件的反编译、特征通道的生成、基于特征通道的图像化。
本发明进一步的技术方案:所述恶意软件检测模块包括一个卷积层、一定量的神经网络层、一个批标准化、一个软阈值化模块、一个全局均值池化和一个全连接层。
一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。
一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。
本发明的有益效果在于:
本发明提供的一种基于软件图谱的阈值机制恶意软件检测方法,该方法首先通过反编译技术来获取恶意软件的字节码,其次将连续8bit位的数据转化为0至255以内的无符号整数,用以生成恶意软件图谱。然后利用图像的纹理特点,并借助注意力机制,用于提取恶意软件的相关特征;最后通过软阈值化的方法,去除无关信息,进一步提升特征提取的准确性从而提高检测的性能。结果表明:基于软阈值机制的恶意软件检测方法在检测效率上明显优于其他传统的深度学习方法。解决了计算资源不足、模型训练速度慢、系统鲁棒性差等问题。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1基于软阈值机制的恶意软件检测模型;
图2恶意软件图谱;
图3软阈值函数表现;
图4软阈值函数输入对其输出的导数;
图5软阈值化模块;
图6分类模块结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例提供了一种基于软件图谱的阈值机制恶意软件检测方法,在海量恶意软件检测的场景下,在保证检测系统准确率的同时,减少深度学习网络的开销。借助软阈值机制,通过为每一个通道设置自己独特的阈值来更好的去除恶意软件特征通道中的无关信息,进一步提升恶意软件特征学习的效率。同时利用恒等连接的残差网络解决梯度爆炸,网络模型过于复杂、特征不够明显等问题。
在本发明所提出的恶意软件检方法中,首先对恶意软件反编译得到二进制代码,再对得到的二进制代码经过裁剪变换可得到恶意软件的图谱,然后利用该图谱训练本发明所提出的恶意软件的检测模型。其次本发明借助软阈值机制进一步的挖掘恶意软件更深层次的隐藏特征,从而提高恶意软件检测的准确率。
基于软阈值机制的恶意软件检测模型主要是利用图像纹理的相似性来对恶意软件进行分类。通过将恶意软件的二进制代码转化为RGBA的图像,并根据生成的图像来训练检测模型,最后基于此模型对未知的恶意软件进行检测。本发明的方法设计主要包含两个模块:特征提取模块和恶意软件检测模块。如图1所示。其中特征提取模块又包括了恶意软件的反编译、特征通道的生成、基于特征通道的图像化三个部分。本发明中基于软阈值机制的恶意软件检测方法的主要过程描述如下。
(1)首先将恶意软件反编译成二进制代码;
(2)将连续的8bit数据转化成0到255内的无符号整数;
(3)连续四个字节代表一条指令,分别对应R、G、B、A四个特征通道;
(4)按照固定728*384的长宽,对特征进行裁剪并转换为RGBA图像;
(5)对于二进制文件中长度不足的部分使用0进行填充;
(6)将生成的样本图谱分为训练集和测试集;
(7)配置基于软阈值化机制的恶意软件检测模型的相关参数,并利用训练集训练模型;
(8)在测试集上验证该恶意软件检测模型的表现,若训练效果不达标,重复第六步中的过程。
步骤一:恶意软件特征处理方法
在本发明所用的模型训练过程中,本发明通过设计一种合理的特征处理策略,来有效的提升恶意软件检测模型的检测效率和准确率。本发明主要针对基于软阈值机制的恶意软件检测方法进行对应的特征处理,首先将恶意软件样本反编译获得二进制代码,其次为了进一步提取恶意软件的特征信息,将连续的32比特位(即四个字节)分别填充到图像的R、G、B、A四个通道,最后按照固定的长宽比将二进制代码转换为RGBA图像。对于长度小于固定值,或者在裁剪过程中出现了二进制编码丢失的现象,均用使用0字节进行填充。
基于上述的恶意软件分布情况,本发明使用IDA-Pro来反编译这些恶意软件,二进制文件的提取步骤如下:
(1)打开逆向工具IDA-Pro,点击导入按钮,将恶意软件上传至工具内,然后选择反编译按钮,利用逆向工具IDA-Pro反编译恶意软件样本,获取恶意软件的源码文件;
(2)将恶意软件的源码文件从显示区获取,在众多窗口区中找到view区,并截取view区中的全部代码,此时view窗口中所代表的就是恶意软件源码的16进制的数据;
(3)根据源码的语义信息,按照指令格式,将其做出分割,并在整理成二进制文件,最终将这类二进制文件汇总在一个byte文件中。此时byte文件中就包含了恶意软件的全部信息,可以利用这些信息对恶意软件检测模型做出训练。
经过上述过程,在恶意软件样本反编译后就获得了包含了恶意软件行为的序列,最终以四字节为一个单位,单位之间用逗号分割,将结果生成并保存为bytes文件。
步骤二:恶意软件图谱生成方法
在恶意软件图谱的生成方式上,本发明将连续8bit据转化为0至255的无符号整数,以对应RGB的色彩强度值,从而将其可视化图像。同时改进了灰度图像的信息量相对较少,无法完全展示恶意行为的潜在特征的问题。本发明使用IDA-Pro作为反编译工具,以x86汇编指令作为研究对象,将每一条指令反编译之后形成四个8bit的数,用于对应RGBA的四个通道,其中前24位,分别对应彩色模式中的R、G、B三个颜色通道,取值都在0至255之间,其中0表示白色,255表示黑色。A则对应透明度,取值也在0到255的范围内,同时固定图像的大小为728*364,以此大小为标准对二进制文件进行截取,经过转化后形成对应的恶意软件图谱,具体方法描述如下:
(1)按照RGBA通道顺序对byte文件做出分割,并将字节文件按照对应通道的位置一次输入至恶意软件检测模型中,利用神经网络结点计算特征值。
(2)依照byte文件中的位置,逐位读取二进制代码,不同位置代表不同的指令集,相同的指令集之间,最终计算的结果具有一定的相似性。
(3)在读取字节文件时,每读取一位,就将累计数+1,每读取八位,计算其总值,总值就代表该指令在二进制中的表现形式。
(4)每计算出一个8bit位的数,就将其写入图像文件中,在图像文件中的每一位,就代表在该位置上的像素值,该位置的值最小为0,代表白色,最大值为255,代表黑色。
(5)字节文件具有一定的大小,按顺序从前往后依次读取,为了保证图像的连续行,在读取的过程中,如果读取到二进制文件的最后一列,换行读取下一行。
(6)同时,因为是四通道的图像,为了保证每个位置上的图像像素点是独立的,在读取过程中,如果读取到的字符为4的整数倍,依次按照4n,4n+1,4n+2,4n+3的顺序计算对应位置上的像素值。
(7)将四个通道上的值分别记录在R、G、B、A四个通道上,此时每个独立通道上的值,就代表在RGBA图像上的独立分量,每个通道上也具有自己独特的特征值。
(8)按照RGB图像像素值的算法,可以推广到四通道上,经过计算最后得到恶意软件的图像。
在上述方法中,本发明首先读入二进制文件,并且将其写入一串序列中,然后判断i的大小,通过i去控制最终生成图像的长和宽,如果长度到达指定值,就换行。再然后将乱序的二进制文件一行行的写入另一个字节文件中,对于长度不够的位置,则通过补零凑齐。最后按照每8bit位为一个通道,按照R、G、B、A的顺序生成特征通道。最后经过计算,将每一个通道的值映射在0到255这个区间内。并且RGBA图像和RGB图像在色彩呈现和像素计算上可以灵活转换,这样大大减少了计算的难度。通过上述的处理后,可以发现不同恶意软件家族生成的图谱之间图像纹理差异较大,并且每一种恶意软件的局部特征都非常具有代表性,最终生成的恶意软件图谱如图2所示。
步骤三:软阈值机制方法实现
在特征处理方面,本发明借助软阈值函数,采用一种近似的重建方式,将近似于0的值变换为0值。通过这种近似替换的方式软阈值函数可以处理信号处理中的噪声问题,从而能够更好的抑制噪声,提高特征学习的效率。
软阈值的学习过程主要步骤如下:
(1)打开逆向工具IDA-Pro,点击导入按钮,将恶意软件上传至工具内,然后选择反编译按钮,利用逆向工具IDA-Pro反编译恶意软件样本,获取恶意软件的源码文件。将恶意软件的源码文件从显示区获取,在众多窗口区中找到view区,并截取view区中的全部代码,按照指令格式,将其做出分割,并在整理成二进制文件。
(2)按照RGBA通道顺序对byte文件做出分割,并将字节文件按照对应通道的位置一次输入至恶意软件检测模型中,利用神经网络结点计算特征值。依照byte文件中的位置,逐位读取二进制代码,在读取字节文件时,每读取一位,就将累计数+1,每读取八位,计算其总值。将四个通道上的值分别记录在R、G、B、A四个通道上,此计算每个通道上独立的特征值,按照RGB图像像素值的算法,经过计算最后得到恶意软件的图像。
(3)将图谱输入包含大量的神经网络卷积层,在前向传播过程中,神经元接收到输入的恶意软件图谱信息并根据每个神经元的偏置以及链路上的权重参数在激活函数的作用下产生输出值;在反向传播阶段中,神经网络计算输出值与样本标记之间的误差并反向传播,在传播过程中调整神经元的偏置和链路上的权重参数,通过多次迭代训练可以使恶意软件检测模型的精度进一步提高。
(4)恶意软件检测模型的每一个对应通道都会产生符合该恶意软件图谱的特征,每一张恶意软件族谱都可以被划分为RGBA四个通道。每个通道在经过层层的卷积之后,都会产生一个新的特征,每个不同通道的特征都可以视为该特征在不同卷积核上的分量。利用软阈值机制自适应的调整每个通道的阈值,将特征分量应用于特征图的绝对值以获得一维向量。然后,将一维向量传播到接下来的两个通道网络中,以获得缩放参数。最后,在通道网络的末端应用sigmoid函数。在sigmoid函数的作用下,可以将参数α控制在(0,1)之间,使恶意软件检测模型过滤掉那些不重要的通道特征。
在本检测方法中,通过基于注意力机制的软阈值化模块,在计算的过程中获得每一个通道不同的阈值,此时阈值不再是一个定值,而是一个向量,每一个通道都对应着一个收缩的阈值。软阈值化的具体公式如下所示。
其中τ是每一个通道的阈值,软阈值化通过将[-τ,τ]这个区间中的特征值置为0,将大于τ的特征减τ,将小于τ的特征值+τ这样使得每一个通道上的值都向着0的位置收缩,能够更快的加速收敛,具体表现如图3所示。
软阈值化的输出对于其输入的导数为式2:
软阈值函数输入对其输出的导数效果图如4所示。
步骤四:软阈值机制模型实现
在恶意软件检测模型的搭建上,本发明借助软阈值机制过滤无关特征从而达到更好的分类效果。具体步骤如下。
(1)将恶意软件图谱输入基于软阈值机制的恶意软件检测模型,利用恶意软件图谱中包含的信息对恶意软件检测模型进行反复训练。
(2)恶意软件图谱样本通过向前传播和反向传播阶段,经过层层卷积池化后得到恶意软件图谱的浅层特征图。
(3)将浅层特征图谱经过一定量的恶意软件检测模块的处理,获取到恶意软件图谱的深层次特征。
(4)在软阈值模块中加入了BN方法,将每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,让激活输入值落在非线性函数对输入比较敏感的区域。使恶意软件检测模型网络梯度变大,从而避免梯度消失问题产生,进一步加快学习收敛速度和训练速度。
软阈值化模块的具体如下图5所示。
步骤五:全局平均池化方法
本发明为了更好的选择每个通道的参数,在恶意软件图谱的输出过程中加入了全局的上下文信息来解决这一问题。具体来说,就是通过全局平均池化(GAP)来生成通道统计。
以图6为例,对于任意的通道统计z∈RC×W×H,都可以由进行Squezze操作后的特征映射X通过其自身的维度W×H来完成。对于z的任意第t个元素都可以表征为式3
其中:
W、H、C分别代表图像的长和宽和通道数,sum代表求和函数,Z代表任意通道,t代表任意元素,x代表特征映射。
为了解决学习缓慢的问题且更好的使特征信息反向传播,本发明使用sigmoid激活函数加交叉熵代价函数:
其中:
交叉熵函数定义为:
式7中n代表训练数据的总和,x代表求和是在训练输入x上进行的,a代表拟合常数,y则对应最后的目标输出。
因此,最后一层的sigmoid激活函数可以表示为:
σ′(z)= σ(z)(1- σ(z))+C 式(8)
最后本发明由缩放参数γ乘以全局的统计信息z获得最终的阈值β,即:
β= γ×z 式(9)
其中:
γ= σ′(W2δ(W1z)) 式(10)
在式9中,δ代表RELU函数,σ′代表sigmoid+交叉熵函数,W1代表比率为r的降维层,W2代表比率为r的增维层,通过上述操作,最终使得阈值β保持在一个合理的值,介于0、1之间。对于绝对值大于阈值β的参数,均将其设置为0。
步骤六:基于软阈值机制的恶意软件识别方法
基于软阈值机制的恶意软件检测模型的基本单元(MBT)按照从前到后的顺序依次为:一个卷积层、一定量的神经网络层,一个批标准化、一个软阈值化模块,最后通过一个全局均值池化和一个全连接层得出结果。本发明的恶意软件检测模型整体结构如图6所示。
在恶意软件检测模型中,将软阈值化作为非线性映射代替ReLU,可以更加灵活的设置特征值的取值区间,配合注意力机制,使得每一组通道都可以自适应的获得不同的阈值,会最终获得一个对恶意软件和良性软件具有一定区分度的检测模型,该模型可以用于未知软件的检测。本发明所提出的恶意软件检测方法具体方法如下所示。
(1)打开逆向工具IDA-Pro,点击导入按钮,将恶意软件上传至工具内,然后选择反编译按钮,利用逆向工具IDA-Pro反编译恶意软件样本,获取恶意软件的源码文件。
(2)按照RGBA通道顺序对byte文件做出分割,并将字节文件按照对应通道的位置一次输入至恶意软件检测模型中,利用神经网络结点计算特征值。依照byte文件中的位置,逐位读取二进制代码,在读取字节文件时,每读取一位,就将累计数+1,每读取八位,计算其总值。将四个通道上的值分别记录在R、G、B、A四个通道上,此计算每个通道上独立的特征值,按照RGB图像像素值的算法,经过计算最后得到恶意软件的图像。
(3)将图谱输入包含大量的神经网络卷积层,神经元接收到输入的恶意软件图谱信息并根据每个神经元的偏置以及链路上的权重参数在激活函数的作用下产生输出值;同时神经网络也会计算输出值与样本标记之间的误差并反向传播,在传播过程中调整神经元的偏置和链路上的权重参数,通过多次迭代训练可以使恶意软件检测模型的精度进一步提高。
(4)恶意软件检测模型的每一个对应通道都会产生符合该恶意软件图谱的特征,每一张恶意软件族谱都可以被划分为RGBA四个通道。利用软阈值机制自适应的调整每个通道的阈值,将特征分量应用于特征图的绝对值以获得一维向量。然后,将一维向量传播到接下来的两个通道网络中,以获得缩放参数。
(5)利用缩放函数对通道统计进行压缩操作,并且对任意通道上的参数进行全局统计,最后利用交叉熵代价函数解决特征信息反向传播的问题,最终得到特征通道上独立的一组阈值,并将这个阈值作为最终的计算结果。
(6)将软阈值化作为非线性映射代替ReLU,通过更加灵活的设置特征值的取值区间,配合注意力机制,使得每一组通道都可以自适应的获得不同的阈值,同时对于阈值区间外的部分,包括大于阈值和小于阈值的部分,保留下来,并向着零的位置收缩,能够更为准确的提取特征通道的特征信息。
(7)经过上述步骤的反复训练,在模型训练结束之后,会最终获得一个对恶意软件和良性软件具有一定区分度的检测模型。
(8)利用上述训练好的恶意软件检测模型,对未知的恶意软件进行检测。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于软件图谱的阈值机制恶意软件检测方法,其特征在于包括:
S1:对恶意软件反编译得到二进制代码,对得到的二进制代码经过裁剪变换得到恶意软件图谱;
S2:将恶意软件图谱输入基于软阈值机制的恶意软件检测模型,提取恶意软件图谱中的特征并对恶意软件检测模型进行反复训练;
所述特征:恶意软件图谱样本通过向前传播和反向传播阶段,经过层层卷积池化后得到恶意软件图谱的浅层特征图;将浅层特征图谱经过软阈值处理,获取到恶意软件图谱的深层次特征;
S3:利用训练好的模型进行恶意软件检测。
2.根据权利要求1所述的一种基于软件图谱的阈值机制恶意软件检测方法,其特征在于S1具体步骤如下:
S11:打开逆向工具IDA-Pro,点击导入按钮,将恶意软件上传至工具内,然后选择反编译按钮,利用逆向工具IDA-Pro反编译恶意软件样本,获取恶意软件的源码文件;
S12:将恶意软件的源码文件反编译成二进制代码;
S13:将连续的8bit数据转化成0到255内的无符号整数;
S14:连续四个字节代表一条指令,分别对应R、G、B、A四个特征通道;
S15:按照固定728*384的长宽,对特征进行裁剪并转换为RGBA图像。
3.根据权利要求2所述的基于软件图谱的阈值机制恶意软件检测方法,其特征在于还包括:对于恶意软件图谱长度小于固定值,或者在裁剪过程中出现了二进制编码丢失的现象,均用使用0字节进行填充。
4.根据权利要求1所述的基于软件图谱的阈值机制恶意软件检测方法,其特征在于所述软阈值机制的具体公式如下:
其中τ是每一个通道的阈值,软阈值化通过将[-τ,τ]这个区间中的特征值置为0,将大于τ的特征减τ,将小于τ的特征值+τ这样使得每一个通道上的值都向着0的位置收缩,能够更快的加速收敛。
5.根据权利要求4所述的基于软件图谱的阈值机制恶意软件检测方法,其特征在于在软阈值机制中加入了BN方法,将每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,让激活输入值落在非线性函数对输入敏感的区域。
6.一种基于软件图谱的阈值机制恶意软件检测系统,其特征在于包括特征提取模块和恶意软件检测模块;
所述特征提取模块:对恶意软件反编译得到二进制代码,对得到的二进制代码经过裁剪变换得到恶意软件图谱;
所述恶意软件检测模块:将恶意软件图谱作为输入,采用基于软阈值机制提取恶意软件图谱中包含的特征对恶意软件检测模型进行反复训练。
7.根据权利要求6所述的基于软件图谱的阈值机制恶意软件检测系统,其特征在于所述特征提取模块包括恶意软件的反编译、特征通道的生成、基于特征通道的图像化。
8.根据权利要求6所述的基于软件图谱的阈值机制恶意软件检测系统,其特征在于所述恶意软件检测模块包括一个卷积层、一定量的神经网络层、一个批标准化、一个软阈值化模块、一个全局均值池化和一个全连接层。
9.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
10.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310554806.4A CN116595525A (zh) | 2023-05-17 | 2023-05-17 | 一种基于软件图谱的阈值机制恶意软件检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310554806.4A CN116595525A (zh) | 2023-05-17 | 2023-05-17 | 一种基于软件图谱的阈值机制恶意软件检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116595525A true CN116595525A (zh) | 2023-08-15 |
Family
ID=87610998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310554806.4A Pending CN116595525A (zh) | 2023-05-17 | 2023-05-17 | 一种基于软件图谱的阈值机制恶意软件检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116595525A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956295A (zh) * | 2023-09-19 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
-
2023
- 2023-05-17 CN CN202310554806.4A patent/CN116595525A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956295A (zh) * | 2023-09-19 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
CN116956295B (zh) * | 2023-09-19 | 2024-01-05 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765458B (zh) | 一种基于深度学习的恶意软件图像格式检测方法及其装置 | |
CN110826060A (zh) | 物联网恶意软件的可视化分类方法、装置与电子设备 | |
CN113221115B (zh) | 基于协同学习的可视化恶意软件检测方法 | |
CN111552964A (zh) | 一种基于静态分析的恶意软件分类方法 | |
CN111914254B (zh) | 一种基于弱耦合sgan的恶意软件家族分类器生成方法、装置及可读存储介质 | |
CN109033833B (zh) | 一种基于多特征与特征选择的恶意代码分类方法 | |
CN110766708B (zh) | 基于轮廓相似度的图像比较方法 | |
CN116340944B (zh) | 基于rgb图像和轻量化模型的恶意代码分类方法及系统 | |
CN116595525A (zh) | 一种基于软件图谱的阈值机制恶意软件检测方法及系统 | |
CN111259397A (zh) | 一种基于马尔科夫图和深度学习的恶意软件分类方法 | |
CN116861431B (zh) | 基于多通道图像和神经网络的恶意软件分类方法及系统 | |
CN111241550B (zh) | 基于二进制映射和深度学习的漏洞检测方法 | |
Yoo et al. | The image game: exploit kit detection based on recursive convolutional neural networks | |
Kornish et al. | Malware classification using deep convolutional neural networks | |
CN117315377B (zh) | 基于机器视觉的图像处理方法、装置及电子设备 | |
CN111815526A (zh) | 基于图像滤波和cnn的有雨图像雨条纹去除方法及系统 | |
EP4237977B1 (en) | Method for detection of malware | |
CN112560034B (zh) | 基于反馈式深度对抗网络的恶意代码样本合成方法及装置 | |
CN113360911A (zh) | 恶意代码同源分析方法、装置、计算机设备和存储介质 | |
CN112818774A (zh) | 一种活体检测方法及装置 | |
CN116644422A (zh) | 一种基于恶意块标注和图像处理的恶意代码检测方法 | |
CN113065407B (zh) | 基于注意力机制和生成对抗网络的财务票据印章擦除方法 | |
CN115292702A (zh) | 一种恶意代码家族的识别方法、装置、设备及存储介质 | |
CN114896594A (zh) | 基于图像特征多注意力学习的恶意代码检测装置及方法 | |
CN114896598A (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 |