首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于上下文边关系的改进源码切片方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:四川大学

摘要:本发明公开了一种基于上下文边关系的改进源码切片方法,可以识别更多的切点,针对同一个切点,改进的切片方法也能提取更多漏洞相关的代码行,提升样本数据集的数量、质量,平衡正负样本数量,包括:使用joern工具的joern‑parse模块初步解析源码文件,得到对应的CPG;从中提取所有代码行的结点,再提取包含这些结点且类型为“REACHES”与“CONTROLS”的边,构成PDG;根据切点类型,从中选择对应切点类型的代码行作为切点;对于每个切点,提取与漏洞高度相关的代码行,形成最终切片;追加相关的变量声明语句到最终切片中;以一般的形式替换源码中用户定义的变量和函数名;根据每个切片是否含有漏洞行,将每个切片标记为1或者为0;以json形式保存到本地。

主权项:1.一种基于上下文边关系的改进源码切片方法,其特征在于:包括下述步骤:1源码的初步解析:使用joern工具的joern-parse模块初步解析源码文件,得到对应的CPG;2生成PDG:从CPG中提取所有代码行的结点,再提取包含这些结点且类型为“REACHES”与“CONTROLS”的边,构成PDG,具体为:2.1对于每组nodes.csv与edges.csv,提取nodes.csv中表示代码行的结点;2.2记提取出的表示代码行的结点的集合为nodes_list;其中,所述表示代码行的结点的location字段会有内容指明所属代码行,而非表示代码行的结点的location字段为空;2.3再从edges.csv选择start和key中均出现在nodes_list中,且type为REACHES和CONTROLS的边,记提取出的边的集合为edges_list;2.4而后由nodes_list和edges_list共同构成PDG;其中,结点是源码中的每一行代码,而边是不同代码行之间的数据依赖和控制依赖关系;3提取切点:根据切点类型,从PDG中选择对应切点类型的代码行作为切点;4切片:对于每个切点,提取与漏洞高度相关的代码行,形成最终切片,包括下述步骤:4.1根据切点,选出任意一个包含切点的边作为边树的根,记为root_e,并构建对应的边树;4.2在边树中,选择与root_e直接相邻,或者一层间接相邻的边;4.3从这些选择的边中提取出每条边对应的结点,去重后放入slice_nodes中;4.4对于每个因步骤4.3而被追加入的结点,重复执行步骤4.1~4.3,直至没有新的节点加入到slice_nodes中时;4.5对于slice_nodes中的每个节点,根据PDG添加相应的边;4.6将所选结点按照代码行的先后顺序重新排序,这样的结点和边的集合即为对应切点的最终切片;5追加变量声明语句:追加相关的变量声明语句到最终切片中;6匿名化用户变量:以一般的形式替换源码中用户定义的变量和函数名;7打标签:根据每个切片是否含有漏洞行,将每个切片标记为1或者为0;8持久化保存:以json形式保存到本地,作为模型训练的数据集。

全文数据:

权利要求:

百度查询: 四川大学 一种基于上下文边关系的改进源码切片方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。