一种代码污点检测的方法、装置、设备及介质与流程

文档序号:36634507发布日期:2024-01-06 23:22阅读:21来源:国知局
一种代码污点检测的方法、装置、设备及介质与流程

本申请实施例涉及网络安全领域,具体涉及一种代码污点检测的方法、装置、设备及介质。


背景技术:

1、代码缺陷分析是指在不运行目标程序的前提下分析目标程序,从而对代码污点进行检测。相关技术中,利用节点分类器对抽象语法树中的节点进行分类,然后基于生成的控制流程图进行恶意代码检测。但是,上述方案仅能够对一个文件进行检测,同时由于语法树的节点复杂,导致检测的准确率和效率降低。

2、因此,如何提高代码污点检测的准确率和效率成为需要解决的问题。


技术实现思路

1、本申请实施例提供一种代码污点检测的方法、装置、设备及介质,通过本申请的一些实施例至少能够明确代码文件的有向关系,追溯完整的污点路径,从而提高代码污点检测的准确率和效率。

2、第一方面,本申请提供了一种代码污点检测的方法,所述方法包括:将各代码文件转换为语法树文件;基于预定义节点和所述语法树文件构建所述各代码文件内部的有向关系图和所述各代码文件之间的有向关系图,其中,所述预定义节点包括函数、变量以及参数;将所述有向关系图中符合预设条件的路径作为污点路径,其中,所述污点路径中包括恶意代码。

3、因此,与相关技术中直接使用语法树文件进行代码污点检测不同的是,本申请实施例通过预定义节点建立各文件内部和各文件之间的有向关系图,从而能够明确污点路径的上下游完整链路,进而提高代码污点检测的准确率和效率。

4、结合第一方面,在本申请的一种实施方式中,所述将所述有向关系图中符合预设条件的路径作为污点路径,包括:在所述有向关系图中确定检测起点和检测终点,计算所述检测起点至所述检测终点之间的至少一个路径;将所述至少一个路径中符合所述预设条件的路径作为所述污点路径。

5、因此,本申请实施例通过在有向关系图中确定检测起点和检测终点,从而确定至少一条路径,能够保证存在污点的每一条路径都被检测出来,从而提高污点检测的准确率。

6、结合第一方面,在本申请的一种实施方式中,所述将所述至少一个路径中符合所述预设条件的路径作为所述污点路径,包括:执行所述至少一个路径中各路径相对应的语句;将执行异常的语句相应的路径作为所述污点路径。

7、因此,本申请实施例通过执行路径相应语句,能够快速的获得污点路径。

8、结合第一方面,在本申请的一种实施方式中,所述将所述有向关系图中符合预设条件的路径作为污点路径,包括:在所述有向关系图中确定检测起点、清洗点和检测终点,其中,所述清洗点用于对数据进行安全检测;计算所述检测起点至所述检测终点之间的至少一个路径;将所述至少一个路径中不包含所述清洗点的路径,作为所述污点路径。

9、因此,本申请实施例通过在有向关系图中设置清洗点,能够保证输出的数据是安全的,并且也能够查找到没有经过清洗点的路径,从而提高了检测速度。

10、结合第一方面,在本申请的一种实施方式中,在所述基于预定义节点和所述语法树文件构建所述各代码文件内部的有向关系图和所述各代码文件之间的有向关系图之后,所述方法还包括:计算所述各代码文件相应有向关系图的节点的唯一id值,并且使用所述唯一id值表征所述有向关系图。

11、因此,本申请实施例通过为每一个节点生成相应的唯一id值,能够保证节点不互相混淆,从而保证了代码污点检测的准确性。

12、第二方面,本申请提供了一种代码污点检测的装置,所述装置包括:文件转换模块,被配置为将各代码文件转换为语法树文件;关系图构建模块,被配置为基于预定义节点和所述语法树文件构建所述各代码文件内部的有向关系图和所述各代码文件之间的有向关系图,其中,所述预定义节点包括函数、变量以及参数;代码污点检测模块,被配置为将所述有向关系图中符合预设条件的路径作为污点路径,其中,所述污点路径中包括恶意代码。

13、结合第二方面,在本申请的一种实施方式中,所述代码污点检测模块还被配置为:在所述有向关系图中确定检测起点和检测终点,计算所述检测起点至所述检测终点之间的至少一个路径;将所述至少一个路径中符合所述预设条件的路径作为所述污点路径。

14、结合第二方面,在本申请的一种实施方式中,所述代码污点检测模块还被配置为:执行所述至少一个路径中各路径相对应的语句;将执行异常的语句相应的路径作为所述污点路径。

15、结合第二方面,在本申请的一种实施方式中,所述代码污点检测模块还被配置为:在所述有向关系图中确定检测起点、清洗点和检测终点,其中,所述清洗点用于对数据进行安全检测;计算所述检测起点至所述检测终点之间的至少一个路径;将所述至少一个路径中不包含所述清洗点的路径,作为所述污点路径。

16、结合第二方面,在本申请的一种实施方式中,所述关系图构建模块还被配置为:计算所述各代码文件相应有向关系图的节点的唯一id值,并且使用所述唯一id值表征所述有向关系图。

17、第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机程序,所述计算机程序由所述处理器执行时可实现如第一方面任意实施例所述的方法。

18、第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行时可实现如第一方面任意实施例所述的方法。



技术特征:

1.一种代码污点检测的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将所述有向关系图中符合预设条件的路径作为污点路径,包括:

3.根据权利要求2所述的方法,其特征在于,所述将所述至少一个路径中符合所述预设条件的路径作为所述污点路径,包括:

4.根据权利要求1所述的方法,其特征在于,所述将所述有向关系图中符合预设条件的路径作为污点路径,包括:

5.根据权利要求1-4任一项所述的方法,其特征在于,在基于预定义节点和所述语法树文件构建所述各代码文件内部的有向关系图和所述各代码文件之间的有向关系图之后,所述方法还包括:

6.一种代码污点检测的装置,其特征在于,所述装置包括:

7.根据权利要求6所述的装置,其特征在于,所述代码污点检测模块还被配置为:

8.根据权利要求7所述的装置,其特征在于,所述代码污点检测模块还被配置为:

9.一种电子设备,其特征在于,包括:处理器、存储器和总线;

10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行时可实现如权利要求1-5任一项所述方法。


技术总结
本申请实施例提供一种代码污点检测的方法、装置、设备及介质,该方法包括:将各代码文件转换为语法树文件;基于预定义节点和所述语法树文件构建所述各代码文件内部的有向关系图和所述各代码文件之间的有向关系图,其中,所述预定义节点包括函数、变量以及参数;将所述有向关系图中符合预设条件的路径作为污点路径,其中,所述污点路径中包括恶意代码。通过本申请的一些实施例能够明确代码文件的有向关系,追溯完整的污点路径,从而提高代码污点检测的准确率和效率。

技术研发人员:乔子豪
受保护的技术使用者:湖北天融信网络安全技术有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1