【技术实现步骤摘要】
全局污点数据流检测方法、电子设备、系统、介质和程序
[0001]本申请属于安全领域中代码安全检测领域,特别涉及全局污点数据流检测方法、电子设备、系统、介质和程序。
技术介绍
[0002]识别污点函数并追踪污点数据流是代码检测中的关键步骤之一,数据流路径识别定位不精确将导致代码检测结果的误报率和漏报率急剧增高。
[0003]当前基于字节码进行代码检测过程中,定位污点函数后,往往是在过程(方法)内进行污点数据流路径分析。然而在实际编码中,数据流的作用域涉及全局跨文件,跨过程(方法)间的代码,该方法无法精确全面地查找出跨文件、跨过程(方法)的所有污点数据流路径信息。
[0004]因此,需要一种能够实现跨文件、跨过程(方法)间的全局污点数据流检测的方法。
技术实现思路
[0005]鉴于以上技术问题,本申请提出了一种全局污点数据流检测方法、电子设备、系统、介质和程序。
[0006]根据本申请的一个方面,提供了一种全局污点数据流检测方法,包括:对待检测的字节码文件进行指令解析,并在解析出方法调用指 ...
【技术保护点】
【技术特征摘要】
1.一种全局污点数据流检测方法,包括:对待检测的字节码文件进行指令解析,并在解析出方法调用指令时进行方法内联;基于内联后的字节码文件进行词法和语法分析以生成抽象语法树;对抽象语法树进行语义分析,以提取基本块信息、代码流向信息和属性流向信息作为元数据;将基本块信息作为节点、代码流向信息作为边、属性流向信息作为边上的标签来构建代码的中间有向图形;以及基于代码的中间有向图形,判断两个节点之间是否可达,并获取可达的两个节点之间的数据流信息。2.根据权利要求1所述的全局污点数据流检测方法,还包括上传待检测的字节码文件。3.根据权利要求1所述的全局污点数据流检测方法,其中对待检测的字节码文件进行指令解析,并在解析出方法调用指令时进行方法内联包括:提取待检测的字节码文件的类、属性和方法信息;确定所提取的方法是否包含入口方法;在确定包含入口方法的情况下,顺序分析入口方法内的方法体字节码指令;确定方法体字节码指令是否为方法调用指令;在确定方法体字节指令是方法调用指令时递归合并字节码指令;在确定方法体字节指令不是方法调用指令时记录当前字节码指令;以及基于递归合并后的字节码指令和/或记录的字节码指令生成内联后的字节码文件。4.根据权利要求1所述的全局污点数据流检测方法,其中对抽象语法树进行语义分析,以提取基本块信息、代码流向信息和属性流向信息作为元数据包括:对抽象语法树进行语义分析以识别并划分基本块;填充基本块以生成控制流图;以及提取基本块信息、代码流向信息和属性流向信息作为元...
【专利技术属性】
技术研发人员:纪妙,袁淑美,闫保奇,胡建强,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。