CN115168857B - 恶意软件检测优化方法、系统、终端及存储介质 - Google Patents
恶意软件检测优化方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN115168857B CN115168857B CN202210930103.2A CN202210930103A CN115168857B CN 115168857 B CN115168857 B CN 115168857B CN 202210930103 A CN202210930103 A CN 202210930103A CN 115168857 B CN115168857 B CN 115168857B
- Authority
- CN
- China
- Prior art keywords
- feature vector
- file
- malicious software
- detection
- reinforcement learning
- 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
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
- 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/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及网络安全技术领域,具体提供一种恶意软件检测优化方法、系统、终端及存储介质,包括:对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则。本发明通过对抗学习不断丰富恶意软件检测工具的恶意检测策略,优化了恶意软件检测工具的准确度。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种恶意软件检测优化方法、系统、终端及存储介质。
背景技术
关于网络攻击的分类有很多种,从攻击环境来说,可以分为黑盒攻击,白盒攻击或者灰盒攻击。其中黑盒攻击较为常用,黑盒攻击:攻击者对攻击的模型的内部结构,训练参数,防御方法(如果加入了防御手段的话)等等一无所知,只能通过输出输出与模型进行交互。针对黑河攻击的场景,现有的恶意软件检测方法鉴于样本数量不足、样本单一,导致防护存在漏洞,检测策略不够全面。
发明内容
针对现有技术的上述不足,本发明提供一种恶意软件检测优化方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种恶意软件检测优化方法,包括:
对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则。
进一步的,对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量,包括:
直接从静态可移植可执行文件提取数组信息,所述数组信息包括文件字节直方图、文本特征、字节熵直方图和字节串特征;
对静态可移植可执行文件的结构进行解析,从各个字节分析出文件信息,所述文件信息包括字节头特征,导入和导出表特征,文件头特征。
进一步的,利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量,包括:
所述强化学习模型基于第一特征向量的状态为第一特征向量选取可用规避行为,并基于Q函数总结的修改策略从可用规避行为中选取目标规避行为;
多种规避行为包括:将函数添加到从未使用的导入地址表中、操纵现有的段落的名称、创建新的段落、在节的末尾将字节附加到额外的空格、创建一个新的入口点,立即跳转到原始入口点、删除签名者信息、操纵调试信息、包装或拆包、修改或中断头部校验和、将字节附加到叠加层。
进一步的,利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则,包括:
在所述恶意软件检测程序加载训练好的加法模型,并定义全局阈值,所述全局阈值用于所述加法模型输出判别结果;
所述加法模型基于云端训练集进行训练,所述云端训练集包括从云端搜集的海量恶意软件样本和正常文件样本,且所述加法模型在GPU服务器上完成训练;
所述加法模型对所述第二特征向量进行检测,并将第二特征向量作为恶意软件学习样本进行优化。
第二方面,本发明提供一种恶意软件检测优化系统,包括:
特征提取单元,用于对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
特征修改单元,用于利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
检测优化单元,用于利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则。
进一步的,特征提取单元用于:
直接从静态可移植可执行文件提取数组信息,所述数组信息包括文件字节直方图、文本特征、字节熵直方图和字节串特征;
对静态可移植可执行文件的结构进行解析,从各个字节分析出文件信息,所述文件信息包括字节头特征,导入和导出表特征,文件头特征。
进一步的,特征修改单元用于:
所述强化学习模型基于第一特征向量的状态为第一特征向量选取可用规避行为,并基于Q函数总结的修改策略从可用规避行为中选取目标规避行为;
多种规避行为包括:将函数添加到从未使用的导入地址表中、操纵现有的段落的名称、创建新的段落、在节的末尾将字节附加到额外的空格、创建一个新的入口点,立即跳转到原始入口点、删除签名者信息、操纵调试信息、包装或拆包、修改或中断头部校验和、将字节附加到叠加层。
进一步的,检测优化单元用于:
在所述恶意软件检测程序加载训练好的加法模型,并定义全局阈值,所述全局阈值用于所述加法模型输出判别结果;
所述加法模型基于云端训练集进行训练,所述云端训练集包括从云端搜集的海量恶意软件样本和正常文件样本,且所述加法模型在GPU服务器上完成训练;
所述加法模型对所述第二特征向量进行检测,并将第二特征向量作为恶意软件学习样本进行优化。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,本发明提供的恶意软件检测优化方法、系统、终端及存储介质,利用基于强化学习的全面且多样的恶意软件对抗样本,实现程序安全免杀子系统中对抗性攻击载荷生成模块,利用深度强化学习技术在黑盒模式下构建对抗性恶意软件,从而规避智能化防病毒软件的检测。本发明通过对抗学习不断丰富恶意软件检测工具的恶意检测策略,优化了恶意软件检测工具的准确度。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种恶意软件检测优化系统。
如图1所示,该方法包括:
步骤110,对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
步骤120,利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
步骤130,利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则。
为了便于对本发明的理解,下面以本发明恶意软件检测优化方法的原理,结合实施例中对恶意软件检测进行优化的过程,对本发明提供的恶意软件检测优化方法做进一步的描述。
针对黑盒攻击的场景,攻击者智能获得检测系统对输入样本的标签值,可以利用强化学习算法模型,通过对恶意软件的静态可移植可执行(PE)文件执行一些修改,然后通过观察修改后的恶意软件是否可以逃避检测,利用Q函数总结相关的修改策略,经过不断训练,可以生产对抗性攻击样本,从而可以规避恶意软件智能检测系统的检测。
该框架不需要可靠的模型,也不需要目标系统产生分数。相反,强化学习代理程序配备了一组可在PE文件上执行的功能保留操作。通过针对目标恶意软件检测系统的一系列交互,即可了解哪些操作序列可能导致避开任何给定恶意软件样本的检测。这样可以对静态PE恶意软件检测系统进行完全黑盒攻击,并直接产生功能性回避的恶意软件样本。
具体的,所述恶意软件检测优化方法包括:
PE Feature Extractor(特征提取)将PE文件转换成特征向量,Interface(界面)加载已经训练好的GBDT模型(加法模型)用于恶意软件检测,PE文件的特征向量作为状态传递。DQN Agent(强化学习模型)基于当前状态和一定的策略,选择规避动作。MalwareEnvironment(恶意软件环境)根据规避动作,通过Malware Manipulator(恶意软件操纵器)针对PE文件执行规避操作,然后使用PE Feature Extractor重新计算特征,再使用Interface判断,如果不是恶意软件,反馈1并结束本轮学习;如果是恶意软件,反馈0以及新状态给DQN Agent,DQN Agent继续选择下一步规避动作,循环操作下去。
其中,PE Feature Extractor的主要功能是将PE文件转换成特征向量。PE文件的特征提取方式主要分类两类:一类是通过PE文件可以直接获取到的特征,比如字节直方图,字节熵直方图和字节串特征等;另一类特征是需要解析PE文件结构,从各个字节分析出的特征,比如字节头特征,导入和导出表特征,文件头特征等。
字节直方图:本质上PE文件也是二进制文件,可以当作一连串字节组成的文件。字节直方图又称为ByteHistogram,其核心思想是,定义一个长度为256维的向量,每个向量依次为0x00,0x01一直到0xFF,分别代表PE文件0x00,0x01一直到0xFF对应的个数。从某种程度上说,字节直方图类似于在文本处理中经常使用的词袋模型。在实际使用时,单纯统计直方图非常容易过拟合,因为字节直方图对于PE文件的二进制特征过于依赖,PE文件增加一个无意义的0字节都会改变直方图;另外PE文件中不同字节的数量可能差别大,数量占优势的字节可能大大弱化其他字节对结果的影响,所以需要对直方图进行标准化处理。一种常见的处理方式是,增加一个维度的变量,用于统计PE文件的字节总数,同时原有直方图按照字节总数取平均值。
字节熵直方图:又称为ByteEntropyHistogram,它是在字节直方图的基础上发展而来的。PE文件中可以使用字节的信息熵来当作特征。把PE文件当作一个字节组成的数组,在这个数组上以2048字节为窗口,以1024字节为步长计算字节熵。计算过程中,可以只计算每个字节的高4位的信息熵,那么字节的值都可以转换成0x00~0xFF,字节熵直方图的横轴代表接待且长度为16,分别代表字节值0x00~0xFF;纵轴代表熵且长度为16,代表信息熵乘以2并取整后为0~15的情况。
文本特征:恶意文件通常在文本特征方面与正常文件有所区别,比如硬编码上线IP和C&C域名等。通常恶意软件所关注的文本特征包括:
可读字符串个数:可读字符串是指由文本文件中常见的字母、数字和符号组成的字符串。可读的字符串的组成集中在ASCII码值在0x20~0x7F之间的字符,也可以把可读字符称为可打印字符。
平均可读字符串个数:在获取了全部可读字符串的基础上,计算其平均长度。
可读字符直方图:与字节直方图类似,可以统计可读字符串的字符直方图,由于可读字符的个数为96个,因此可以定义一个长度为96的向量统计其直方图。
可读字符信息熵:通过计算全部可读字符串中的字符信息熵,将其作为特征向量的一个维度。
C盘路径字符串个数:恶意软件通常对被感染系统的根目录有一定的文件操作行为,表现在可读字符串中,可能会包含硬编码的C盘路径,可以将这类字符串的个数作为一个维度。
注册表字符串个数:恶意软件通常对被感染系统的注册表有一定的文件操作行为,表现在可读字符串中,可能会包含硬编码的注册表值,可以将这类字符串的个数作为一个维度。
URL字符串个数:恶意程序通常从指定的URL下载资源,最典型的就是下载病毒文件,表现在可读字符串中,可能会包含硬编码的URL,可以将这类字符串的个数作为一个维度。
MZ头的个数:MZ头的个数也是一个统计的维度。
文件信息:上面提到的字节直方图、字节熵直方图和文本特征直方图都可以把PE文件当作字节数组处理即可获取。但是有一些特征必须按照PE文件的格式进行解析后才能获取,比较典型的就是文件信息,下面是提取特征时比较关注的几种文件信息:
(1)是否包含debug信息。(2)导出函数的个数。(3)导入函数的个数。(4)是否包含资源文件。(5)是否包含信号量。(6)是否启用了重定向。(7)是否启用了TLS回调函数。(8)符号个数。
文件头信息:PE文件头中的信息也是非常重要的信息,下面是提取特征时比较关注的几种文件头信息:
PE文件的创建时间:指编译器编译生成PE文件时打上的,是文件编译生成的时间,一般文件的复制操作不会改变这个值。
机器码:每个CPU拥有唯一的机器码,虽然PE文件把机器码定义为一个WORD类型,即2个字节。一种特征定义方式就是直接把机器码当成一个数字处理;另外一种方式就是类似词袋的处理方式,定义一个固定长度为N的词袋,把机器码转换成一个维度为N的向量。
文件属性:文件头的文件属性中包含大量重要信息,比如文件是否是可运行的状态,是否为DLL文件等。提取文件属性特征时,可以采用与机器码类似的处理方式,但需要注意的是,文件头的属性是有多个标记位组成的。因此在处理的时候,以列表形式保存而不是像机器码那样使用WORD型保存,在此过程中,需要把文件属性转换成字符串列表后,再使用FeatureHasher转换成一个维度为10的向量。
该PE文件所需的子系统:PE文件所需的子系统与机器码处理方式相同,使用FeatureHasher转换成一个维度为10的向量。
该PE文件所需的DLL文件的属性:PE文件所需的DLL文件的属性与机器码处理方式相同,使用FeatureHasher转换成一个维度为10的向量。
Magic:与机器码处理方式相同,使用FeatureHasher转换成一个维度为10的向量。
(1)映像的版本号。(2)链接器的版本号。
(3)所需子系统的版本号。
(4)所需操作系统的版本号。(5)代码段的长度。
(6)所有文件头的大小。
导出表:导出表包含导出函数的入口信息,与文件属性的处理方式相同,使用FeatureHasher转换成一个维度为128的向量。
导入表:导入表中保存的是函数名和其驻留DLL名等动态链接所需的信息,与导出表处理方式类似,分别将导入的库文件以及导入的函数,分别使用FeatureHasher转换成一个维度为256和1024的向量。
PE文件节的特征提取:PE文件节中包含真正运行的代码,也是特征提取的一个重点,其包含的特征包括:
节头信息:节的个数、长度为0的节的个数、名称为空的个数、可读可执行的节的个数、可写的节的个数等。
节大小:节大小包含两部分:一个是节在物理文件中的大小,一个是节在内存中的大小。然后使用FeatureHasher转换成一个维度为50的向量。
节的熵:统计节的熵,然后使用FeatureHasher转换成一个维度为50的向量。
节的入口点名称和属性:根据节的入口点,找到入口点的名称和属性,然后将其使用FeatureHasher转换成一个维度为50的向量。
Interface模块是基于GBDT模型对PE文件进行检测。GBDT(Gradient BoostingDecision Tree)又叫MART(MultipleAdditive Regression Tree),是一种迭代的决策树算法,该算法由多颗决策树组成,所有树的结论累加起来作最终决策。Boosting是一簇可将弱学习器提升为强学习器的算法,属于集成学习(Ensemble Learning)的范畴。Boosting方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断要好。
一般Boosting算法都是一个迭代的过程,每一次新的训练都是为了改进上一次的结果。原始的Boost算法实在算法开始的时候,为每一个样本赋子一个权重值,初始的时候,大家都是一样重要的。在每一步训练中得到的模型,会使得数据点的估计有对有错,在每一步结束后,增加分错的点的权重,减少分对的点的权重,这样使得某些点如果一直被分错,那么就会被严重关注,也就是被赋予一个很高的权重。等进行了N次迭代,将会得到N个简单的分类器,通过将它们组合起来,得到最后的模型。GBDT与传统的Boost的区别是,每一次的计算是为了减少上一次的残差,为了消除残差,可以在残差减少的梯度方向上建立一个新的模型。
在实际环境中,往往模型的训练以及模型的预测不在一台设备上模型训练所使用的存储和计算资源往往非常大,需要使用大存储和GPU,但是使用模型进行预测往往计算和存储需求很小,以基于机器学习的恶意软件检测系统为例,云端搜集了海量的恶意软件样本和正常文件样本,这个量级从几百G到几十T都有,处理如此大的文件,机器学习算法会消耗大量的计算资源,通常为了加速训练的过程会使用GPU服务器。训练完成后把模型持久化成文件,这个模型文件的大小往往在几百K到几十M之间。终端恶意软件检测系统下载该模型文件,在本地使用该模型对本地文件进行预测,利用Python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作,能够将程序中运行的对象信息保存到文件中永久存储,通过pickle模块的反序列化操作,能够从文件中创建上一次程序保存的对象。使用pickle模块,也可以把机器学习的模型持久化为文件,并且通过加载该文件,还原出机器学习分类器,对本地数据进行预测。
Interface模块首先创建全局的PE Feature Extractor对象feature extractor,然后加载训练好的GBDT模型文件,创建GBDT分类器对象local_model。定义全局阈值localmodel_threshold当local_model判别的时候,大于该阈值的判定为1,反之判定为0,阈值可以根据实际情况进行调整,通常区间为[0.5,0.9]。
Malware Manipulator模块封装了对PE文件的各种规避操作。这些操作会对PE文件进行适度的修改,但不会破坏PE文件格式并且不会改变代码执行,可以采取的动作包括但不限于:
(1)将函数添加到从未使用的导入地址表中。(2)操纵现有的section的名称(3)创建新的(未使用的)section
(4)在节的末尾将字节附加到额外的空格。
(5)创建一个新的入口点,立即跳转到原始入口点(6)删除签名者信息(7)操纵调试信息
(8)包装或拆包
(9)修改(中断)头部校验和。
(10)将字节附加到叠加层(PE文件的末尾)。
其中一些操作的具体描述如下:"
文件末尾追加随机内容:对于依赖文件哈希值的杀毒软件,只需要在PE文件后追加随机内容既可以绕过检测。一种比较简单的实现是生成一段随机数据,随机数据的长度是随机的,内容也是随机的。定义数据的长度为:
randon_length=2n
其中,n是5~8之间的随机整数。数据的内容也是随机生成的,生成的内容追加到PE文件尾部。
追加导入表:随机增加导入表可以干扰杀毒软件的检测,为了更加逼真,还需要使用常见的库和导入函数来创建导入表。解析PE文件,获取当前的导入表,遍历导入表,如果随机选择的库不存在,就创建一个新库,如果导入函数不存在,就增加一个新入口。
改变节名称:修改已存在的节的名称也可以迷惑杀毒软件,常见的方式是随机选择已经存在的节,并把节的名称修改为常见的节的名称。搜一集常见的名。称,比如:.text、.rsrc、.reloc、.data、.rdata、.idata、.brdata等,保存到文件sectionnames.txt中。然后把常见的节的名称保存在全局变量COMMON SECTION_NAMES中。解析PE文件,获取当前的节列表,随机选择其中一个节,从全局变量COMMON SECTION_NAMES中随机选择一个节名,更新现有节的节名。需要注意的是在PE文件的格式中,节名称使用长度为8的字节数组保存且最后一位为NULL,所以真正有效字符最多只有7个。
增加节:增加新的节,节的名称既可以参考修改节名称的方式从常见的节名称中随机选择,也可以直接随机生成,在ASCII表中“。”~“z”直接随机生成6位字符,然后随机生成长度,并随机生成内容。从常见的节类型中选择一种,然后增加节。
节内追加内容:己经存在的节通常包含真正意义上运行的代码,所以对现有的节的修改要非常谨慎,最保守的方法是在末尾追加随机内容。通常PE文件的节中的末尾都有预留的空间,没有实际运行的代码,可以把我们随机生成的内容写到这部分空间。我们随机选择现有的一个节,计算其预留空间的长度和位置。随机生成数据长度,如果大于预留空间大小则进行截断,然后随机生成内容并填充到节的内容的末尾。
UPX加壳:加壳是最常见的杀毒软件免查杀方式,各种加壳工具更是数不胜数,这里我们介绍比较初级的UPX。UPX是一款可执行程序文件压缩器。压缩过的可执行文件体积缩小50%~70%,这样减少了磁盘占用空间、网络上传下载的时间和其他分布以及存储费用。通过UPX压缩过的程序和程序库完全没有功能损失,和压缩之前一样可以正常运行。加壳的本质是对可执行程序资源压缩。加壳过的程序可以直接运行,但是不能查看源代码,要经过去壳才可以查看源代码。
删除签名:删除PE文件的签名不会影响文件的运行,而且正常文件也存在没有签名的现象。
删除debug信息:debug信息和签名情况类似,杀毒软件无法根据签名和debug信息断定程序是否为恶意程序,但是却可以通过删除debug信息改变文件的哈希值和二进制特征。
置空可选头的校验和:将可选头的校验和设置为空也可以逃避杀毒软件。
DQNAgent模块实现了强化学习算法。强化学习算法可以分为三大类:分别是基于价值的深度强化学习,基于策略的深度强化学习和基于模型的深度强化学习。这三种不同类型的深度强化学习用深度神经网络替代了强化学习的不同部件。基于价值的深度强化学习本质上是一个QLearning算法,目标是估计最优策略的Q值。不同的地方在于QLearning中价值函数近似用了深度神经网络。比如DQN在Atari游戏任务中,输入是Atari的游戏画面,因此使用适合图像处理的卷积神经网络(ConvolutionalNeuralNetwork,CNN)。
DQN算法的核心思路有以下几点:
(1)使用深度学习网络标识Q函数,训练的数据是状态s,训练的标签是状态s对应的每个动作的Q值,即标签是由Q值组成的向量,向量的长度与动作空间的长度相同。
(2)动作选择的算法使用e贪婪算法,其中e可以是静态的也可以是随着时间动态变化的。
(3)Q值的更新与QLearning算法相同。
(4)定义一段所谓的记忆体,在记忆体中保存具体某一时刻的当
前状态、奖励、动作、迁移到的下一个状态、状态是否结束等信息,定期从记忆体中随机选择固定大小的一段记忆,用于训练深度神经网络。
MalwareEnvironment模块是基于OpenAIGym环境开发的,其主要提供setp和reset两个函数接口,另外还定义一些内部函数。
Init函数:Init函数主要创建Malware Environment时完成系列初始化工作,比如初始化动作空间和特征提取的对象PE Feature Extractor。
Step函数:Step函数完成了最重要的动作执行、病毒检测以及反馈状态的功能。Step函数的输入通常是数字型,表示的是动作对应的序号action_index.动作的序号可以通过转换表对应成函数名,然后使用函数名调用对应的函数即可。
Reset y数:Reset函数负责重置环境的状态,并随机从样本中选择一个,转换成特征向量后作为初始状态。
如图2所示,该系统200包括:
特征提取单元210,用于对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
特征修改单元220,用于利用预先构建的强化学习模型从多种规避行为所述第一特征向量选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
检测优化单元230,用于利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则。
可选地,作为本发明一个实施例,特征提取单元用于:
直接从静态可移植可执行文件提取数组信息,所述数组信息包括文件字节直方图、文本特征、字节熵直方图和字节串特征;
对静态可移植可执行文件的结构进行解析,从各个字节分析出文件信息,所述文件信息包括字节头特征,导入和导出表特征,文件头特征。
可选地,作为本发明一个实施例,特征修改单元用于:
所述强化学习模型基于第一特征向量的状态为第一特征向量选取可用规避行为,并基于Q函数总结的修改策略从可用规避行为中选取目标规避行为;
多种规避行为包括:将函数添加到从未使用的导入地址表中、操纵现有的段落的名称、创建新的段落、在节的末尾将字节附加到额外的空格、创建一个新的入口点,立即跳转到原始入口点、删除签名者信息、操纵调试信息、包装或拆包、修改或中断头部校验和、将字节附加到叠加层。
可选地,作为本发明一个实施例,检测优化单元用于:
在所述恶意软件检测程序加载训练好的加法模型,并定义全局阈值,所述全局阈值用于所述加法模型输出判别结果;
所述加法模型基于云端训练集进行训练,所述云端训练集包括从云端搜集的海量恶意软件样本和正常文件样本,且所述加法模型在GPU服务器上完成训练;
所述加法模型对所述第二特征向量进行检测,并将第二特征向量作为恶意软件学习样本进行优化。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的恶意软件检测优化方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:readonly memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明利用基于强化学习的全面且多样的恶意软件对抗样本,实现程序安全免杀子系统中对抗性攻击载荷生成模块,利用深度强化学习技术在黑盒模式下构建对抗性恶意软件,从而规避智能化防病毒软件的检测。本发明通过对抗学习不断丰富恶意软件检测工具的恶意检测策略,优化了恶意软件检测工具的准确度,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,ReadOnly Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种恶意软件检测优化方法,其特征在于,包括:
对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
利用预先构建的强化学习模型基于所述第一特征向量从多种规避行为中选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则;
利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则,包括:
在所述恶意软件检测程序加载训练好的加法模型,并定义全局阈值,所述全局阈值用于所述加法模型输出判别结果;
所述加法模型基于云端训练集进行训练,所述云端训练集包括从云端搜集的海量恶意软件样本和正常文件样本,且所述加法模型在GPU服务器上完成训练;
所述加法模型对所述第二特征向量进行检测,并将第二特征向量作为恶意软件学习样本进行优化。
2.根据权利要求1所述的方法,其特征在于,对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量,包括:
直接从静态可移植可执行文件提取数组信息,所述数组信息包括文件字节直方图、文本特征、字节熵直方图和字节串特征;
对静态可移植可执行文件的结构进行解析,从各个字节分析出文件信息,所述文件信息包括字节头特征,导入和导出表特征,文件头特征。
3.根据权利要求1所述的方法,其特征在于,利用预先构建的强化学习模型基于所述第一特征向量从多种规避行为中选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量,包括:
所述强化学习模型基于第一特征向量的状态为第一特征向量选取可用规避行为,并基于Q函数总结的修改策略从可用规避行为中选取目标规避行为;
多种规避行为包括:将函数添加到从未使用的导入地址表中、操纵现有的段落的名称、创建新的段落、在节的末尾将字节附加到额外的空格、创建一个新的入口点,立即跳转到原始入口点、删除签名者信息、操纵调试信息、包装或拆包、修改或中断头部校验和、将字节附加到叠加层。
4.一种恶意软件检测优化系统,其特征在于,包括:
特征提取单元,用于对恶意软件生成的静态可移植可执行文件进行特征提取,得到第一特征向量;
特征修改单元,用于利用预先构建的强化学习模型基于所述第一特征向量从多种规避行为中选择目标规避行为,并根据所述目标规避行为将所述第一特征向量修改为第二特征向量;
检测优化单元,用于利用需要优化的恶意软件检测程序对所述第二特征向量进行检测,并将检测结果反馈至所述强化学习模型以提高强化学习模型选择规避行为的准确度,所述恶意软件检测程序利用不断修改的静态可移植可执行文件优化检测规则;
检测优化单元用于:
在所述恶意软件检测程序加载训练好的加法模型,并定义全局阈值,所述全局阈值用于所述加法模型输出判别结果;
所述加法模型基于云端训练集进行训练,所述云端训练集包括从云端搜集的海量恶意软件样本和正常文件样本,且所述加法模型在GPU服务器上完成训练;
所述加法模型对所述第二特征向量进行检测,并将第二特征向量作为恶意软件学习样本进行优化。
5.根据权利要求4所述的系统,其特征在于,特征提取单元用于:
直接从静态可移植可执行文件提取数组信息,所述数组信息包括文件字节直方图、文本特征、字节熵直方图和字节串特征;
对静态可移植可执行文件的结构进行解析,从各个字节分析出文件信息,所述文件信息包括字节头特征,导入和导出表特征,文件头特征。
6.根据权利要求4所述的系统,其特征在于,特征修改单元用于:
所述强化学习模型基于第一特征向量的状态为第一特征向量选取可用规避行为,并基于Q函数总结的修改策略从可用规避行为中选取目标规避行为;
多种规避行为包括:将函数添加到从未使用的导入地址表中、操纵现有的段落的名称、创建新的段落、在节的末尾将字节附加到额外的空格、创建一个新的入口点,立即跳转到原始入口点、删除签名者信息、操纵调试信息、包装或拆包、修改或中断头部校验和、将字节附加到叠加层。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210930103.2A CN115168857B (zh) | 2022-08-03 | 2022-08-03 | 恶意软件检测优化方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210930103.2A CN115168857B (zh) | 2022-08-03 | 2022-08-03 | 恶意软件检测优化方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168857A CN115168857A (zh) | 2022-10-11 |
CN115168857B true CN115168857B (zh) | 2023-08-22 |
Family
ID=83477094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210930103.2A Active CN115168857B (zh) | 2022-08-03 | 2022-08-03 | 恶意软件检测优化方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168857B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361239B (zh) * | 2023-05-24 | 2023-07-28 | 成都交大光芒科技股份有限公司 | 基于对象特征的对象识别同步方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826059A (zh) * | 2019-09-19 | 2020-02-21 | 浙江工业大学 | 面向恶意软件图像格式检测模型的黑盒攻击的防御方法及其装置 |
CN111552971A (zh) * | 2020-04-30 | 2020-08-18 | 四川大学 | 基于深度强化学习的恶意软件家族分类规避方法 |
CN113158190A (zh) * | 2021-04-30 | 2021-07-23 | 河北师范大学 | 一种基于生成式对抗网络的恶意代码对抗样本自动生成方法 |
CN114143024A (zh) * | 2021-10-26 | 2022-03-04 | 广州大学 | 基于生成对抗网络的黑盒恶意软件检测对抗样本生成方法及装置 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
-
2022
- 2022-08-03 CN CN202210930103.2A patent/CN115168857B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826059A (zh) * | 2019-09-19 | 2020-02-21 | 浙江工业大学 | 面向恶意软件图像格式检测模型的黑盒攻击的防御方法及其装置 |
CN111552971A (zh) * | 2020-04-30 | 2020-08-18 | 四川大学 | 基于深度强化学习的恶意软件家族分类规避方法 |
CN113158190A (zh) * | 2021-04-30 | 2021-07-23 | 河北师范大学 | 一种基于生成式对抗网络的恶意代码对抗样本自动生成方法 |
CN114143024A (zh) * | 2021-10-26 | 2022-03-04 | 广州大学 | 基于生成对抗网络的黑盒恶意软件检测对抗样本生成方法及装置 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115168857A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210194900A1 (en) | Automatic Inline Detection based on Static Data | |
Anderson et al. | Evading machine learning malware detection | |
Xu et al. | Hadm: Hybrid analysis for detection of malware | |
US20190273510A1 (en) | Classification of source data by neural network processing | |
US20190273509A1 (en) | Classification of source data by neural network processing | |
CN109145600B (zh) | 使用静态分析元素检测恶意文件的系统和方法 | |
CN111614599B (zh) | 基于人工智能的webshell检测方法和装置 | |
CN110826064A (zh) | 一种恶意文件的处理方法、装置、电子设备以及存储介质 | |
CN106997367B (zh) | 程序文件的分类方法、分类装置和分类系统 | |
JP2019192198A (ja) | 悪意あるコンテナを検出するための機械学習モデルをトレーニングするシステムおよび方法 | |
CN114266050B (zh) | 一种跨平台恶意软件对抗样本生成方法及系统 | |
CN115168857B (zh) | 恶意软件检测优化方法、系统、终端及存储介质 | |
CN105653949B (zh) | 一种恶意程序检测方法及装置 | |
CN115730313A (zh) | 一种恶意文档检测方法、装置、存储介质及设备 | |
CN112231645A (zh) | 一种基于主动学习的恶意pdf文档检测方法 | |
CN110826062B (zh) | 恶意软件的检测方法及装置 | |
WO2023072002A1 (zh) | 开源组件包的安全检测方法及装置 | |
CN114726823B (zh) | 一种基于生成对抗网络的域名生成方法、装置和设备 | |
CN115883261A (zh) | 一种基于att和ck的电力系统apt攻击建模方法 | |
Wang et al. | Black-Box Adversarial Windows Malware Generation via United Puppet-based Dropper and Genetic Algorithm | |
CN111881047B (zh) | 混淆脚本的处理方法及装置 | |
CN114968750A (zh) | 基于人工智能的测试用例生成方法、装置、设备和介质 | |
CN115080974B (zh) | 一种恶意pe文件检测方法、装置、设备及介质 | |
Boillat | DDoSGrid-Mining: Analyzing and Classifying DDoS Attack Traffic | |
JPWO2020090077A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム |
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 |