本说明书实施例涉及人工智能,具体地,涉及用于训练代码漏洞检测模型的方法及装置。
背景技术:
1、对代码进行程度漏洞的检测是计算机领域中的常见项目,其目的是为了查找代码缺陷和安全漏洞,使得代码能够正常运行。目前,静态代码分析是应用最广泛的代码漏洞检测工具。静态代码分析能够在不实际执行代码程序的情况下,对代码语义和行为进行分析,以实现代码的可靠性和安全性的目的。
技术实现思路
1、鉴于上述,本说明书实施例提供了用于训练代码漏洞检测模型的方法及装置。通过本说明书实施例的技术方案,基于代码属性图的模型训练,能够更好地挖掘代码中的上下文信息,从而提高代码漏洞检测模型的漏洞检测准确度。
2、根据本说明书实施例的一个方面,提供了一种用于训练代码漏洞检测模型的方法,包括:将待检测代码转换成代码属性图;根据所述代码属性图中的方法节点从所述代码属性图中得到针对所述方法节点的函数级代码属性图,所述函数级代码属性图包括所述方法节点以及与所述方法节点关联的其他节点;基于所述函数级代码属性图得到所述函数级代码属性图中的各个节点对应初始特征向量;以及利用所述函数级代码属性图和所述初始特征向量对所述代码漏洞检测模型进行训练。
3、根据本说明书实施例的另一方面,还提供一种用于训练代码漏洞检测模型的装置,包括:图转换单元,将待检测代码转换成代码属性图;子图得到单元,根据所述代码属性图中的方法节点从所述代码属性图中得到针对所述方法节点的函数级代码属性图,所述函数级代码属性图包括所述方法节点以及与所述方法节点关联的其他节点;特征向量化单元,基于所述函数级代码属性图得到所述函数级代码属性图中的各个节点对应初始特征向量;以及训练单元,利用所述函数级代码属性图和所述初始特征向量对所述代码漏洞检测模型进行训练。
4、根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上述任一所述的用于训练代码漏洞检测模型的方法。
1.一种用于训练代码漏洞检测模型的方法,包括:
2.如权利要求1所述的方法,其中,利用所述函数级代码属性图和所述初始特征向量对所述代码漏洞检测模型进行训练包括:
3.如权利要求2所述的方法,其中,利用各个目标节点的目标节点特征向量对所述代码漏洞检测模型的参数进行调整包括:
4.如权利要求2所述的方法,其中,针对每个目标节点以及对应的邻居节点,根据该目标节点、对应的邻居节点以及该目标节点与对应的各个邻居节点之间的边计算各个邻居节点相对于该目标节点的邻居节点特征向量包括:
5.如权利要求1所述的方法,还包括:
6.如权利要求5所述的方法,其中,所述归一化处理的对象包括所述函数级代码中的函数和/或变量名。
7.如权利要求1所述的方法,其中,根据所述代码属性图中的方法节点从所述代码属性图中得到针对所述方法节点的函数级代码属性图包括:
8.一种用于训练代码漏洞检测模型的装置,包括:
9.如权利要求8所述的装置,其中,所述训练单元包括:
10.如权利要求9所述的装置,其中,所述参数调整模块包括:
11.如权利要求9所述的装置,其中,所述特征向量化模块被配置为:
12.如权利要求8所述的装置,还包括:
13.如权利要求8所述的装置,其中,所述子图得到单元被配置为:
14.一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求1-7中任一所述的方法。