本发明属于软件安全,尤其是涉及一种基于知识图谱的恶意软件溯源方法。
背景技术:
1、恶意软件在计算机网络中的广泛传播引发了对信息安全的重大威胁。当前,针对恶意软件的定位技术主要侧重于揭示其包含的恶意代码以及提供用户可理解的恶意行为可解释性描述。然而,这些技术仅限于当前恶意软件的分析,无法进行深入的恶意代码溯源分析。这一局面导致了对恶意软件生态的理解不足。由此产生的问题在于,安全防御方面无法实现与攻击者的深入对抗,使得防御手段相对滞后。然而,关键恶意代码的溯源分析面临着挑战。一方面,随着恶意代码检测技术的不断进步,攻击者采用免杀技术创建变体,以躲避恶意软件的检测。另一方面,安卓系统的开源性以及许多恶意软件公开的源代码导致恶意代码的复用现象屡见不鲜,为溯源分析增加了极大的复杂性。尽管目前的恶意代码定位技术可以自动化地提取嵌入软件的恶意代码,但现有方法无法有效追踪这些代码的来源,尤其是在进行细粒度的溯源分析时更为困难。
技术实现思路
1、针对现有技术的不足,本发明拟解决的技术问题是,提供一种基于知识图谱的恶意软件溯源方法,过对抗性机器学习技术和行为模式分析相结合,能够有效应对恶意代码的变体和复用现象,实现对关键恶意代码的溯源分析,从而提高了对恶意软件生态的理解,并为安全防御提供了更有效的手段。
2、为达到上述目的,本发明的技术方案是这样实现的:
3、本发明第一方面提供了一种基于知识图谱的恶意软件溯源方法,包括如下步骤:
4、步骤1:构建恶意软件样本集;
5、步骤2:对恶意软件样本集中的每个样本生成敏感子图,包括:
6、构造安卓应用的函数调用图,标记图中的敏感api,定义敏感api相关图为函数调用图的一个最大子图,图中包含所有敏感api节点以及它们的父辈节点,每个样本均被表示为一个敏感api关联图,利用社区划分算法对敏感api关联图进行社团划分,保留至少包含一个敏感api节点的子图,将其定义为敏感子图;
7、步骤3:基于敏感子图进行恶意软件溯源,包括:
8、为每一个敏感子图构建其相应的距离矩阵;
9、根据距离矩阵计算敏感子图中节点相似性;
10、根据敏感子图中节点相似性计算敏感子图相似性;
11、根据敏感子图相似性进行子图聚类,得到与待溯源子图表达相同或相似行为的子图簇,进而对恶意软件进行溯源。
12、进一步的,还包括为敏感api赋予不同的权重。
13、进一步的,所述步骤3中,距离矩阵用来描述该图中敏感api节点之间的关系,敏感子图的距离矩阵matrixk[i,j]通过下面公式获得:
14、
15、进一步的,所述步骤3中,对于给定敏感子图sg1与敏感子图sg2,其相似性sim(sg1,sg2)计算如下:根据距离矩阵为每一个敏感api节点构建一个t维向量,t为图中敏感api节点数,敏感子图sg1与敏感子图sg2中敏感api节点vi的相似性表示为ns(vi),采用余弦相似度计算公式获得;
16、
17、进一步的,所述步骤3中,敏感子图相似性计算simf(sg1,sg2)的计算依赖于两个子图中相同敏感api节点相似性的加权平均,计算公式如下:
18、
19、其中,ω(vi,f)为vi在家族f中的权重。
20、进一步的,所述步骤3中,子图聚类包括恶意软件样本集的敏感子图集合和子图的相似度阈值作为输入,输出为子图簇集合,其中每一个元素为一个子图簇,包含若干个相似的子图;开始时,一个子图簇包含一个敏感子图元素,遍历其他样本的敏感子图,并判断子图簇是否存在一个簇可以将当前敏感子图元素添加进去,添加的条件为当前敏感子图与簇中所有敏感子图的平均相似度高于阈值,如果存在多个簇满足子图添加条件,则选择平均相似度最高的簇,如果最后簇里只有一个敏感子图,说明没有敏感子图与该簇内子图恶意行为相配,删除这个簇,最后得到的每个簇里的子图都表达相似的恶意行为。
21、本发明第二方面提供了一种基于知识图谱的恶意软件溯源系统,包括:
22、第一模块,用于构建恶意软件样本集;
23、第二模块,用于对恶意软件样本集中的每个样本生成敏感子图,包括:
24、构造安卓应用的函数调用图,标记图中的敏感api,定义敏感api相关图为函数调用图的一个最大子图,图中包含所有敏感api节点以及它们的父辈节点,每个样本均被表示为一个敏感api关联图,利用社区划分算法对敏感api关联图进行社团划分,保留至少包含一个敏感api节点的子图,将其定义为敏感子图;
25、第三模块,用于基于敏感子图进行恶意软件溯源,包括:
26、为每一个敏感子图构建其相应的距离矩阵;
27、根据距离矩阵计算敏感子图中节点相似性;
28、根据敏感子图中节点相似性计算敏感子图相似性;
29、根据敏感子图相似性进行子图聚类,得到与待溯源子图表达相同或相似行为的子图簇,进而对恶意软件进行溯源。
30、本发明第三方面提供了一种计算机设备,包括:处理器以及与所述处理器通信连接的存储器;
31、所述存储器存储计算机程序;
32、所述处理器执行所述存储器存储的计算机程序,以实现上述一种基于知识图谱的恶意软件溯源方法。
33、本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述一种基于知识图谱的恶意软件溯源方法。
34、本发明第五方面提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述一种基于知识图谱的恶意软件溯源方法。
35、与现有技术相比,本发明的有益效果在于:
36、本发明基于知识图谱构建,实现了对恶意软件高度准确且全面的追溯性关系的发现,能够提供更为全面和精确的追溯性分析结果;
37、本发明利用带有语义和行为特征的部分api调用图,揭示恶意软件之间的可追溯性关系并生成可解释的结果,该方法基于一个包含十年内超过20,000个带标签的恶意软件样本的数据集,通过利用先验知识和api调用图的分支修剪方法来解决复杂性,本发明的方法减少了计算复杂性,提高了确定可追溯性关系的精度;
38、本发明提出了一种敏感api相关图的生成方法,用于简化图分析复杂度和排除良性代码的干扰;
39、本发明通过子图聚类分析,获取并分析与待溯源子图表达相同或相似行为的子图簇,深入了解恶意代码的进化过程,为防御提供支持。
1.一种基于知识图谱的恶意软件溯源方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种基于知识图谱的恶意软件溯源方法,其特征在于:还包括为敏感api赋予不同的权重。
3.根据权利要求1所述的一种基于知识图谱的恶意软件溯源方法,其特征在于:所述步骤3中,距离矩阵用来描述该图中敏感api节点之间的关系,敏感子图的距离矩阵matrixk[i,j]通过下面公式获得:
4.根据权利要求1所述的一种基于知识图谱的恶意软件溯源方法,其特征在于:所述步骤3中,对于给定敏感子图sg1与敏感子图sg2,其相似性sim(sg1,sg2)计算如下:根据距离矩阵为每一个敏感api节点构建一个t维向量,t为图中敏感api节点数,敏感子图sg1与敏感子图sg2中敏感api节点vi的相似性表示为ns(vi),采用余弦相似度计算公式获得;
5.根据权利要求1所述的一种基于知识图谱的恶意软件溯源方法,其特征在于:所述步骤3中,敏感子图相似性计算simf(sg1,sg2)的计算依赖于两个子图中相同敏感api节点相似性的加权平均,计算公式如下:
6.根据权利要求1所述的一种基于知识图谱的恶意软件溯源方法,其特征在于:所述步骤3中,子图聚类包括恶意软件样本集的敏感子图集合和子图的相似度阈值作为输入,输出为子图簇集合,其中每一个元素为一个子图簇,包含若干个相似的子图;开始时,一个子图簇包含一个敏感子图元素,遍历其他样本的敏感子图,并判断子图簇是否存在一个簇可以将当前敏感子图元素添加进去,添加的条件为当前敏感子图与簇中所有敏感子图的平均相似度高于阈值,如果存在多个簇满足子图添加条件,则选择平均相似度最高的簇,如果最后簇里只有一个敏感子图,说明没有敏感子图与该簇内子图恶意行为相配,删除这个簇,最后得到的每个簇里的子图都表达相似的恶意行为。
7.一种基于知识图谱的恶意软件溯源系统,其特征在于:包括:
8.一种计算机设备,包括:处理器以及与所述处理器通信连接的存储器;
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-6任一项所述的一种基于知识图谱的恶意软件溯源方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的一种基于知识图谱的恶意软件溯源方法。
