一种实现信息分类的方法及装置与流程

文档序号:15348393发布日期:2018-09-04 23:02阅读:122来源:国知局

本文涉及但不限于信息安全技术,尤指一种实现信息分类的方法及装置。



背景技术:

随着互联网的发展,恶意代码也在不断的发展和演化,逐渐产生出后门、特洛伊木马、蠕虫、僵尸程序等多种新型恶意代码形态,给计算机与网络的安全带来了极大的挑战,使企业和用户蒙受了巨大的经济损失,严重威胁国家的信息安全。

快速、准确地对恶意代码分类是防范恶意代码的关键之一;目前,恶意代码分类主要由本领域技术人员根据经验对恶意软件的特征码进行提取分析,当恶意软件的样本数多时,分析过程繁琐,效率低,且存在评判标准不统一的问题。



技术实现要素:

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本发明实施例提供一种实现信息分类的方法及装置,能够实现函数的自动分类,简化分类过程,统一分类标准。

本发明实施例提供了一种实现信息分类的方法,包括:

以字节码表示可移植可执行pe文件中包含的函数;

对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;

基于获得的样本集信息,进行函数的相似度判断;

根据函数的相似度判断的判断结果进行函数分类。

可选的,所述以字节码表示可移植可执行pe文件中包含的函数包括:

逆向解析所述pe文件后,根据所述逆向解析的结果以所述字节码表示所述pe文件中包含的函数。

可选的,所述对以字节码表示的函数进行预处理包括:

判断函数的所述字节码是否大于第一预设长度;

删除字节码小于或等于所述第一预设长度的函数;

对字节码大于第一预设长度的各函数,分别截取字节码中第二预设长度的字节作为函数的所述样本集信息。

可选的,所述进行函数的相似度判断包括:

对截取的各样本集信息分别做笛卡尔积并删除笛卡尔积后的重复项,获得由所有样本集信息中包含的函数构成的函数对;

遍历获得的所有函数对,确定组成的每一个函数对的最长的公共子序列;

对每一个函数对,分别计算确定的最长的公共子序列的长度和样本集信息的长度的比值,将计算获得的比值作为函数对的相似度值。

可选的,所述根据函数的相似度判断的判断结果进行函数分类包括:

将函数对的相似度值与预设百分比阈值进行对比;

剔除相似度值小于所述预设百分比阈值的函数对,以完成剔除处理后的函数对的相似度值构建函数相似度关系拓扑图;

对构建的所述函数相似度关系拓扑图进行聚类处理,以实现函数分类。

可选的,所述进行聚类处理包括:

对构建的所述函数相似度关系拓扑图进行极大团搜索。

另一方面,本发明实施例还提供一种信息分类的装置,包括:解析单元、预处理单元、相似度判断单元和分类单元;其中,

解析单元用于:以字节码表示可移植可执行pe文件中包含的函数;

预处理单元用于:对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;

相似度判断单元用于:基于获得的样本集信息,进行函数的相似度判断;

分类单元用于:根据函数的相似度判断的判断结果进行函数分类。

可选的,所述解析单元具体用于:逆向解析所述pe文件后,根据所述逆向解析的结果以所述字节码表示所述pe文件中包含的函数。

可选的,所述预处理单元具体用于:

判断函数的所述字节码是否大于第一预设长度;

删除字节码小于或等于所述第一预设长度的函数;

对字节码大于第一预设长度的各函数,分别截取字节码中第二预设长度的字节作为函数的所述样本集信息。

可选的,所述相似度判断单元具体用于:

对截取的各样本集信息分别做笛卡尔积并删除笛卡尔积后的重复项,获得由所有样本集信息中包含的函数构成的函数对;

遍历获得的所有函数对,确定组成的每一个函数对的最长的公共子序列;

对每一个函数对,分别计算确定的最长的公共子序列的长度和样本集信息的长度的比值,将计算获得的比值作为函数对的相似度值。

可选的,所述分类单元具体用于:

将函数对的相似度值与预设百分比阈值进行对比;

剔除相似度值小于所述预设百分比阈值的函数对,以完成剔除处理后的函数对的相似度值构建函数相似度关系拓扑图;

对构建的所述函数相似度关系拓扑图进行聚类处理,以实现函数分类。

可选的,所述分类单元用于对构建的所述函数相似度关系拓扑图进行聚类处理包括:

对构建的所述函数相似度关系拓扑图进行极大团搜索。

再一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述文件分类的方法。

