CN115630358A - 一种恶意软件分类方法、装置、计算机设备及存储介质 - Google Patents
一种恶意软件分类方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115630358A CN115630358A CN202210858666.5A CN202210858666A CN115630358A CN 115630358 A CN115630358 A CN 115630358A CN 202210858666 A CN202210858666 A CN 202210858666A CN 115630358 A CN115630358 A CN 115630358A
- Authority
- CN
- China
- Prior art keywords
- image
- malicious software
- malware
- detected
- classification
- 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
- G06F21/561—Virus type 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/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种恶意软件分类方法、装置、计算机设备及存储介质,其中,恶意软件分类方法包括:提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;将待检测恶意软件的可执行文件进行反汇编生成汇编文件;基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;基于操作码的频数,构建待检测恶意软件的第二灰度图像;将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。本发明通过集合了两种基于单一图像特征的恶意软件检测和分类方法,使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果。
Description
技术领域
本发明实施例涉及计算机安全技术领域,尤其涉及一种恶意软件分类方法、装置、计算机设备及存储介质。
背景技术
恶意软件是故意满足恶意攻击者有害意图的软件程序。近年来,随着互联网新应用、技术的成熟,人民群众日常工作生活对互联网的依赖程度越来高。犯罪分子开始在互联网上而不是在现实世界中犯罪。犯罪分子通常使用恶意软件对受害者机器发动网络攻击。它旨在实现攻击者的目标,这些目标包括干扰系统操作、访问计算系统和网络资源,以及未经用户许可收集个人敏感信息。因此,恶意软件通常会对主机的完整性、互联网的可用性和用户的隐私造成威胁。
恶意软件对全球数十亿人的威胁越来越大,这使得恶意软件分类成为网络安全领域的一个重要问题。现代恶意软件的复杂性和多样性导致了当代恶意软件分类技术的发展,这些技术利用机器学习领域对恶意软件进行分类。Nataraj等人提出将恶意软件的可执行二进制文件转换为相应的灰度图像。根据图像的纹理特征生成相应的特征向量,并采用K最邻近(K-NearestNeighbor,KNN)分类算法对恶意软件进行分类。
然而,现有技术中基于机器学习的恶意代码分类方法的检测和分类效果不稳定。
发明内容
本申请提供了一种恶意软件分类方法、装置、计算机设备及存储介质,以解决现有技术中对恶意软件的检测和分类效果不稳定的技术问题。
本发明第一方面提供了一种恶意软件分类方法,包括:
提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;
将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;
基于操作码的频数,构建待检测恶意软件的第二灰度图像;
将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本发明实施例提供的恶意软件分类方法,根据待检测恶意软件的字节数据构建第一灰度图像,根据待检测恶意软件的操作码构建第二灰度图像,将第一灰度图像和第二灰度图像输入到分类模型中得到待检测恶意软件的分类结果,由于操作码更能具体地表示恶意软件的特征,通过提取恶意软件操作码的方式来提取恶意软件的特征并转换到灰度图像上,有效提高了恶意软件的分类精度。同时本方案集合了两种基于单一图像特征的恶意软件检测和分类方法,结合两个方面的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,一方面使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果;另一方面提高分类模型的分类效率。与传统基于特征的恶意软件检测和分类方法相比,本实施例中基于灰度图像的分类方法,有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。
结合第一方面,在第一方面的第一实施例中,将第一灰度图像和第二灰度图像输入到分类模型中,包括:
将第一灰度图像和第二灰度图像进行拼接,形成第三灰度图像;
将第三灰度图像输入到分类模型中。
本发明实施例提供的恶意软件分类方法,基于图像自然拼接的方式,集合了两种基于单一图像特征的恶意软件检测和分类方法,结合两个方面的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果。
结合第一方面,在第一方面的第二实施例中,将第一灰度图像和第二灰度图像输入到分类模型中,包括:
将第一灰度图像和第二灰度图像分别输入颜色系统不同通道进行图像融合,形成第四灰度图像;
将第四灰度图像输入到分类模型中。
本发明实施例提供的恶意软件分类方法,基于多通道的图像组合,集合了两种基于单一图像特征的恶意软件检测和分类方法,因为对于多通道的图像每个通道都可以存储特征,基于多通道的图像组合相比较于单通道图像,可以获得更多的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果。
结合第一方面,在第一方面的第三实施例中,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构成待检测恶意软件的第一灰度图像,包括:
提取待检测恶意软件的可执行文件的字节序列,将字节序列中的各字节分别转换为无符号整数;
根据待检测恶意软件所占内存大小,确定图像二维尺寸;
各字节分别对应一个像素点,根据各字节的无符号整数确定各像素点的灰度值;
按照图像二维尺寸对各像素点依次排列,形成待检测恶意软件的第一灰度图像。
本发明实施例提供的恶意软件分类方法,基于图像的恶意软件分类方法将字节序列转换为统一的无符号整数,避免受字节序列符号的影响无法匹配到对应的灰度值。同时根据恶意软件所占内存大小来确定图像二维尺寸,可以避免漏掉恶意软件中的字符特征。并且由于传统的检测和分类方法是基于一个“恶意软件库”来分类的,分类的时候需要将恶意软件与恶意软件库中的现有恶意软件做匹配,来进行分类。随着新的恶意软件的出现,需要人工的更新恶意软件库。与传统基于特征的恶意软件检测和分类方法相比,基于图像的恶意软件分类方法基于机器学习的模式,提取的是同类恶意软件的共同特征,模型训练好后,即可稳定运行,可以有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。
结合第一方面,在第一方面的第四实施例中,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数,包括:
确定N-Gram算法滑动窗口长度;
基于滑动窗口长度,采用N-Gram算法统计操作码序列中各操作码的出现频数。
本发明实施例提供的恶意软件分类方法,确定合适的N-Gram算法滑动窗口长度有助于提高恶意软件分类精度。
结合第一方面,在第一方面的第五实施例中,基于操作码的频数,构建待检测恶意软件的第二灰度图像,包括:
将各操作码分别作为一个像素点,根据各操作码的频数确定各像素点的灰度值,形成待检测恶意软件的第二灰度图像。
本发明实施例提供的恶意软件分类方法,由于传统的检测和分类方法是基于一个“恶意软件库”来分类的,分类的时候需要将恶意软件与恶意软件库中的现有恶意软件做匹配,来进行分类。随着新的恶意软件的出现,需要人工的更新恶意软件库。与传统基于特征的恶意软件检测和分类方法相比,基于图像的恶意软件分类方法基于机器学习的模式,提取的是同类恶意软件的共同特征,模型训练好后,即可稳定运行,可以有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。同时由于操作码更能具体地表示恶意软件的特征,通过提取恶意软件操作码的方式来提取恶意软件的特征并转换到灰度图像上,有效提高恶意软件的分类精度。
结合第一方面或上述任一实施例,在第一方面的第六实施例中,在基于操作码的频数构建待检测恶意软件的第二灰度图像的步骤之后,在将第一灰度图像和第二灰度图像输入到分类模型中的步骤之前,该方法还包括:
对第一灰度图像,和/或,第二灰度图像进行标准化处理,将图像的形状统一为固定大小。
本发明实施例提供的恶意软件分类方法,对灰度图像进行数据标准化处理,消除评价指标之间的量纲影响,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价,提高分类模型的分类精度。
本发明第二方面提供了一种恶意软件分类的装置,包括:
第一构建模块,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;
生成模块,用于将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
统计模块,用于基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;
第二构建模块,用于基于操作码的频数,构建待检测恶意软件的第二灰度图像;
分类模块,用于将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本发明提供的恶意软件分类装置中各部件所执行的功能均已在上述任一方法实施例中得以应用,因此这里不再赘述。
本发明第三方面提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的恶意软件分类方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如本发明第一方面提供的恶意软件分类方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的恶意软件分类方法流程示意图(一);
图2为本发明一实施例提供的恶意软件汇编文件中的部分操作码;
图3为本发明一实施例提供的恶意软件分类方法流程示意图(二);
图4为本发明一实施例提供的恶意软件分类方法流程示意图(三);
图5为本发明一实施例提供的恶意软件分类方法流程示意图(四);
图6为本发明实施例提供的一种恶意软件二进制文件的部分字节序列;
图7为本发明一实施例提供的恶意软件分类方法流程示意图(五);
图8为本发明一实施例提供的恶意软件分类方法流程示意图(六);
图9为本发明一实施例提供的恶意软件分类方法流程示意图(七);
图10为本发明一实施例提供的恶意软件分类方法流程示意图(八)
图11为本发明一实施例提供的验证恶意软件分类方法精度的精度曲线(一)
图12为本发明一实施例提供的验证恶意软件分类方法精度的精度曲线(二)
图13为本发明一实施例提供的恶意软件分类装置结构示意图;
图14为本发明实施例提供的一种恶意软件分类方法的计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
针对背景技术中所提及的技术问题,本发明实施例提供了一种恶意软件分类方法,如图1所示,该方法步骤包括:
步骤S110,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像。
示例性地,恶意软件是在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,从而侵犯用户合法权益的软件或代码。待检测恶意软件可以隐藏在合法的软件应用程序或文件中,或者可以将其伪装成用户不知不觉下载的看似无害的应用程序的软件。示例性地,待检测恶意软件可以为病毒类的恶意软件、蠕虫类的恶意软件、特洛伊木马类的恶意软件、勒索类的恶意软件、僵尸程序类的恶意软件、广告软件类的恶意软件等相关的恶意软件。每种类型的恶意软件以不同的方式影响原始受害者机器,例如破坏目标系统、允许远程代码执行、窃取机密数据等。
在本实施例中,待检测恶意软件的可执行文件为可移植的可执行的文件(Portable Executable,PE),PE文件是微软Windows操作系统上的程序文件。将待分析的PE文件转化为二进制流文件,然后将二进制文件按字节进行分割,继而通过二进制方式进行转化,将字节值从0映射到255,其中0代表黑色,255代表白色,其他[0,255]之间的值表示不同的灰度值,对其进行可视化生成待检测恶意软件相对应的第一灰度图像,从而使待检测恶意软件的相关检测任务转变为待分类图像的图像识别任务。
步骤S120,将待检测恶意软件的可执行文件进行反汇编生成汇编文件。
示例性地,需要说明的是,对二进制可执行文件转换得到的图片,采用通用搜索树(Generalized Search Trees,GIST)算法进行特征提取,只能较好学习到二进制可执行文件的全局特征,缺乏局部特征的捕捉,并且直接利用二进制可执行文件不能很好地捕捉程序的行为特征。因此,本实施例方法为了更好地捕捉恶意软件的特征,将该恶意软件二进制可执行文件首先通过一个特殊的反汇编工具转换为可读性更强的汇编文件。
示例性地,本实施例的反汇编工具采用了交互式反汇编器专业版(InteractiveDisassembler Professional)即IDA Pro以下简称IDA,将该恶意软件的二进制可执行文件转换为可读性更强的汇编文件。使用IDA反汇编PE文件得到很多信息如流程图、函数调用图、依赖图等。可以根据这些信息,分析恶意软件的功能、执行过程、内部结构等。本发明实施例中利用IDC脚本(IDC语言为IDA的一种脚本引擎,它之所以叫做IDC是因为它的语法与C语言很相似),从反汇编的许多信息中把汇编代码提取出来(IDC脚本主要用于动态调试IDA,获取IDA运行过程中的各种信息的代码)。
步骤S130,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数。
示例性地,一个恶意软件程序由三个主要部分组成:BSS段(Block Started bySymbol segment)、Data段(data segment)和Text段(code segment/Text segment)。BSS段通常是程序中未初始化全局变量的存储区域。Data段通常是程序中初始化全局变量的存储区域。Text段通常是用来保存程序执行的代码的内存区域。本发明实施例中只对Text段的操作码进行特征分析。Text段中的部分汇编代码如图2所示。
如图2所示,汇编指令由操作码和操作数组成。操作码用于解释指令操作的性质和功能。操作码是指令中不可缺少的一部分,通常由1-2个字节组成,机器通过解码电路识别指令。操作码序列可以理解为计算机程序中所规定的要执行操作的那一部分指令或字段,即指令序列号。操作码的操作可以包括算术、数据操作、逻辑操作和程序控制。操作数用于提供有关指令中要处理的数据或数据地址的信息,包括偏移量、内存地址、立即数和其它表示形式。
该恶意软件首先通过一个特殊的反汇编工具转换为可读性更强的汇编文件。然后从汇编文件的Text段提取操作码序列,忽略额外的可用信息(如内存位置、寄存器等),其中,操作码汇编文件行中的第一个非字节字。在检索到汇编文件的Text段的所有操作码后,计算每个操作码的频数。
步骤S140,基于操作码的频数,构建待检测恶意软件的第二灰度图像。
示例性地,经统计各操作码出现的频数,将各操作码作为一个像素点,各像素点的灰度值由各操作码出现的频数确定。如果操作码的频数超出灰度值的范围,则将该操作码对应的像素点的灰度值确定为灰度值区间能够取到的最大灰度值。
步骤S150,将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
示例性地,本实施例中的分类模型可以选择基于树结构的机器学习模型,如随机森林分类器、极限梯度提升算法(eXtreme Gradient Boosting,XGBoost)分类器。也可以选择基于卷积神经网络(Convolutional Neural Network,CNN)模型,如深度残差网络(DeepResidual Network,ResNet),可选ResNet-50,但不限于此。
基于树结构的机器学习模型具有以下优点:易于理解和解释,特征可以是连续变量或分类变量,并且可以建立非线性模型。然而,它们也有容易过拟合和速度效率低的缺点。仅仅依靠单一机器学习过程的结果是不够的。集成学习是一种集成了多个学习器的预测能力的系统学习方法。目的是通过组合多个基学习器的预测结果,并通过组合每个决策树的输出进行预测,提高单个学习器的泛化能力和鲁棒性。构成集成模型的基本学习器或模型可能来自相同的学习算法,也可能来自不同的学习算法。引导聚集算法(Bootstrapaggregating,Bagging)和提升方法(Boosting)等集成学习方法被广泛使用。随机森林是一种基于Bagging的集成学习方法,即使使用默认参数,也能产生出色的效果。它也是最常用的算法之一,因为它简单,可以用于分类任务。XGBoost是一种基于梯度提升决策树(Gradient Boosting Decision Tree,GBDT)的算法,GBDT是一种基于Boosting集成思想的加法模型。在训练过程中,使用前向分布算法进行贪心学习。每次迭代学习一棵CART树,以拟合前一个T-1树的预测结果与训练样本的真实值之间的残差。对于不平衡的数据集,XGBoost是一个优选。
在计算机视觉领域,卷积神经网络得到了广泛的应用。CNN是模仿生物神经网络结构和功能的数学模型或计算模型,是深度学习的代表算法之一。CNN最擅长图像处理,它可以有效地将大数据量的图像降维为小数据量,并有效地保留图像特征。一个典型的CNN由三部分组成:卷积层、池层和全连接层。卷积层负责从图像中提取局部特征。池层用于大大减少参数数量(降维),以避免过度拟合。全连接层类似于用于输出所需结果的传统神经网络部分。CNN网络的层次越多,可以提取出不同层次的特征。而且,网络越深,特征越抽象,提取的语义信息越多。然而,随着网络层的深入,模型的精度首先不断提高并达到饱和。然后,随着网络深度的不断增加,模型的精度会在一定程度上降低。ResNet网络通过在模型中引入残差网络,解决了这种“退化现象”,极大地消除了神经网络训练深度过大的困难。
本发明实施例提供的恶意软件分类方法,根据待检测恶意软件的字节数据构建第一灰度图像,根据待检测恶意软件的操作码构建第二灰度图像,将第一灰度图像和第二灰度图像输入到分类模型中得到待检测恶意软件的分类结果,由于操作码更能具体地表示恶意软件的特征,通过提取恶意软件操作码的方式来提取恶意软件的特征并转换到灰度图像上,有效提高了恶意软件的分类精度。同时本方案集合了两种基于单一图像特征的恶意软件检测和分类方法,结合两个方面的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,一方面使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果;另一方面提高分类模型的效率。与传统基于特征的恶意软件检测和分类方法相比,本实施例中基于灰度图像的分类方法,有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。
作为本发明的一可选实施方式,如图3所示,本发明实施例提供的恶意软件分类方法包括:
步骤S310,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;
步骤S320,将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
步骤S330,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;
步骤S340,基于操作码的频数,构建待检测恶意软件的第二灰度图像;
本实施例中,步骤S310至步骤S340与上述实施例中的步骤S110至步骤S140类似,此处不再赘述。
步骤S350,将第一灰度图像和第二灰度图像进行拼接,形成第三灰度图像。
示例性地,例如第一灰度图像的尺寸为224×224,第二灰度图像的尺寸为224×224,本实施例中的拼接方式即将一个224×224第一灰度图像与一个224×224同类型的第二灰度图像结合起来,形成一个新的224×448图像,即本实施例中的第三灰度图像。
步骤S360,将第三灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S360与上述实施例中的步骤S150类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,基于图像自然拼接的方式,集合了两种基于单一图像特征的恶意软件检测和分类方法,结合两个方面的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果。
作为本发明的一可选实施方式,如图4所示,本发明实施例提供的恶意软件分类方法包括:
步骤S410,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;
步骤S420,将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
步骤S430,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;
步骤S440,基于操作码的频数,构建待检测恶意软件的第二灰度图像;
本实施例中,步骤S430至步骤S440与上述实施例中的步骤S110至步骤S140类似,此处不再赘述。
步骤S450,将第一灰度图像和第二灰度图像分别输入颜色系统不同通道进行图像融合,形成第四灰度图像。
示例性地,本实施例颜色系统以RGB色彩模式为例,RGB色彩模式是工业界的一种颜色标准,是通过对红(Red,R)、绿(Green,G)、蓝(Blue,B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时最暗,而在255时最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。
第一灰度图像和第二灰度图像分别输入红(R)、绿(G)、蓝(B)三个颜色通道中的两个通道,示例性地,例如第一灰度图像为224×224字节图像,第二灰度图为相同类型的224×224操作码图像分别输入到RGB的两个通道中,另一个通道设置为0,形成新的224×224RGB图像,即本实施例中的第四灰度图像。
步骤S460,将第四灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S460与上述实施例中的步骤S360类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,基于多通道的图像组合,集合了两种基于单一图像特征的恶意软件检测和分类方法,因为对于多通道的图像每个通道都可以存储特征,基于多通道的图像组合相比较于单通道的,可以获得更多的特征,从而使输入到分类模型中的灰度图像包含有更多的恶意软件区分性特征,使得最终的恶意软件检测达到了更加稳定的性能和更加精准的分类效果。
作为本发明的一可选实施方式,如图5所示,本发明实施例提供的恶意软件分类方法包括:
步骤S510,提取待检测恶意软件的可执行文件的字节序列,将字节序列中的各字节分别转换为无符号整数。
示例性地,二进制恶意软件片段如图6所示,两个十六进制数构成一个字节。首先,将二进制文件的每个字节依次转换为无符号整数,并将其存储在向量中。向量通常的存储方法是顺序存储,每个元素在存储中占用的空间大小相同,若第一个元素存放的位置是LOC(k1),每个元素占用的元素大小为s,则元素ki的存放位置为:LOC(ki)=LOC(k1)+s×(i-1)。
步骤S520,根据待检测恶意软件所占内存大小,确定图像二维尺寸。
示例性地,提取待检测恶意软件的二进制可执行文件,读取文件所占内存大小,并根据文件所占内存大小确定与其对应的图像的二维尺寸。
步骤S530,各字节分别对应一个像素点,根据各字节的无符号整数确定各像素点的灰度值。
示例性地,每个字节在图像中都有确定的位置将与其对应,在其位置上对应的灰度值根据无符号整数值的大小来确定,从0映射到255,其中0代表黑色,255代表白色,中间值表示其他不同灰度值。
步骤S540,按照图像二维尺寸对各像素点依次排列,形成待检测恶意软件的第一灰度图像。
示例性地,将二进制文件的每个字节依次转换为无符号整数,并将其存储在向量中。读取文件大小并指定图像的大小。通过将这些向量转换为[width,height]的2D数组,最后将2D数组可视化为[0,255]范围内的灰度图像,此灰度图像即为本实施例中的第一灰度图像,也可称为字节图像。
步骤S550,将待检测恶意软件的可执行文件进行反汇编生成汇编文件。
步骤S560,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数。
步骤S570,基于操作码的频数,构建待检测恶意软件的第二灰度图像。
步骤S580,将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S550至步骤S580与上述实施例中的步骤S120至步骤S150类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,基于图像的恶意软件分类方法将字节序列转换为统一的无符号整数,避免受字节序列符号的影响无法匹配到对应的灰度值。同时根据恶意软件所占内存大小来确定图像二维尺寸,可以避免漏掉恶意软件中的字符特征。并且由于传统的检测和分类方法是基于一个“恶意软件库”来分类的,分类的时候需要将恶意软件与恶意软件库中的现有恶意软件做匹配,来进行分类。随着新的恶意软件的出现,需要人工的更新恶意软件库。与传统基于特征的恶意软件检测和分类方法相比,基于图像的恶意软件分类方法基于机器学习的模式,提取的是同类恶意软件的共同特征,模型训练好后,即可稳定运行,可以有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。
作为本发明的一可选实施方式,如图7所示,本发明实施例提供的恶意软件分类方法包括:
步骤S710,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像。
步骤S720,将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
本实施例中,步骤S710至步骤S720与上述实施例中的步骤S110至步骤S120类似,此处不再赘述。
步骤S730,基于汇编文件提取操作码序列,确定N-Gram算法滑动窗口长度。
示例性地,N-Gram是一种基于统计语言模型的算法,经常用于恶意软件检测,自然语言处理等领域。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。N为正整数。
步骤S740,基于滑动窗口长度,采用N-Gram算法统计操作码序列中各操作码的出现频数。
示例性地,假设操作码序列为ABCDEFGH,2-Gram提取的操作码特征[{AB},{BC},{CD},{DE},{EF},{FG},{GH}];3-Gram提取的操作码特征[{ABC},{BCD},{CDE},{DEF},{EFG},{FGH}];4-Gram提取的操作码特征[{ABCD},{BCDE},{CDEF},{DEFG},{EFGH}];5-Gram提取的操作码特征[{ABCDE},{BCDEF},{CDEFG},{DEFGH}]。当操作码序列足够长时,提取的操作码特征必定会有一定数量的重复。本实施例所统计的操作码的出现频数即为同一操作码重复出现的次数。利用N-Gram进行特征提取,可以较好的去掉一些作用不大的冗余特征,并且可以较好的获得操作码的局部信息。
步骤S750,基于操作码的频数,构建待检测恶意软件的第二灰度图像。
步骤S760,将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S750至步骤S760与上述实施例中的步骤S140至步骤S150类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,由于传统的检测和分类方法是基于一个“恶意软件库”来分类的,分类的时候需要将恶意软件与恶意软件库中的现有恶意软件做匹配,来进行分类。随着新的恶意软件的出现,需要人工的更新恶意软件库。与传统基于特征的恶意软件检测和分类方法相比,基于图像的恶意软件分类方法基于机器学习的模式,提取的是同类恶意软件的共同特征,模型训练好后,即可稳定运行,可以有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。同时由于操作码更能具体地表示恶意软件的特征,通过提取恶意软件操作码的方式来提取恶意软件的特征并转换到灰度图像上,有效提高恶意软件的分类精度。
作为本发明的一可选实施方式,如图8所示,本发明实施例提供的恶意软件分类方法包括:
步骤S810,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像。
步骤S820,将待检测恶意软件的可执行文件进行反汇编生成汇编文件。
步骤S830,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数。
本实施例中,步骤S810至步骤S830与上述实施例中的步骤S110至步骤S130类似,此处不再赘述。
步骤S840,基于操作码的频数,将各操作码分别作为一个像素点,根据各操作码的频数确定各像素点的灰度值,形成待检测恶意软件的第二灰度图像。
示例性地,每个操作码在图像中都有确定的位置将与其对应,在其位置上对应的灰度值操作码的频数值的大小来确定,从0映射到255,其中0代表黑色,255代表白色,中间值表示其他不同灰度值。形成待检测恶意软件的第二灰度图像。
步骤S850,将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S850与上述实施例中的步骤S150类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,与传统基于特征的恶意软件检测和分类方法相比,基于图像的恶意软件分类方法可以有效的减少手动分析的人工成本,可以更高效地检测和分类出新的恶意软件。同时由于操作码更能具体地表示恶意软件的特征,通过提取恶意软件操作码的方式来提取恶意软件的特征并转换到灰度图像上,有效提高恶意软件的分类精度。
作为本发明的一可选实施方式,如图9所示,本发明实施例提供的恶意软件分类方法包括:
步骤S910,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像;
步骤S920,将待检测恶意软件的可执行文件进行反汇编生成汇编文件;
步骤S930,基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数;
步骤S940,基于操作码的频数,构建待检测恶意软件的第二灰度图像;
本实施例中,步骤S910至步骤S940与上述实施例中的步骤S110至步骤S140类似,此处不再赘述。
步骤S950,对第一灰度图像,和/或,第二灰度图像进行标准化处理,将图像的形状统一为固定大小。
示例性地,由于第一灰度图像的二维尺寸和第二灰度图像的二维尺寸与恶意软件的二进制可执行文件所占内存空间大小有关,这种对应关系的存在不可避免地导致不同恶意软件的二进制可执行文件构建出的灰度图像二维尺寸不同,造成评价指标不统一,在机器学习领域中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。所以在灰度图像进入分类模型之前需要将不同尺寸的灰度图像进行标准化处理,以便分类模型更易识别,提高分类模型的分类精度。
步骤S960,将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
本实施例中,步骤S960与上述实施例中的步骤S150类似,此处不再赘述。
本发明实施例提供的恶意软件分类方法,对灰度图像进行数据标准化处理,消除评价指标之间的量纲影响,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价,提高分类模型的分类精度。
为了验证上述实施例中提供的恶意软件分类方法的性能,本发明实施例中进行了如下实验:
1.数据集和实验设置
1)数据集:为了验证提出的新图像特征提取方法的性能,使用了KaggleMicrosoft Malware Classification Challenge(Microsoft Malware ClassificationChallenge(BIG 2015)中使用的恶意软件数据。表1总结了该数据集的详细信息。该数据集全部为恶意软件,共有10868个样本,分为9类,包括二进制和汇编文件。
表1数据集的详细信息
2)实验设置:实验中使用的计算机操作系统是Ubuntu18.04.5LTS,计算机的中央处理单元是Intel Xeon(R)Intel Silver 4214CPU@2.20GHz×24。计算机的图形处理单元是NVIDIA GeForce RTX 3090。
在机器学习中,选择了随机森林分类器和XGBoost分类器,这些算法在SciKit-Learn(是针对Python编程语言的免费软件机器学习库)中实现,采用网格搜索算法对超参数进行优化。以下结果中的多分类准确度是5倍交叉验证得出的,训练集和测试集的比例为7:3。本发明实施例提出的CNN(ResNet-50)模型通过TensorFlow(是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现)在Keras(是一个由Python编写的开源人工神经网络库,可以作为Tensorflow的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化)中实现。数据集划分为:80%的恶意软件图像用于训练,10%用于验证,其余10%用于测试。
2.结果与结果分析
1)基于恶意软件字节图像的多分类:在本实验中,从二进制恶意软件样本中删除一些无效字节,例如“??”。对于字节数量不足的少量样本,用0x00填充至相同大小。表2显示了数据集转换为不同字节图像大小的分类精度。从结果可以看出,在连续采样的情况下,逐渐增大字节图像大小在一定程度上提高了恶意软件家族的多分类精度,且CNN的分类效果优于机器学习模型。
连续采样意味着,如果图像大小为128×128,提取的恶意软件的前128×128字节将转换为图像。间隔采样是指根据每个文件的步长进行采样,并将其转换为图像。表3显示了不同抽样方法对分类精度的影响。在字节图像大小相同的情况下,连续采样明显优于间隔采样。表2和表3中的结果确定字节图像的最终大小(224×224)和采样方法(连续采样)。
表2不同图像大小对分类精度的影响(连续采样)
表3不同采样方法对分类精度的影响(图像大小:224×224)
分类模型 | 连续采样 | 间隔采样 |
随机森林分类器 | 0.8551 | 0.8244 |
XGBoost分类器 | 0.9256 | 0.9003 |
ResNet-50 | 0.9521 | 0.9232 |
2)基于恶意软件N-Gram操作码图像的多分类:在本实验中,N-Gram中的N取3。为了加快模型的收敛速度,去除了一些总频率较低的N-Gram操作码。表4显示了数据集转换为N-Gram操作码图像的多分类精度。从分类结果可以看出,基于N-Gram操作码图像的恶意软件家族的分类效果都很好。原因是:用这种方法提取的N-Gram操作码频率特征更明显,更容易被分类器识别。
表4基于N-Gram操作码图像的多分类精度(图像大小:224×224)
分类模型 | N-gram操作码图像 |
随机森林分类器 | 0.9786 |
XGBoost分类器 | 0.9752 |
ResNet-50 | 0.9761 |
3)字节图像结合N-Gram操作码图像的多分类,如图10所示:
方法1:将一个第一灰度图像(224×224字节图像)与一个第二灰度图像(224×224同类型的N-Gram操作码图像)结合起来,形成224×448的第三灰度图像。
方法2:将一个第一灰度图像(224×224字节图像)与一个第二灰度图像(224×224同类型的N-gram操作码图像)放入到RGB的两个通道中,另一个通道设置为0,形成新的224×224RGB图像作为第四灰度图像。表5显示了字节图像和N-Gram操作码图像组合的多分类精度。当组合图像应用于恶意软件家族分类时,性能明显提高。
表5基于字节图像和N-gram操作码图像的多分类精度
分类模型 | 方法1 | 方法2 |
随机森林分类器 | 0.9754 | 0.9809 |
XGBoost分类器 | 0.9874 | 0.9827 |
ResNet-50 | 0.9861 | 0.9834 |
4)时间和内存消耗:表6显示了提取上述三个特征的时间和内存消耗(所有结果均在相同的实验环境中进行)。此外,虽然新的图像特征提取比字节图像需要更多的时间和内存,但实验结果显著改善。与N-Gram操作码图像的时间消耗和内存消耗相近,恶意软件的分类效果也略有改善。
表6提取特征的时间和内存消耗
特征 | 时间(分钟) | 内存(GB) |
字节图像 | 51.03 | 0.091 |
N-Gram操作码图像 | 305.37 | 25.26 |
两个图像结合 | 354.18 | 25.26 |
5)ResNet-50下的loss和精度曲线:图11和图12显示了训练ResNet-50(batch_size=32)网络的loss和精度曲线。结果说明了新的图像在训练过程中的收敛和稳定。即使输入模型大小不同,训练也保持稳定。
综上所述,本发明中,使用了一种基于字节图像和操作码图像的恶意软件分类方法,并提出了一个由字节图像和操作码图像组成的集成学习模型。在Windows可执行样本的Kaggle数据集上评估了该模型,获得了98.61%的高精度结果。实验结果表明,这些图像中的视觉纹理和模式能够准确地对恶意软件进行分类,两种图像特征组合的分类效果优于单一图像特征的分类效果。此外,还证明,在恶意软件分类任务中,使用深度学习CNN模型学习的特征显著优于传统的机器学习模型。
图13为本发明一实施例提供的一种恶意软件分类的装置,本实施例中的恶意软件分类装置包括:
第一构建模块1310,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建恶意软件的第一灰度图像。详细内容参见上述实施例中步骤S110的描述,在此不再赘述。
生成模块1320,用于将待检测恶意软件的可执行文件进行反汇编生成汇编文件。详细内容参见上述实施例中步骤S120的描述,在此不再赘述。
统计模块1330,用于基于汇编文件提取操作码序列,统计操作码序列中各操作码的频数。详细内容参见上述实施例中步骤S130的描述,在此不再赘述。
第二构建模块1340,用于基于操作码的频数,构建待检测恶意软件的第二灰度图像。详细内容参见上述实施例中步骤S140的描述,在此不再赘述。
分类模块1350,用于将第一灰度图像和第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。详细内容参见上述实施例中步骤S150的描述,在此不再赘述。
作为本发明一个可选实施方式,分类模块1350包括:
第一分类子模块,用于将第一灰度图像和第二灰度图像进行拼接,形成第三灰度图像。详细内容参见上述实施例中步骤S350的描述,在此不再赘述。
第一输入模块,用于将第三灰度图像输入到分类模型中。详细内容参见上述实施例中步骤S360的描述,在此不再赘述。
作为本发明一个可选实施方式,分类模块1350包括:
第二分类子模块,用于将第一灰度图像和第二灰度图像分别输入颜色系统不同通道进行图像融合,形成第四灰度图像。详细内容参见上述实施例中步骤S450的描述,在此不再赘述。
第二输入模块,用于将第四灰度图像输入到分类模型中。详细内容参见上述实施例中步骤S460的描述,在此不再赘述。
作为本发明一个可选实施方式,第一构建模块1310包括:
提取子模块,用于提取待检测恶意软件的可执行文件的字节序列,将字节序列中的各字节分别转换为无符号整数。详细内容参见上述实施例中步骤S510的描述,在此不再赘述。
第一确定子模块,用于根据待检测恶意软件所占内存大小,确定图像二维尺寸。详细内容参见上述实施例中步骤S520的描述,在此不再赘述。
第二确定子模块,用于各字节分别对应一个像素点,根据各字节的无符号整数确定各像素点的灰度值。详细内容参见上述实施例中步骤S530的描述,在此不再赘述。
第一构建子模块,用于按照图像二维尺寸对各像素点依次排列,形成待检测恶意软件的第一灰度图像。详细内容参见上述实施例中步骤S540的描述,在此不再赘述。
作为本发明一个可选实施方式,统计模块1330包括:
第三确定子模块,用于确定N-gram算法滑动窗口长度。详细内容参见上述实施例中步骤S730的描述,在此不再赘述。
统计子模块,用于基于滑动窗口长度,采用N-gram算法统计操作码序列中各操作码的出现频数。详细内容参见上述实施例中步骤S740的描述,在此不再赘述。
作为本发明一个可选实施方式,第二构建模块1340包括:
第二构建子模块,用于将各操作码分别作为一个像素点,根据各操作码的频数确定各像素点的灰度值,形成待检测恶意软件的第二灰度图像。详细内容参见上述实施例中步骤S840的描述,在此不再赘述。
作为本发明一个可选实施方式,恶意软件分类装置还包括:
标准化模块,用于对第一灰度图像,和/或,第二灰度图像进行标准化处理,将图像的形状统一为固定大小。详细内容参见上述实施例中步骤S950的描述,在此不再赘述。
本发明实施例提供了一种计算机设备,如图14所示,该设备包括一个或多个处理器1410以及存储器1420,存储器1420包括持久内存、易失内存和硬盘,图14中以一个处理器1410为例。该设备还可以包括:输入装置1430和输出装置1440。
处理器1410、存储器1420、输入装置1430和输出装置1440可以通过总线或者其他方式连接,图14中以通过总线连接为例。
处理器1410可以为中央处理器(CentralProcessingUnit,CPU)。处理器1410还可以为其他通用处理器、数字信号处理器
(DigitalSignalProcessor,DSP)、专用集成电路
(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器1420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据恶意软件分类装置的使用所创建的数据等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器1420可选包括相对于处理器1410远程设置的存储器,这些远程存储器可以通过网络连接至恶意软件分类装置。输入装置1430可接收用户输入的计算请求(或其他数字或字符信息),以及产生与恶意软件分类装置有关的键信号输入。输出装置1440可包括显示屏等显示设备,用以输出计算结果。
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的恶意软件分类方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器
(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read-Only Memory,ROM),可擦除可编辑只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(Compact Disc Read-Only Memory,CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array,PGA),现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。在本公开描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种恶意软件分类方法,其特征在于,包括:
提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建所述恶意软件的第一灰度图像;
将所述待检测恶意软件的可执行文件进行反汇编生成汇编文件;
基于所述汇编文件提取操作码序列,统计所述操作码序列中各操作码的频数;
基于所述操作码的频数,构建所述待检测恶意软件的第二灰度图像;
将所述第一灰度图像和所述第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
2.根据权利要求1所述的恶意软件分类方法,其特征在于,所述将所述第一灰度图像和所述第二灰度图像输入到分类模型中,包括:
将所述第一灰度图像和所述第二灰度图像进行拼接,形成第三灰度图像;
将所述第三灰度图像输入到分类模型中。
3.根据权利要求1所述的恶意软件分类方法,其特征在于,所述将所述第一灰度图像和所述第二灰度图像输入到分类模型中,包括:
将所述第一灰度图像和所述第二灰度图像分别输入颜色系统不同通道进行图像融合,形成第四灰度图像;
将所述第四灰度图像输入到分类模型中。
4.根据权利要求1所述的恶意软件分类方法,其特征在于,所述提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构成所述待检测恶意软件的第一灰度图像,包括:
提取待检测恶意软件的可执行文件的字节序列,将所述字节序列中的各字节分别转换为无符号整数;
根据所述待检测恶意软件所占内存大小,确定图像二维尺寸;
各字节分别对应一个像素点,根据各字节的无符号整数确定各像素点的灰度值;
按照所述图像二维尺寸对各像素点依次排列,形成所述待检测恶意软件的第一灰度图像。
5.根据权利要求1所述的恶意软件分类方法,其特征在于,所述基于所述汇编文件提取操作码序列,统计所述操作码序列中各操作码的频数,包括:
确定N-Gram算法滑动窗口长度;
基于所述滑动窗口长度,采用N-Gram算法统计所述操作码序列中各操作码的出现频数。
6.根据权利要求1所述的恶意软件分类方法,其特征在于,所述基于所述操作码的频数,构建所述待检测恶意软件的第二灰度图像,包括:
将各所述操作码分别作为一个像素点,根据各操作码的频数确定各像素点的灰度值,形成所述待检测恶意软件的第二灰度图像。
7.根据权利要求1-6任一项所述的恶意软件分类方法,其特征在于,在基于所述操作码的频数构建所述待检测恶意软件的第二灰度图像的步骤之后,在将所述第一灰度图像和所述第二灰度图像输入到分类模型中的步骤之前,所述方法还包括:
对所述第一灰度图像,和/或,第二灰度图像进行标准化处理,将图像的形状统一为固定大小。
8.一种恶意软件分类的装置,其特征在于,包括:
第一构建模块,提取待检测恶意软件的可执行文件的字节序列,将每个字节数据作为一个像素点构建所述恶意软件的第一灰度图像;
生成模块,用于将所述待检测恶意软件的可执行文件进行反汇编生成汇编文件;
统计模块,用于基于所述汇编文件提取操作码序列,统计所述操作码序列中各操作码的频数;
第二构建模块,用于基于所述操作码的频数,构建所述待检测恶意软件的第二灰度图像;
分类模块,用于将所述第一灰度图像和所述第二灰度图像输入到分类模型中,得到待检测恶意软件的分类结果。
9.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一项所述的恶意软件分类方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的恶意软件分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210858666.5A CN115630358A (zh) | 2022-07-20 | 2022-07-20 | 一种恶意软件分类方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210858666.5A CN115630358A (zh) | 2022-07-20 | 2022-07-20 | 一种恶意软件分类方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115630358A true CN115630358A (zh) | 2023-01-20 |
Family
ID=84902340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210858666.5A Pending CN115630358A (zh) | 2022-07-20 | 2022-07-20 | 一种恶意软件分类方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630358A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、系统、可读存储介质及计算机 |
CN116340944A (zh) * | 2023-05-29 | 2023-06-27 | 山东省计算中心(国家超级计算济南中心) | 基于rgb图像和轻量化模型的恶意代码分类方法及系统 |
CN116861431A (zh) * | 2023-09-05 | 2023-10-10 | 国网山东省电力公司信息通信公司 | 基于多通道图像和神经网络的恶意软件分类方法及系统 |
CN116910758A (zh) * | 2023-09-13 | 2023-10-20 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
CN117034274A (zh) * | 2023-10-08 | 2023-11-10 | 广东技术师范大学 | 基于特征融合的恶意软件分类方法、装置、设备及介质 |
CN117113351A (zh) * | 2023-10-18 | 2023-11-24 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
-
2022
- 2022-07-20 CN CN202210858666.5A patent/CN115630358A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
CN116028936B (zh) * | 2023-02-24 | 2023-05-30 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、系统、可读存储介质及计算机 |
CN116340944A (zh) * | 2023-05-29 | 2023-06-27 | 山东省计算中心(国家超级计算济南中心) | 基于rgb图像和轻量化模型的恶意代码分类方法及系统 |
CN116340944B (zh) * | 2023-05-29 | 2023-08-18 | 山东省计算中心(国家超级计算济南中心) | 基于rgb图像和轻量化模型的恶意代码分类方法及系统 |
CN116861431A (zh) * | 2023-09-05 | 2023-10-10 | 国网山东省电力公司信息通信公司 | 基于多通道图像和神经网络的恶意软件分类方法及系统 |
CN116861431B (zh) * | 2023-09-05 | 2023-11-21 | 国网山东省电力公司信息通信公司 | 基于多通道图像和神经网络的恶意软件分类方法及系统 |
CN116910758A (zh) * | 2023-09-13 | 2023-10-20 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
CN116910758B (zh) * | 2023-09-13 | 2023-12-08 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
CN117034274A (zh) * | 2023-10-08 | 2023-11-10 | 广东技术师范大学 | 基于特征融合的恶意软件分类方法、装置、设备及介质 |
CN117113351A (zh) * | 2023-10-18 | 2023-11-24 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
CN117113351B (zh) * | 2023-10-18 | 2024-02-20 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115630358A (zh) | 一种恶意软件分类方法、装置、计算机设备及存储介质 | |
Vu et al. | HIT4Mal: Hybrid image transformation for malware classification | |
CN107908963B (zh) | 一种自动化检测恶意代码核心特征的方法 | |
Venkatraman et al. | A hybrid deep learning image-based analysis for effective malware detection | |
US10867171B1 (en) | Systems and methods for machine learning based content extraction from document images | |
Almomani et al. | An automated vision-based deep learning model for efficient detection of android malware attacks | |
Liu et al. | A new learning approach to malware classification using discriminative feature extraction | |
AU2014218444B2 (en) | Dynamic feature selection for joint probabilistic recognition | |
US20230021661A1 (en) | Forgery detection of face image | |
Tang et al. | Dynamic API call sequence visualisation for malware classification | |
CN109829306A (zh) | 一种优化特征提取的恶意软件分类方法 | |
CN109101817A (zh) | 一种识别恶意文件类别的方法及计算设备 | |
Obaidat et al. | Jadeite: a novel image-behavior-based approach for java malware detection using deep learning | |
EP3756130A1 (en) | Image hidden information detector | |
Zhu et al. | An effective end-to-end android malware detection method | |
US11501470B2 (en) | Geometric encoding of data | |
Anandhi et al. | Malware visualization and detection using DenseNets | |
CN110866257A (zh) | 木马检测方法及装置、电子设备、存储介质 | |
CN111488574B (zh) | 恶意软件分类方法、系统、计算机设备和存储介质 | |
Nahhas et al. | Android Malware Detection Using ResNet-50 Stacking. | |
US20230032070A1 (en) | Log categorization device and related computer program product with adaptive clustering function | |
CN113032780A (zh) | 一种基于图像分析的Webshell检测方法、终端设备及存储介质 | |
Jeon et al. | Static Multi Feature-Based Malware Detection Using Multi SPP-net in Smart IoT Environments | |
Kissner | Hacking neural networks: A short introduction | |
Koo et al. | Binary Code Representation With Well-Balanced Instruction Normalization |
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 |