CN111797397A - 恶意代码可视化及变种检测方法、设备及存储介质 - Google Patents
恶意代码可视化及变种检测方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111797397A CN111797397A CN202010600579.0A CN202010600579A CN111797397A CN 111797397 A CN111797397 A CN 111797397A CN 202010600579 A CN202010600579 A CN 202010600579A CN 111797397 A CN111797397 A CN 111797397A
- Authority
- CN
- China
- Prior art keywords
- malicious code
- malicious
- visualization
- preset
- modal
- 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
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种恶意代码可视化及变种检测方法、设备及存储介质,所述恶意代码可视化及变种检测方法通过将恶意代码转化为一维时间序列信号,以便获取恶意代码的时间序列信号特征,相比提取静态语义特征以及二维图像纹理特征,大大减小了时间开销;通过分离出多个固有模态分量并得到经验模态分解谱,再进行可视化处理,便于从视觉上直观感知各个变种的共同之处和细微差异,为理解和掌握该家族变种演化提供了依据;通过由模态分解谱样本训练的分类器对恶意代码进行变种检测,使得对恶意代码的本源分析更加快速准确。本发明的可视化分析能够采用程序化的方式执行,相比恶意代码静态语义特征的分析,降低了恶意代码分析人员的专业技术要求。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种恶意代码可视化及变种检测方法、设备及存储介质。
背景技术
据统计目前国际上有数万种病毒,而变种病毒却有成百上千万,恶意代码变种率从2011年的每个家族变种率为5:1,到如今1000:1以上。研究表明绝大多数的新型恶意代码都是由已知的恶意代码变异而得,而这样的变种恶意代码间只有不到2%的代码差异,这给分析恶意代码的安全研究人员提供了变种检测依据,通过检测恶意代码核心模块的相似度来对恶意代码进行变种检测。恶意代码变种检测已经成为了恶意代码检测的重点和难点。
目前,恶意代码可视化及变种检测方法从所采用的特征角度来看,主要有以下两种:基于静态语义特征的方法和基于图像纹理特征的方法。基于静态语义特征的方法主要是从恶意代码中提取操作码序列、应用程序接口(API,Application ProgrammingInterface)函数调用序列、控制流、数据流和程序依赖关系等进行分析。这种方法对程序代码的分析依赖于反汇编代码的精度,且通常会涉及判断子图同构的问题,而判断子图同构问题是NP完全(Non-deterministic Polynomial Complete)问题,判断过程耗时较长。基于图像纹理特征的方法)需要从图像这种二维数据提取特征,特征提取过程比较复杂,运行效率也比较低。故上述的种种情况均反映出现有的恶意代码可视化及变种检测方法的效率低下的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种恶意代码可视化及变种检测方法,旨在解决现有的恶意代码变种检测方法的效率低下的技术问题,其可视化方法可从视觉上直观感知各个变种的共同之处和细微差异,为理解和掌握该家族变种演化提供了依据。。
为实现上述目的,本发明提供一种恶意代码可视化及变种检测方法,所述恶意代码可视化及变种检测方法包括:
在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;
基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;
使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。
可选地,所述基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱的步骤包括:
获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量;
从所述一维时间序列信号中分离出所述固有模态分量,将分离后的一维时间序列信号作为下一轮迭代所需的剩余时间序列信号,并基于所述剩余时间序列信号自适应计算下一轮迭代的固有模态分量;
直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程,并将各轮迭代所得的多个固有模态分量堆叠成所述恶意代码对应的经验模态分解谱。
可选地,所述获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量的步骤包括:
获取所述一维时间序列信号的局部极值点,并对所述局部极值点进行样条插值处理,以得到所述一维时间序列信号对应的上下包络线;
获取所述上下包络线的均值,并计算所述一维时间信号与所述上下包络线的均值之间的信号差值;
判断所述信号差值是否满足预设固有模态分量条件;
若是,则将所述信号差值作为首轮迭代中的固有模态分量。
可选地,所述直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程的步骤包括:
直至检测到当前轮数迭代中所得的固有模态分量为单调函数或常量时,结束当前迭代过程。
可选地,所述使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息的步骤包括:
将所述恶意代码对应的经验模态分解谱,或从所述恶意代码对应的经验模态分解谱中提取出的时间序列特征输入所述恶意代码分类器;
使用所述恶意代码分类器判断所述恶意代码是否属于已有恶意代码的变种;
若是,则获取并输出所述已有恶意代码的家族信息,以将所述已有恶意代码的家族信息作为所述恶意代码的本源信息;
若否,则将所述恶意代码列为新型恶意代码家族,并生成新型家族信息,以将所述新型家族信息作为所述恶意代码的本源信息。
可选地,所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤包括:
在接收到恶意代码检测指令时,获取所述恶意代码检测指令中包含所述恶意代码的二进制可执行文件,并按照每预设二进制位数对应一无符号整数的转换规则,将所述恶意代码转换为一维整数数组;
将所述一维整数数组按照预设采样规则进行下采样,得到并输出所述一维时间序列信号。
可选地,所述恶意代码分类器包括第一恶意代码分类器,
所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤之前,还包括:
获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库;
将所述模态分解谱样本数据库中的模态分解谱样本分为第一训练集与第一测试集,并基于预设第一分类算法,对所述第一训练集与第一测试集进行交叉验证,以得到第一恶意代码分类器。
可选地,所述恶意代码分类器包括第二恶意代码分类器,
所述获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库的步骤之后,还包括:
对所述模态分解谱样本数据库中的模态分解谱样本提取样本时间序列特征,以生成所述恶意代码样本对应的模态分解谱样本及特征数据库;
将所述模态分解谱样本及特征数据库中的数据分为第二训练集与第二测试集,并基于预设第二分类算法,对所述第二训练集与第二测试集进行交叉验证,以得到第二恶意代码分类器。
此外,为实现上述目的,本发明还提供一种恶意代码变种检测系统,所述恶意代码变种检测系统包括:
序列转换模块,用于在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;
模态分解模块,用于基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;
变种检测模块,用于使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。
可选地,所述模态分解模块包括:
首轮确定单元,用于获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量;
分离迭代单元,用于从所述一维时间序列信号中分离出所述固有模态分量,将分离后的一维时间序列信号作为下一轮迭代所需的剩余时间序列信号,并基于所述剩余时间序列信号自适应计算下一轮迭代的固有模态分量;
分量堆叠单元,用于直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程,并将各轮迭代所得的多个固有模态分量堆叠成所述恶意代码对应的经验模态分解谱。
可选地,所述首轮确定单元还用于:
获取所述一维时间序列信号的局部极值点,并对所述局部极值点进行样条插值处理,以得到所述一维时间序列信号对应的上下包络线;
获取所述上下包络线的均值,并计算所述一维时间信号与所述上下包络线的均值之间的信号差值;
判断所述信号差值是否满足预设固有模态分量条件;
若是,则将所述信号差值作为首轮迭代中的固有模态分量。
可选地,所述分量堆叠单元还用于:
直至检测到当前轮数迭代中所得的固有模态分量为单调函数或常量时,结束当前迭代过程。
可选地,所述变种检测模块包括:
模型输入单元,用于将所述恶意代码对应的经验模态分解谱,或从所述恶意代码对应的经验模态分解谱中提取出的时间序列特征输入所述恶意代码分类器;
变种判断单元,用于使用所述恶意代码分类器判断所述恶意代码是否属于已有恶意代码的变种;
第一判定单元,用于若是,则获取并输出所述已有恶意代码的家族信息,以将所述已有恶意代码的家族信息作为所述恶意代码的本源信息;
第二判定单元,用于若否,则将所述恶意代码列为新型恶意代码家族,并生成新型家族信息,以将所述新型家族信息作为所述恶意代码的本源信息。
可选的,所述序列转换模块包括:
数组转换单元,用于在接收到恶意代码检测指令时,获取所述恶意代码检测指令中包含所述恶意代码的二进制可执行文件,并按照每预设二进制位数对应一无符号整数的转换规则,将所述恶意代码转换为一维整数数组;
序列输出单元,用于将所述一维整数数组按照预设采样规则进行下采样,得到并输出所述一维时间序列信号。
可选地,所述恶意代码分类器包括第一恶意代码分类器,
所述恶意代码变种检测系统还包括:
模态分解模块,用于获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库;
第一数据训练模块,用于将所述模态分解谱样本数据库中的模态分解谱样本分为第一训练集与第一测试集,并基于预设第一分类算法,对所述第一训练集与第一测试集进行交叉验证,以得到第一恶意代码分类器。
可选地,所述恶意代码分类器包括第二恶意代码分类器,
所述恶意代码变种检测系统还包括:
特征提取模块,用于对所述模态分解谱样本数据库中的模态分解谱样本提取样本时间序列特征,以生成所述恶意代码样本对应的模态分解谱样本及特征数据库;
第二数据训练模块,用于将所述模态分解谱样本及特征数据库中的数据分为第二训练集与第二测试集,并基于预设第二分类算法,对所述第二训练集与第二测试集进行交叉验证,以得到第二恶意代码分类器。
此外,为实现上述目的,本发明还提供一种恶意代码可视化及变种检测设备,所述恶意代码可视化及变种检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的恶意代码可视化及变种检测程序,所述恶意代码可视化及变种检测程序被所述处理器执行时实现如上述的恶意代码可视化及变种检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有恶意代码可视化及变种检测程序,所述恶意代码可视化及变种检测程序被处理器执行时实现如上述的恶意代码可视化及变种检测方法的步骤。
本发明提供一种恶意代码可视化及变种检测方法、设备及计算机可读存储介质。所述恶意代码可视化及变种检测方法通过在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。通过上述方式,本发明通过将恶意代码按照预设转换规则转化为一维时间序列信号,以便获取恶意代码的时间序列信号特征,相比提取静态语义特征以及二维图像纹理特征,大大减小了时间开销;通过分离出多个固有模态分量并得到恶意代码所对应的经验模态分解谱,再将经验模态分解谱进行可视化处理,便于从视觉上直观感知各个变种的共同之处和细微差异,为理解和掌握该家族变种演化提供了依据;通过由模态分解谱样本训练的分类器对恶意代码进行变种检测,使得对恶意代码的本源分析更加快速准确。本发明的可视化分析能够采用程序化的方式执行,相比恶意代码静态语义特征的分析,降低了恶意代码分析人员的专业技术要求,从而解决了现有的恶意代码可视化及变种检测方法的效率低下的技术问题。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的恶意代码可视化及变种检测设备结构示意图;
图2为本发明恶意代码可视化及变种检测方法第一实施例的流程示意图;
图3为本发明恶意代码可视化及变种检测方法一具体实施例中Adialer.C恶意代码的EMD谱图;
图4为本发明恶意代码可视化及变种检测方法一具体实施例中Dialplatform.B恶意代码的EMD谱图;
图5为本发明恶意代码可视化及变种检测方法一具体实施例中Fakerean恶意代码的EMD谱图;
图6为本发明恶意代码可视化及变种检测方法一具体实施例中BANCOS恶意代码的EMD谱图;
图7为本发明恶意代码可视化及变种检测方法一具体实施例中Malimg恶意代码分类混淆矩阵示意图;
图8为本发明恶意代码可视化及变种检测方法一具体实施例中Malheur恶意代码分类混淆矩阵示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的恶意代码可视化及变种检测设备结构示意图。
本发明实施例恶意代码可视化及变种检测设备可以是PC、平板电脑等具有显示功能的终端设备。
如图1所示,该恶意代码可视化及变种检测设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的恶意代码可视化及变种检测设备结构并不构成对恶意代码可视化及变种检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及恶意代码可视化及变种检测程序。
在图1所示的恶意代码可视化及变种检测设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的恶意代码可视化及变种检测程序,并执行以下操作:
在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;
基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;
使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。
进一步地,所述基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱的步骤包括:
获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量;
从所述一维时间序列信号中分离出所述固有模态分量,将分离后的一维时间序列信号作为下一轮迭代所需的剩余时间序列信号,并基于所述剩余时间序列信号自适应计算下一轮迭代的固有模态分量;
直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程,并将各轮迭代所得的多个固有模态分量堆叠成所述恶意代码对应的经验模态分解谱。
进一步地,所述获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量的步骤包括:
获取所述一维时间序列信号的局部极值点,并对所述局部极值点进行样条插值处理,以得到所述一维时间序列信号对应的上下包络线;
获取所述上下包络线的均值,并计算所述一维时间信号与所述上下包络线的均值之间的信号差值;
判断所述信号差值是否满足预设固有模态分量条件;
若是,则将所述信号差值作为首轮迭代中的固有模态分量。
进一步地,所述直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程的步骤包括:
直至检测到当前轮数迭代中所得的固有模态分量为单调函数或常量时,结束当前迭代过程。
进一步地,所述使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息的步骤包括:
将所述恶意代码对应的经验模态分解谱,或从所述恶意代码对应的经验模态分解谱中提取出的时间序列特征输入所述恶意代码分类器;
使用所述恶意代码分类器判断所述恶意代码是否属于已有恶意代码的变种;
若是,则获取并输出所述已有恶意代码的家族信息,以将所述已有恶意代码的家族信息作为所述恶意代码的本源信息;
若否,则将所述恶意代码列为新型恶意代码家族,并生成新型家族信息,以将所述新型家族信息作为所述恶意代码的本源信息。
进一步地,所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤包括:
在接收到恶意代码检测指令时,获取所述恶意代码检测指令中包含所述恶意代码的二进制可执行文件,并按照每预设二进制位数对应一无符号整数的转换规则,将所述恶意代码转换为一维整数数组;
将所述一维整数数组按照预设采样规则进行下采样,得到并输出所述一维时间序列信号。
进一步地,所述恶意代码分类器包括第一恶意代码分类器,
所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤之前,处理器1001可以用于调用存储器1005中存储的恶意代码可视化及变种检测程序,并执行以下操作:
获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库;
将所述模态分解谱样本数据库中的模态分解谱样本分为第一训练集与第一测试集,并基于预设第一分类算法,对所述第一训练集与第一测试集进行交叉验证,以得到第一恶意代码分类器。
进一步地,所述恶意代码分类器包括第二恶意代码分类器,
所述获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库的步骤之后,处理器1001可以用于调用存储器1005中存储的恶意代码可视化及变种检测程序,并执行以下操作:
对所述模态分解谱样本数据库中的模态分解谱样本提取样本时间序列特征,以生成所述恶意代码样本对应的模态分解谱样本及特征数据库;
将所述模态分解谱样本及特征数据库中的数据分为第二训练集与第二测试集,并基于预设第二分类算法,对所述第二训练集与第二测试集进行交叉验证,以得到第二恶意代码分类器。
基于上述硬件结构,提出本发明恶意代码可视化及变种检测方法的各个实施例。
据统计目前国际上有数万种病毒,而变种病毒却有成百上千万,恶意代码变种率从2011年的每个家族变种率为5:1,到如今1000:1以上。研究表明绝大多数的新型恶意代码都是由已知的恶意代码变异而得,而这样的变种恶意代码间只有不到2%的代码差异,这给分析恶意代码的安全研究人员提供了变种检测依据,通过检测恶意代码核心模块的相似度来对恶意代码进行变种检测。恶意代码变种检测已经成为了恶意代码检测的重点和难点。
目前,恶意代码可视化及变种检测方法从所采用的特征角度来看,主要有以下两种:基于静态语义特征的方法和基于图像纹理特征的方法。基于静态语义特征的方法主要是从恶意代码中提取操作码序列、应用程序接口(API,Application ProgrammingInterface)函数调用序列、控制流、数据流和程序依赖关系等进行分析。这种方法对程序代码的分析依赖于反汇编代码的精度,且通常会涉及判断子图同构的问题,而判断子图同构问题是NP完全(Non-deterministic Polynomial Complete)问题,判断过程耗时较长。基于图像纹理特征的方法)需要从图像这种二维数据提取特征,特征提取过程比较复杂,运行效率也比较低。故上述的种种情况均反映出现有的恶意代码可视化及变种检测方法的效率低下的技术问题。
为解决上述问题,本发明提供一种恶意代码可视化及变种检测方法,即将恶意代码按照预设转换规则转化为一维时间序列信号,以便获取恶意代码的时间序列信号特征,相比提取静态语义特征以及二维图像纹理特征,大大减小了时间开销;通过分离出多个固有模态分量并得到恶意代码所对应的经验模态分解谱,再将经验模态分解谱进行可视化处理,便于从视觉上直观感知各个变种的共同之处和细微差异,为理解和掌握该家族变种演化提供了依据;通过由模态分解谱样本训练的分类器对恶意代码进行变种检测,使得对恶意代码的本源分析更加快速准确。本发明的可视化分析能够采用程序化的方式执行,相比恶意代码静态语义特征的分析,降低了恶意代码分析人员的专业技术要求,从而解决了现有的恶意代码可视化及变种检测方法的效率低下的技术问题。所述恶意代码可视化及变种检测方法应用于装有恶意代码变种检测系统的终端设备。
参照图2,图2为恶意代码可视化及变种检测方法第一实施例的流程示意图。
本发明第一实施例提供一种恶意代码可视化及变种检测方法,所述恶意代码可视化及变种检测方法包括以下步骤:
步骤S10,在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;
在本实施例中,恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒、特洛伊木马、计算机蠕虫、后门、逻辑炸弹等。恶意代码通常记录于二进制可执行文件中。恶意代码检测指令的触发方式可为用户在终端上触发,或是终端根据预设程序自动触发等,本实施例对此不做限制。装有恶意代码变种检测系统的终端接收到当前的恶意代码检测指令时,通过指令获取当前需要检测的恶意代码文件时,从恶意代码文件中读取恶意代码数据,并按照预设读取规则,将二进制的恶意代码数据转换成多个一维无符号整数数组。例如,读取规则为,每八位二进制数据读取成一个对应的取值范围在0至255的无符号整数,则可将当前恶意代码文件中所有的二进制恶意代码数据全部转换为对应的一维整数数组。系统将二进制恶意代码数据转换得到的一维整数数组视为一维样值时间序列信号,并按照固定长度或是一定比例进行下采样,即可在一维样值时间序列信号的基础上得到一维时间序列信号。其中,对于一个样值序列间隔几个样值取样一次,这样得到新序列就是原序列的下采样。需要说明的是,恶意代码所对应的一维时间序列可对用户进行显示,以增强恶意代码变种检测的可视性。
步骤S20,基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;
在本实施例中,经验模态分解(EMD,Empirical Mode Decomposition)算法,能使复杂信号分解为有限个固有模态分量(IMF,Intrinsic Mode Function),所分解出来的各IMF分量包含了原信号的不同时间尺度的局部特征信号。经验模态分解法能使非平稳数据进行平稳化处理,然后进行希尔伯特变换获得时频谱图,得到有物理意义的频率。因为基函数是由数据本身所分解得到。由于分解是基于信号序列时间尺度的局部特性,因此具有自适应性。
系统先对恶意代码所转换成的一维时间序列信号作为信号的实函数进行经验模态分解。具体地,系统先找出信号所有的极大值点并用三次样条插值函数拟合形成信号的上包络线;同样,找出所有的极小值点,并将所有的极小值点通过三次样条插值函数拟合形成信号的下包络线,从而得到上下包络线的平均包络。将原信号减去该平均包络,得到两者之间的差值,判断该差值是否满足固有模态分量标准。其中,固有模态分量标准包括:在整个数据范围内,局部极值点和过零点的数目必须相等,或者相差数目最多为1;在任意时刻,局部最大值的包络(上包络线)和局部最小值的包络(下包络线)的平均值必须为零。若该差值是否满足固有模态分量标准,则将该差值作为本次模态抽取过程中的固有模态分量,并将此固有模态分量从原信号中分离出去,基于分离后的信号进行模态抽取迭代,直至系统检测到当前满足迭代收敛条件时,结束迭代过程,将整个迭代过程中得到的多个固有模态分量堆叠成待检测恶意代码所对应的经验模态分解谱,并将其显示在屏幕上。
需要说明的是,系统在屏幕上显示当前所检测的恶意代码对应的经验模态分解谱,以便用户直观地对当前所检测的恶意代码的经验模态分解谱进行特征分析,分析其同源性,以实现本发明的可视化。也即是本发明可提供两种对于恶意代码的同源性分析方式,第一种是直接通过已训练的恶意代码分类器对恶意代码进行检测,输出对其的同源性分析结果,第二种是通过显示出恶意代码所对应的经验模态分解谱,分析人员通过直观分析得到恶意代码的本源信息。另外,两种分析方式也可结合进行,本实施例对此不做限制。
步骤S30,使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。
在本实施例中,可以理解的是,预设恶意代码分类器是预先根据恶意代码样本的模态分解谱样本训练所得,具体的训练方式既可为直接使用恶意代码样本的模态分解谱样本进行机器学习训练,也可为先提取模态分解谱样本的时间序列信号特征后,再使用时间序列信号特征进行机器学习训练。训练过程中具体采用的分类算法可为贝叶斯分类器,K最近邻(kNN,k-NearestNeighbor),支持向量机(SVM,Support Vector Machine),决策树等,可根据实际情况灵活选择,本实施例对此不作具体限定。将当前需要检测的恶意代码所对应的经验模态分解谱作为恶意代码分类器的输入,或提取出经验模态分解谱的时间序列特征,将其时间序列特征作为恶意代码分类器的输入,分类器即可依据模态分解谱或是时间序列特征对恶意代码进行同源性分析,最终输出当前待检测恶意代码的本源信息。另外,在当前所要检测的恶意代码在经过恶意代码分类器的同源性分析后,也可作为新的恶意代码样本对分类器进行训练,以进一步优化分类器的判别性能。
作为一具体实施例。系统在获取到当前需要检测的恶意代码文件时,将此恶意代码二进制可执行文件中的数据按照每8位对应一无符号整数的转换规则进行转换,即可将恶意代码的二进制数据转换为一维整数数组,并将此一维整数数据看作是恶意代码的样本时间序列信号,对其进行下采样,得到恶意代码的时间序列信号。系统再对恶意代码的时间序列信号进行小波变换或小波包变换,得到信号的多个低频分量与高频分量,将其堆叠后生成恶意代码的经验模态分解谱并显示出来,以供分析人员进行直观分析。同时,系统可将恶意代码的经验模态分解谱,或是从该经验模态分解谱中提取出的时间序列信号特征作为分类器的输入,通过恶意代码分类器对恶意代码进行变种检测,即可直接得到恶意代码的检测结果。
在本实施例中,通过在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。通过上述方式,本发明通过将恶意代码按照预设转换规则转化为一维时间序列信号,以便获取恶意代码的时间序列信号特征,相比提取静态语义特征以及二维图像纹理特征,大大减小了时间开销;通过分离出多个固有模态分量并得到恶意代码所对应的经验模态分解谱,再将经验模态分解谱进行可视化处理,便于从视觉上直观感知各个变种的共同之处和细微差异,为理解和掌握该家族变种演化提供了依据;通过由模态分解谱样本训练的分类器对恶意代码进行变种检测,使得对恶意代码的本源分析更加快速准确。本发明的可视化分析能够采用程序化的方式执行,相比恶意代码静态语义特征的分析,降低了恶意代码分析人员的专业技术要求,从而解决了现有的恶意代码可视化及变种检测方法的效率低下的技术问题。
进一步地,图中未示的,基于上述图2所示的第一实施例,提出本发明恶意代码可视化及变种检测方法的第二实施例。在本实施例中,所述基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱的步骤包括:
获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量;
从所述一维时间序列信号中分离出所述固有模态分量,将分离后的一维时间序列信号作为下一轮迭代所需的剩余时间序列信号,并基于所述剩余时间序列信号自适应计算下一轮迭代的固有模态分量;
直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程,并将各轮迭代所得的多个固有模态分量堆叠成所述恶意代码对应的经验模态分解谱。
进一步地,在本实施例中,所述获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量的步骤包括:
获取所述一维时间序列信号的局部极值点,并对所述局部极值点进行样条插值处理,以得到所述一维时间序列信号对应的上下包络线;
获取所述上下包络线的均值,并计算所述一维时间信号与所述上下包络线的均值之间的信号差值;
判断所述信号差值是否满足预设固有模态分量条件;
若是,则将所述信号差值作为首轮迭代中的固有模态分量。
在本实施例中,对于EMD算法的说明如下:
将一维时间序列信号表示为原始信号s(t),t∈[1,n],并对原始信号进行初始化。
第一步,找出原始信号s(t)中的所有局部极值点,即极大值点和极小值点。通过三次样条函数分别插值拟合得到上包络线smax(t)、下包络线smin(t);
第二步,计算极值点上下包络线的均值,记为m10(t),即:
第三步,计算原始信号s(t)与上下包络线的均值m10(t)的差值,记为h10(t),即:
h10(t)=s(t)-m10(t)
第四步,验证h10(t)是否满足IMF的条件。IMF的条件为:在整个数据范围内,局部极值点S=(s1,s2,…,sn)和过零点的数目必须相等,或者相差数目最多为1,且在任意时刻,局部最大值的包络(上包络线)和局部最小值的包络(下包络线)的平均值必须为零。若h10(t)满足IMF的条件,则令imf1(t)=h10(t);否则,将h10(t)作为新的时间序列信号,按1至3步,重复i次,直到h1i(t)满足IMF的条件为止,至此得到信号imf1(t),即:
imf1(t)=h1i(t)
第五步:将imf1(t)从原始信号s(t)中分离出去,得到信号r1(t),即:
r1(t)=s(t)-imf1(t)
第六步,将r1(t)视为新的时间序列信号,重复以上步骤,进行自适应迭代,得到其他的IMF分量;
第七步,直至系统检测到当前轮数迭代过程中所得到的IMF分量满足预设的迭代收敛条件时,结束当前的迭代分解过程。设此时的迭代轮数为m,最后一轮迭代所得的IMF分量记为分量rm(t),称为EMD分解的残余分量。
这时原始信号s(t)经过EMD分解后可以表示为有限个固有模态函数与余量的和:
如图3所示,图3为Adialer.C(一种病毒名称)恶意代码的EMD谱图;如图4所示,图4为Dialplatform.B(一种病毒名称)恶意代码的EMD谱图;如图5所示,图5为Fakerean(一种病毒名称)恶意代码的EMD谱图;如图6所示,图6为BANCOS(一种病毒名称)恶意代码的EMD谱图。上图中横坐标均表示频率,纵坐标均表示幅值。
进一步地,在本实施例中,所述直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程的步骤包括:
直至检测到当前轮数迭代中所得的固有模态分量为单调函数或常量时,结束当前迭代过程。
在本实施例中,预设迭代收敛条件可为该固有模态分量为单调函数,或是该固有模态分量为常量。另外,还可根据实际情况预设一个最大迭代次数阈值,以避免迭代次数过多为系统带来的无谓资源消耗。
进一步地,在本实施例中,步骤S30包括:
将所述恶意代码对应的经验模态分解谱,或从所述恶意代码对应的经验模态分解谱中提取出的时间序列特征输入所述恶意代码分类器;
使用所述恶意代码分类器判断所述恶意代码是否属于已有恶意代码的变种;
若是,则获取并输出所述已有恶意代码的家族信息,以将所述已有恶意代码的家族信息作为所述恶意代码的本源信息;
若否,则将所述恶意代码列为新型恶意代码家族,并生成新型家族信息,以将所述新型家族信息作为所述恶意代码的本源信息。
在本实施例中,待测时间序列特征为利用已训练的分类器对待测恶意代码进行变种检测时,从待检测的恶意代码所对应的经验模态分解谱中提取出的时间序列特征。若当前所使用的分类器是采用第一种训练方式训练所得,则将当前所要检测的恶意代码所对应的经验模态分解谱作为预先已训练好的用于恶意代码同源性分析的恶意代码分类器的输入;若当前所使用的分类器是采用第二种训练方式训练所得,则先对当前所要检测的恶意代码所对应的经验模态分解谱进行时间序列特征提取,再将提取出的待测时间序列特征作为预先已训练好的用于恶意代码同源性分析的恶意代码分类器的输入。分类器即可对其进行变种检测,判断当前所要检测的恶意代码是否为已有恶意代码的变种。若系统判定当前所要检测的恶意代码为已有恶意代码的变种,则获取与当前恶意代码同源的已有恶意代码的所属家族信息并作为其本源信息进行显示,以便用户获知当前所检测的恶意代码为已有恶意代码的变种;若系统判定当前所要检测的恶意代码并非已有恶意代码的变种,也即是当前的恶意代码不与任何一种已知的恶意代码同源,则将该恶意代码列为一种新型恶意代码家族,将其整合后生成恶意代码的本源信息,同时可输出为查询到本源信息的相关提示信息,以便用户获知该恶意代码不与已有恶意代码同源,是一种新型恶意代码。
进一步地,在本实施例中,步骤S10包括:
在接收到恶意代码检测指令时,获取所述恶意代码检测指令中包含所述恶意代码的二进制可执行文件,并按照每预设二进制位数对应一无符号整数的转换规则,将所述恶意代码转换为一维整数数组;
将所述一维整数数组按照预设采样规则进行下采样,得到并输出所述一维时间序列信号。
在本实施例中,用户在终端上确定当前需要检测的恶意代码的二进制可执行文件,终端在获取到当前需要检测的恶意代码文件时,从中读取恶意代码数据,并按照每预设二进制位数对应一无符号整数的转换规则,将二进制的恶意代码数据转换成一维无符号整数数组。优选地,预设二进制位数为八位,取值范围为0至255,待文件全部读取完毕时,即可将需要检测的恶意代码全部转换为一维整数数组。系统将二进制恶意代码数据转换得到的一维整数数组视为一维样值时间序列信号,并按照固定长度或是一定比例的采样规则进行下采样,即可在一维样值时间序列信号的基础上得到一维时间序列信号并显示在屏幕上。其中,对于一个样值序列间隔几个样值取样一次,这样得到新序列就是原序列的下采样。其中,固定长度与一定比例可根据实际情况灵活调节,本实施例不做具体限定。
在本实施例中,进一步通过将恶意代码转换为一维整数数组,并对其进行下采样得到一维时间序列信号并输出,可以有效的将恶意代码可视为一维的时间序列信号,对恶意代码的变种能够产生更抗混淆性和抗干扰性的谱特征,能够按照恶意代码家族进行划分,并发现新的家族,对数据集具有更好的适应性和健壮性,从而有效提高恶意代码变种检测效率,也可以通过家族划分来追溯恶意代码来源,达到恶意代码同源性判定的作用。
进一步地,图中未示的,基于上述图2所示的第一实施例,提出本发明恶意代码可视化及变种检测方法的第三实施例。在本实施例中,所述恶意代码分类器包括第一恶意代码分类器,步骤S10之前,还包括:
获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库;
将所述模态分解谱样本数据库中的模态分解谱样本分为第一训练集与第一测试集,并基于预设第一分类算法,对所述第一训练集与第一测试集进行交叉验证,以得到第一恶意代码分类器。
在本实施例中,提供了两种分类器训练方式,第一种是直接使用恶意代码的经验模态分解谱进行机器学习训练。第一训练集为采用第一种分类器训练方式时的训练集数据,第一测试集为采用第一种分类器训练方式时的测试集数据。第一预设分类算法为采用第一种训练方式进行分类器训练时所使用的分类算法,具体可为随机森林算法、极端随机数算法等。第一恶意代码分类器为采用第一种分类器训练方式所训练得出的恶意代码分类器。具体地,在第一种恶意代码分类器的训练方式中,若选择Malimg恶意代码文件数据库(Malimg数据集是最常用于提供卷积神经网络的恶意软件数据集之一),该数据库包含了25个恶意代码家族,共有9327个恶意代码文件。系统将该数据库中的每一个恶意代码文件,按每8位二进制作为一个无符号整数,转换为一个时间序列信号,再按n=4096进行下采样。系统将下采样后的时间序列信号进行小波分解或是小波包分解,按恶意代码二进制执行文件名生成对应恶意代码的模态分解谱样本数据,循环执行,最终生成Malimg恶意代码的模态分解谱样本数据库。系统采用机器学习方法,训练恶意代码的模态分解谱样本数据库,将80%的数据作为第一训练集,20%的数据作为第一测试集,重复10次交叉验证,对恶意代码家族进行分类。经实验后表明,采用随机森林算法得到的分类准确率为97.61%;采用极端随机树得到的分类准确率为97.83%。如图7所示,图7为Malimg恶意代码分类混淆矩阵示意图,左边的纵列标明了恶意代码的真实类别名称索引(Index of True Classes),下方的纵列均标明了恶意代码的预测类别名称索引(Index of Predict Classes),如位列第一位的Adialer.C(一种病毒种类名称),位列末位的Yuner.A(一种病毒种类名称)等。矩阵中的数字代表真实类别与预测类别之间的相似度。需要说明的是,若系统是通过第一种分类器训练方式得到恶意代码分类器,则在对当前需要检测的恶意代码进行变种检测时,只需获取到其对应的经验模态分解谱即可。
进一步地,在本实施例中,所述恶意代码分类器包括第二恶意代码分类器,所述获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库的步骤之后,还包括:
对所述模态分解谱样本数据库中的模态分解谱样本提取样本时间序列特征,以生成所述恶意代码样本对应的模态分解谱样本及特征数据库;
将所述模态分解谱样本及特征数据库中的数据分为第二训练集与第二测试集,并基于预设第二分类算法,对所述第二训练集与第二测试集进行交叉验证,以得到第二恶意代码分类器。
在本实施例中,第二种是先提取恶意代码的经验模态分解谱的时间序列信号特征,再使用时间序列信号特征来进行机器学习训练。样本时间序列特征为在模型训练阶段中,从恶意代码样本所对应的模态分解谱样本中提取出的时间序列特征。第二训练集为采用第二种分类器训练方式时的训练集数据,第二测试集为采用第二种分类器训练方式时的测试集数据。第二预设分类算法为采用第二种训练方式进行分类器训练时所使用的分类算法,具体可为随机森林算法、极端随机数算法等,第二预设分类算法可与第一预设分类算法相同,也可不同。第二恶意代码分类器为采用第二种分类器训练方式所训练得出的恶意代码分类器。其中,时间序列信号特征优选为对数梅尔滤波器组能量。
在第二种恶意代码分类器的训练方式中,选择Malheur恶意代码文件数据库(Malheur是一个自动化的恶意软件分析工具,它在沙箱(sandbox)中记录恶意软件的程序行为),该数据库包含了24个恶意代码家族,共有3131个恶意代码文件。系统将该数据库中的每一个恶意代码文件,按每8位二进制作为一个无符号整数,转换为一个时间序列信号,再按n=4096进行下采样,将下采样后的时间序列信号进行经验模态分解,并按恶意代码二进制执行文件名生成对应恶意代码样本的模态分解谱样本数据。系统对恶意代码样本的模态分解谱样本数据,提取时间序列特征,例如对数梅尔滤波器组能量这一时间序列特征,循环执行上述操作,最终生成Malheur恶意代码样本的模态分解谱样本及特征数据库。系统采用机器学习方法,训练恶意代码样本的模态分解谱样本及特征数据库,将80%的数据作为第二训练集,20%的数据作为第二测试集,重复10次交叉验证,对恶意代码家族进行分类。经实验后表明,采用随机森林算法得到的分类准确率为98.19%;采用极端随机树得到的分类准确率为98.31%。需要说明的是,若系统是通过第二种分类器训练方式得到恶意代码分类器,则在对当前需要检测的恶意代码进行变种检测时,需要获取到其对应的经验模态分解谱,并从经验模态分解谱中提取出时间序列特征,才可通过该恶意代码分类器对恶意代码进行变种检测。如图8所示,图8为Malheur恶意代码分类混淆矩阵示意图,左边的纵列标明了恶意代码的真实类别名称索引(Index of True Classes),下方的纵列均标明了恶意代码的预测类别名称索引(Index of Predict Classes),如位列第一位的ADULTBROWSER(一种病毒种类名称),位列末位的ZHELATIN(一种病毒种类名称)等。矩阵中的数字代表真实类别与预测类别之间的相似度。
在本实施例中,进一步通过设置两种分类器的训练方式,预先对一定数量的训练数据集与测试数据集进行机器学习训练,使得能够采用已训练的分类器对待检测的恶意代码进行快速准确的变种检测,提升了变种检测的效率。
本发明还提供一种恶意代码可视化及变种检测设备。
所述恶意代码可视化及变种检测设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的恶意代码可视化及变种检测程序,其中所述恶意代码可视化及变种检测程序被所述处理器执行时,实现如上所述的恶意代码可视化及变种检测方法的步骤。
其中,所述恶意代码可视化及变种检测程序被执行时所实现的方法可参照本发明恶意代码可视化及变种检测方法的各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有恶意代码可视化及变种检测程序,所述恶意代码可视化及变种检测程序被处理器执行时实现如上所述的恶意代码可视化及变种检测方法的步骤。
其中,所述恶意代码可视化及变种检测程序被执行时所实现的方法可参照本发明恶意代码可视化及变种检测方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种恶意代码可视化及变种检测方法,其特征在于,所述恶意代码可视化及变种检测方法包括:
在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号;
基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱,并对所述恶意代码对应的经验模态分解谱进行可视化处理;
使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息。
2.如权利要求1所述的恶意代码可视化及变种检测方法,其特征在于,所述基于预设经验模态分解算法,从所述一维时间序列信号中分离出多个固有模态分量,以基于多个固有模态分量得到所述恶意代码对应的经验模态分解谱的步骤包括:
获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量;
从所述一维时间序列信号中分离出所述固有模态分量,将分离后的一维时间序列信号作为下一轮迭代所需的剩余时间序列信号,并基于所述剩余时间序列信号自适应计算下一轮迭代的固有模态分量;
直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程,并将各轮迭代所得的多个固有模态分量堆叠成所述恶意代码对应的经验模态分解谱。
3.如权利要求2所述的恶意代码可视化及变种检测方法,其特征在于,所述获取所述一维时间序列信号的局部极值点,并基于所述局部极值点确定首轮迭代中的固有模态分量的步骤包括:
获取所述一维时间序列信号的局部极值点,并对所述局部极值点进行样条插值处理,以得到所述一维时间序列信号对应的上下包络线;
获取所述上下包络线的均值,并计算所述一维时间信号与所述上下包络线的均值之间的信号差值;
判断所述信号差值是否满足预设固有模态分量条件;
若是,则将所述信号差值作为首轮迭代中的固有模态分量。
4.如权利要求2所述的恶意代码可视化及变种检测方法,其特征在于,所述直至检测到当前轮数迭代中所得的固有模态分量满足预设迭代收敛条件时,结束当前迭代过程的步骤包括:
直至检测到当前轮数迭代中所得的固有模态分量为单调函数或常量时,结束当前迭代过程。
5.如权利要求1所述的恶意代码可视化及变种检测方法,其特征在于,所述使用预设的由模态分解谱样本训练所得的恶意代码分类器,基于所述恶意代码对应的经验模态分解谱对所述恶意代码进行变种检测,以获取所述恶意代码的本源信息的步骤包括:
将所述恶意代码对应的经验模态分解谱,或从所述恶意代码对应的经验模态分解谱中提取出的时间序列特征输入所述恶意代码分类器;
使用所述恶意代码分类器判断所述恶意代码是否属于已有恶意代码的变种;
若是,则获取并输出所述已有恶意代码的家族信息,以将所述已有恶意代码的家族信息作为所述恶意代码的本源信息;
若否,则将所述恶意代码列为新型恶意代码家族,并生成新型家族信息,以将所述新型家族信息作为所述恶意代码的本源信息。
6.如权利要求1所述的恶意代码可视化及变种检测方法,其特征在于,所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤包括:
在接收到恶意代码检测指令时,获取所述恶意代码检测指令中包含所述恶意代码的二进制可执行文件,并按照每预设二进制位数对应一无符号整数的转换规则,将所述恶意代码转换为一维整数数组;
将所述一维整数数组按照预设采样规则进行下采样,得到并输出所述一维时间序列信号。
7.如权利要求1-6中任一项所述的恶意代码可视化及变种检测方法,其特征在于,所述恶意代码分类器包括第一恶意代码分类器,
所述在接收到恶意代码检测指令时,基于所述恶意代码检测指令确定待检测的恶意代码,并按照预设转换规则将所述恶意代码转换成一维时间序列信号的步骤之前,还包括:
获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库;
将所述模态分解谱样本数据库中的模态分解谱样本分为第一训练集与第一测试集,并基于预设第一分类算法,对所述第一训练集与第一测试集进行交叉验证,以得到第一恶意代码分类器。
8.如权利要求7所述的恶意代码可视化及变种检测方法,其特征在于,所述恶意代码分类器包括第二恶意代码分类器,
所述获取预设恶意代码文件数据库中的恶意代码样本,对所述恶意代码样本进行经验模态分解,以得到所述恶意代码样本对应的模态分解谱样本数据库的步骤之后,还包括:
对所述模态分解谱样本数据库中的模态分解谱样本提取样本时间序列特征,以生成所述恶意代码样本对应的模态分解谱样本及特征数据库;
将所述模态分解谱样本及特征数据库中的数据分为第二训练集与第二测试集,并基于预设第二分类算法,对所述第二训练集与第二测试集进行交叉验证,以得到第二恶意代码分类器。
9.一种恶意代码可视化及变种检测设备,其特征在于,所述恶意代码可视化及变种检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的恶意代码可视化及变种检测程序,所述恶意代码可视化及变种检测程序被所述处理器执行时实现如权利要求1至8中任一项所述的恶意代码可视化及变种检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有恶意代码可视化及变种检测程序,所述恶意代码可视化及变种检测程序被处理器执行时实现如权利要求1至8中任一项所述的恶意代码可视化及变种检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600579.0A CN111797397B (zh) | 2020-06-28 | 2020-06-28 | 恶意代码可视化及变种检测方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600579.0A CN111797397B (zh) | 2020-06-28 | 2020-06-28 | 恶意代码可视化及变种检测方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111797397A true CN111797397A (zh) | 2020-10-20 |
CN111797397B CN111797397B (zh) | 2023-08-29 |
Family
ID=72803875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010600579.0A Active CN111797397B (zh) | 2020-06-28 | 2020-06-28 | 恶意代码可视化及变种检测方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797397B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120073018A (ko) * | 2010-12-24 | 2012-07-04 | 한국인터넷진흥원 | 악성 코드 탐지를 위한 시스템 및 방법 |
CN104765777A (zh) * | 2015-03-18 | 2015-07-08 | 韩山师范学院 | 一卡通rfid数据转化为过程事件日志的方法和系统 |
CN107356427A (zh) * | 2017-07-10 | 2017-11-17 | 成都航空职业技术学院 | 一种基于经验模态分解的电机铁芯异常检测方法 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108920954A (zh) * | 2018-06-28 | 2018-11-30 | 中国科学院软件研究所 | 一种恶意代码自动化检测平台及方法 |
-
2020
- 2020-06-28 CN CN202010600579.0A patent/CN111797397B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120073018A (ko) * | 2010-12-24 | 2012-07-04 | 한국인터넷진흥원 | 악성 코드 탐지를 위한 시스템 및 방법 |
CN104765777A (zh) * | 2015-03-18 | 2015-07-08 | 韩山师范学院 | 一卡通rfid数据转化为过程事件日志的方法和系统 |
CN107356427A (zh) * | 2017-07-10 | 2017-11-17 | 成都航空职业技术学院 | 一种基于经验模态分解的电机铁芯异常检测方法 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108920954A (zh) * | 2018-06-28 | 2018-11-30 | 中国科学院软件研究所 | 一种恶意代码自动化检测平台及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111797397B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471944B (zh) | 文本分类模型的训练方法、装置及可读存储介质 | |
CN108021806B (zh) | 一种恶意安装包的识别方法和装置 | |
WO2019150079A1 (en) | Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content | |
CN109271788B (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
CN113255370B (zh) | 基于语义相似度的行业类型推荐方法、装置、设备及介质 | |
CN105653984B (zh) | 文件指纹校验方法及装置 | |
CN109829302B (zh) | Android恶意应用家族分类方法、装置与电子设备 | |
CN111639178A (zh) | 生命科学文档的自动分类和解释 | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
CN110796171A (zh) | 机器学习模型的未分类样本处理方法、装置及电子设备 | |
CN112632529A (zh) | 漏洞识别方法、设备、存储介质及装置 | |
CN107256378A (zh) | 语种识别方法及装置 | |
CN111797396A (zh) | 恶意代码可视化及变种检测方法、装置、设备及存储介质 | |
CN112765003A (zh) | 一种基于app行为日志的风险预测方法 | |
CN111797395A (zh) | 恶意代码可视化及变种检测方法、装置、设备及存储介质 | |
CN111797397A (zh) | 恶意代码可视化及变种检测方法、设备及存储介质 | |
CN112257757A (zh) | 一种基于深度学习的恶意样本检测方法及系统 | |
CN113971283A (zh) | 一种基于特征的恶意应用程序检测方法及设备 | |
CN108491718B (zh) | 一种实现信息分类的方法及装置 | |
CN114996707B (zh) | 图片木马的静态检测方法、装置、电子设备及存储介质 | |
CN108733733B (zh) | 基于机器学习的生物医学文本分类方法、系统和存储介质 | |
CN113159211B (zh) | 用于相似图像检索的方法、计算设备和计算机存储介质 | |
CN112163217B (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 | |
CN111797398B (zh) | 恶意代码可视化及变种检测方法、系统、设备及存储介质 | |
CN113935032A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |