软件聚类方法、设备及存储介质

摘要: 本技术涉及计算机安全,尤其涉及一种软件聚类方法、设备及存储介质。背景技术:1、在恶意软件分析领域,通常将待分析的恶意软件视为文档,采用词频-逆文档频率(term...
软件聚类方法、设备及存储介质

本技术涉及计算机安全,尤其涉及一种软件聚类方法、设备及存储介质。

背景技术:

1、在恶意软件分析领域,通常将待分析的恶意软件视为文档,采用词频-逆文档频率(term frequency-inverse document frequency,tf-idf)计算文档中每个n-gram词组的重要性,以基于重要性对待分析软件向量化。进而,基于向量化结果,通过聚类算法分组来实现恶意软件的识别。

2、由于tf-idf的核心在于通过逆文档频率(idf)来评估一个特征在全数据集中的区分度,逆文档频率的计算需要基于足够多的文档(即恶意软件样本)来获得可靠的统计分布。当面对小规模样本集时,会因数据稀疏性问题导致idf值估计不准,无法有效捕捉和区分不同家族的本质特征,从而使聚类精度急剧下降,难以获得有意义的归类结果。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种软件聚类方法、设备及存储介质,旨在解决现有技术中的恶意软件聚类方法在小规模样本数据集上因数据稀疏导致的聚类精度低的技术问题。

2、为实现上述目的,本技术提出一种软件聚类方法,所述软件聚类方法包括:

3、从包含多个软件的反汇编文件的公开数据集中,提取所述公开数据集对应的操作码序列;

4、对所述操作码序列中的操作码根据频率进行独热编码,得到所述操作码对应的通用独热编码映射表;

5、确定待聚类软件对应的目标操作码序列,根据所述通用独热编码映射表和所述目标操作码序列,生成所述待聚类软件对应的向量化文档;

6、将所述向量化文档重塑为初始灰度图像,并基于所述初始灰度图像构建所述待聚类软件对应的软件特征图;

7、利用聚类算法对所述软件特征图聚类分析,并基于所述软件特征图的聚类结果,确定所述待聚类软件的类别标签。

8、在一实施例中,所述基于所述初始灰度图像构建所述待聚类软件对应的软件特征图的步骤包括:

9、通过双线性插值将所述初始灰度图像放大至标准尺寸,得到所述待聚类软件对应的软件特征图。

10、在一实施例中,所述通过双线性插值放大将所述初始灰度图像放大至标准尺寸,得到与各所述待聚类软件对应的软件特征图的步骤包括:

11、针对所述软件特征图中每个待求像素点,在所述初始灰度图像确定所述待求像素点的对应原始位置;

12、在所述初始灰度图像中确定所述原始位置周围的四个邻近像素点,所述四个邻近像素点包括左上像素点、右上像素点、左下像素点和右下像素点;

13、基于左下像素点的灰度值与右下像素点的灰度值,通过水平方向的线性插值计算,得到第一虚拟点的灰度值;

14、基于左上像素点的灰度值与右上像素点的灰度值,通过水平方向的线性插值计算,得到第二虚拟点的灰度值;

15、基于所述第一虚拟点的灰度值与所述第二虚拟点的灰度值,通过垂直方向的线性插值计算,得到待求像素点的灰度值;

16、通过遍历计算所述软件特征图所有所述待求像素点的灰度值,生成所述标准尺寸的所述软件特征图。

17、在一实施例中,所述对所述操作码序列中的操作码根据频率进行独热编码,得到所述操作码对应的通用独热编码映射表的步骤包括:

18、确定每个所述操作码在所述公开数据集的所述操作码序列中的总出现频次;

19、将各所述操作码按照对应的所述总出现频次从高到低的顺序进行排序,生成包含所述操作码、对应的所述总出现频次及排序序号的全局操作码频率排序表;

20、利用所述全局操作码频率排序表,对各所述操作码进行独热编码,得到包含所述操作码及所述操作码对应的独热编码向量的所述通用独热编码映射表。

21、在一实施例中,所述根据所述通用独热编码映射表和所述目标操作码序列,生成所述待聚类软件对应的向量化文档的步骤包括:

22、对于所述目标操作码序列中的每个目标操作码,依据所述通用独热编码映射表查询所述目标操作码对应的目标独热编码向量;

23、将所述目标操作码序列中所有目标所述操作码对应的所述目标独热编码向量进行求和,将求和得到的和向量作为所述待聚类软件的所述向量化文档。

24、在一实施例中,所述利用聚类算法对所述软件特征图聚类分析,并基于所述软件特征图的聚类结果,确定所述待聚类软件的类别标签的步骤包括:

25、采用肘形规则确定聚类的最优聚类簇数;

26、以所述最优聚类簇数为聚类中心数量对所述软件特征图执行k均值聚类,基于所述软件特征图的聚类结果,确定所述待聚类软件的类别标签。

27、在一实施例中,所述采用肘形规则确定聚类的最优聚类簇数的步骤包括:

28、获取多个不同的候选聚类簇数;

29、对于每个所述候选聚类簇数,以所述候选聚类簇数为聚类中心数量对所述软件特征图执行k均值聚类,并计算所述候选聚类簇数下的聚类结果对应的误差平方和;

30、计算所述候选聚类簇数对应的所述误差平方和与前一候选聚类簇数对应的误差平方和之间差值的绝对值,所述候选聚类簇数与所述前一候选聚类簇数相邻且所述候选聚类簇数大于所述前一候选聚类簇数;

31、若所述差值的绝对值小于预设值,将对应的所述候选聚类簇数确定为初步最优聚类簇数;

32、将所述初步最优聚类簇数中的最小值确定为所述最优聚类簇数。

33、在一实施例中,所述以所述最优聚类簇数为聚类中心数量对所述软件特征图执行k均值聚类,基于所述软件特征图的聚类结果,确定所述待聚类软件的类别标签的步骤包括:

34、以所述最优聚类簇数作为聚类中心数量,初始化所述最优聚类簇数个质心;

35、通过自编码器对所述软件特征图进行潜空间编码,得到对应的潜在特征向量;

36、将所述潜在特征向量分配至距离最近的质心所属的簇,迭代更新各簇质心与各所述潜在特征向量的簇归属,直至满足收敛条件,得到聚类结果;

37、将所述聚类结果中的各所述潜在特征向量所属簇的簇类别标签,作为对应的所属待聚类软件的所述类别标签。

38、此外,为实现上述目的,本技术还提出一种软件聚类装置,所述软件聚类装置包括:

39、序列码提取模块,用于从包含多个软件的反汇编文件的公开数据集中,提取所述公开数据集对应的操作码序列;

40、独热编码模块,用于对所述操作码序列中的操作码根据频率进行独热编码,得到所述操作码对应的通用独热编码映射表;

41、向量文档生成模块,用于确定待聚类软件对应的目标操作码序列,根据所述通用独热编码映射表和所述目标操作码序列,生成所述待聚类软件对应的向量化文档;

42、重塑模块,用于将所述向量化文档重塑为初始灰度图像,并基于所述初始灰度图像构建所述待聚类软件对应的软件特征图;

43、聚类模块,用于利用聚类算法对所述软件特征图聚类分析,并基于所述软件特征图的聚类结果,确定所述待聚类软件的类别标签

44、此外,为实现上述目的,本技术还提出一种软件聚类设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的软件聚类方法的步骤。

45、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的软件聚类方法的步骤。

46、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的软件聚类方法的步骤。

47、本技术提出的一个或多个技术方案,至少具有以下技术效果:通过从包含多个软件的反汇编文件的公开数据集中,提取公开数据集对应的操作码序列。对操作码序列中的操作码根据频率进行独热编码,得到操作码对应的通用独热编码映射表,为每个操作码分配唯一的固定编码向量,通用独热编码映射表为全局、静态且确定性的,不随待聚类软件变化,即使待聚类样本极少,其操作码仍可以通过通用独热编码映射表获得稳定、高区分度的编码,无需计算词频/逆文档频率,摆脱对大样本统计分布的依赖。确定待聚类软件对应的目标操作码序列,针对每个待聚类软件,根据通用独热编码映射表和对应的目标操作码序列直接对完整的目标操作码序列进行独热编码转化,保留待聚类软件操作码的全局序列特征,生成待聚类软件对应的向量化文档。将向量化文档重塑为初始灰度图像,并基于初始灰度图像构建待聚类软件对应的软件特征图。最后,利用聚类算法对软件特征图聚类分析,并基于软件特征图的聚类结果,确定待聚类软件的类别标签,有效区分不同恶意软件的特征图差异,得到各待聚类软件的类别标签,解决现有技术中的恶意软件聚类方法在小规模样本数据集上因数据稀疏导致的聚类精度低的技术问题,整体上摆脱传统方法对样本量的依赖,以使在样本数量有限的情况下,实现高精度的聚类划分。