与相关技术相比,本申请技术方案包括:以字节码表示可移植可执行(pe)文件中包含的函数;对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;基于获得的样本集信息,进行函数的相似度判断;根据函数的相似度判断的判断结果进行函数分类。本发明实施例实现了函数的自动分类,简化了分类过程,统一了分类标准。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例实现信息分类的方法的流程图;

图2为本发明实施例实现信息分类的装置的结构框图;

图3为本发明应用示例实现信息分类的方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

通过申请人分析发现,恶意代码往往由一个或一个以上具有指定功能的函数构成,每一个函数是一段逻辑上独立的代码,每一段代码的功能逻辑与操作系统版本、类型无关。如果对可移植可执行(pe)文件,以函数作为分类单元进行分析,有助于深度挖掘pe文件之间的相似性,实现pe文件的关联分析,和pe文件的自动分类,简化分类过程,统一分类标准。

图1为本发明实施例实现信息分类的方法的流程图,如图1所示,包括:

步骤101、以字节码表示可移植可执行(pe)文件中包含的函数;

可选的,本发明实施例以字节码表示可移植可执行pe文件中包含的函数包括:

逆向解析所述pe文件后,根据所述逆向解析的结果以所述字节码表示所述pe文件中包含的函数。

步骤102、对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;

可选的,本发明实施例对以字节码表示的函数进行预处理包括:

判断函数的所述字节码是否大于第一预设长度;

删除字节码小于或等于所述第一预设长度的函数;

对字节码大于第一预设长度的各函数,分别截取字节码中第二预设长度的字节作为函数的所述样本集信息。

这里,第一预设长度可以是128字节到512字节的一个长度,例如512字节;第二预设长度可以等于第一预设长度,截取的样本集信息可以包括以函数的起始位置作为初始位置所截取的函数。本领域技术人员可以根据函数的特征分析确定其他位置作为截取的初始位置。

步骤103、基于获得的样本集信息,进行函数的相似度判断;

可选的,本发明实施例进行函数的相似度判断包括:

对截取的各样本集信息分别做笛卡尔积并删除笛卡尔积后的重复项,获得由所有样本集信息中包含的函数构成的函数对;

遍历获得的所有函数对,确定组成的每一个函数对的最长的公共子序列;

对每一个函数对,分别计算确定的最长的公共子序列的长度和样本集信息的长度的比值,将计算获得的比值作为函数对的相似度值。

需要说明的是,本发明实施例做笛卡尔积并删除笛卡尔积后的重复项的处理过程与相关技术的原理相同,处理后获得本发明实施例进行相似度计算的函数对。

另外,本发明实施例进行相似度计算时,需要对所有函数两两进行相似度值的计算,即每一个函数对应的字节码,需要和其他函数的字节码进行相似度值的计算。

步骤104、根据函数的相似度判断的判断结果进行函数分类。

可选的,本发明实施例根据函数的相似度判断的判断结果进行函数分类包括:

将函数对的相似度值与预设百分比阈值进行对比;

剔除相似度值小于所述预设百分比阈值的函数对,以完成剔除处理后的函数对的相似度值构建函数相似度关系拓扑图;

对构建的所述函数相似度关系拓扑图进行聚类处理,以实现函数分类。

需要说明的是,本发明实施例预设百分比阈值可以是60%~90%中的一个取值,例如80%,可以由本领域技术人员根据分类要求进行分析确定,分类越精细时,百分比阈值越大。

可选的,本发明实施例进行聚类处理包括:

对构建的所述函数相似度关系拓扑图进行极大团搜索。

需要说明的是,本发明实施例可以采用相关技术已有的处理方法进行聚类处理,极大团搜索只是本发明实施例的可选实施例方式。

本发明实施例信息分类包括函数分类。

与相关技术相比,本申请技术方案包括:以字节码表示可移植可执行(pe)文件中包含的函数;对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;基于获得的样本集信息,进行函数的相似度判断;根据函数的相似度判断的判断结果进行函数分类。本发明实施例实现了函数的自动分类,简化了分类过程,统一了分类标准。

图2为本发明实施例实现信息分类的装置的结构框图,如图2所示,包括:解析单元、预处理单元、相似度判断单元和分类单元;其中,

解析单元用于:以字节码表示可移植可执行pe文件中包含的函数;

可选的,本发明实施例解析单元具体用于:逆向解析所述pe文件后,根据所述逆向解析的结果以所述字节码表示所述pe文件中包含的函数。

预处理单元用于:对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;

可选的,本发明实施例预处理单元具体用于:

判断函数的所述字节码是否大于第一预设长度;

删除字节码小于或等于所述第一预设长度的函数;

对字节码大于第一预设长度的各函数,分别截取字节码中第二预设长度的字节作为函数的所述样本集信息。

相似度判断单元用于:基于获得的样本集信息,进行函数的相似度判断;

可选的,本发明实施例相似度判断单元具体用于:

对截取的各样本集信息分别做笛卡尔积并删除笛卡尔积后的重复项,获得由所有样本集信息中包含的函数构成的函数对;

遍历获得的所有函数对,确定组成的每一个函数对的最长的公共子序列;

对每一个函数对,分别计算确定的最长的公共子序列的长度和样本集信息的长度的比值,将计算获得的比值作为函数对的相似度值。

分类单元用于:根据函数的相似度判断的判断结果进行函数分类。

可选的,本发明实施例分类单元具体用于:

将函数对的相似度值与预设百分比阈值进行对比;

剔除相似度值小于所述预设百分比阈值的函数对,以完成剔除处理后的函数对的相似度值构建函数相似度关系拓扑图;

对构建的所述函数相似度关系拓扑图进行聚类处理,以实现函数分类。

可选的,所述分类单元用于对构建的所述函数相似度关系拓扑图进行聚类处理包括:

对构建的所述函数相似度关系拓扑图进行极大团搜索。

再一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述文件分类的方法。

与相关技术相比,本申请技术方案包括:以字节码表示可移植可执行(pe)文件中包含的函数;对以字节码表示的函数进行预处理,获得进行函数相似度判断的样本集信息;基于获得的样本集信息,进行函数的相似度判断;根据函数的相似度判断的判断结果进行函数分类。本发明实施例实现了函数的自动分类,简化了分类过程,统一了分类标准。

本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述信息分类的方法。

以下通过应用示例对本发明实施例方法进行清楚详细的说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。

应用示例

图3为本发明应用示例实现信息分类的方法的流程图,如图3所示,本应用示例以pe文件微恶意pe样本为例进行说明。

步骤301、对一批pe文件进行逆向解析,根据逆向解析的结果以十六位字节码表示pe文件中包含的函数;

步骤302、对以字节码表示的函数进行预处理,过滤掉字节码长度小于512字节的函数,并截取字节码的前512个字节作为样本集信息;

步骤303、对函数两两进行函数的相似度判断,获得函数对的相似度值;本应用示例进行相似度判断的方法包括:先使函数样本对自己做笛卡尔积,并去掉重复的项,得到函数对;找出每个函数对的字节码的最长公共子序列,最长公共子序列长度与样本集信息的长度的比值即为相似度值;

步骤304、过滤掉相似度值小于80%的函数对,以完成剔除处理后的函数对构建函数相似度关系拓扑图;

步骤305、对构建的函数相似度关系拓扑图进行极大团搜索;本应用示例极大团的搜索结果即为函数的分类结果。

本应用示例,可以基于动态规划算法计算函数的函数对的最长公共子序列,求出函数间的相似度值:

假设函数x的字节码为x=<x1,x2,…,xm>,函数y的字节码为y=<y1,y2,…,yn>。

本应用示例首先求解x、y的最长公共子序列的长度。本应用实施例可以用一个二维数组c[i,j]记录序列xi和yj的最长公共子序列的长度,一个二维数组b[i,j]记录指示c[i,j]的值是由哪一个子问题的解达到的。

c[i,j]由以下递归求解得到:

b[i,j]由c[i,j]的结果得到:

由计算得到的数组b可用于构造序列x=<x1,x2,…,xm>和y=<y1,y2,…,yn>的最长公共子序列;本应用示例首先从b[m,n]开始,在数组b中搜索;当b[i,j]等于0时,表示xi与yj的最长公共子序列是由xi-1与yj-1的最长公共子序列在尾部加上xi得到的子序列;当b[i,j]等于1时,表示xi与yj的最长公共子序列和xi-1与yj的最长公共子序列相同;当b[i,j]等于2时,表示xi与yj的最长公共子序列和xi与yj-1的最长公共子序列相同。

本应用示例函数x和函数y的相似度值由求得的最长公共子序列的长度和函数的长度比值得到。

本应用示例使用极大团搜索算法完成函数的分类:

将函数作为顶点,所有有相似关系的函数对为边,构成一张无向图,函数的分类问题就转化成了搜索该无向图中所有的完全子图即极大团的问题,极大团中的节点两两间都有边相连,即极大团中的函数两两间都满足相似度大于80%,所以一个极大团就是一个函数分类。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1