【技术实现步骤摘要】
基于子图同构的补丁存在性检测方法及装置
[0001]本专利技术属于源码级漏洞检测
,具体涉及一种基于子图同构的补丁存在性检测方法及装置。
技术介绍
[0002]随着开源软件的流行,在软件供应链中,大量的上游软件的开源项目被广泛应用于下游软件开发过程中。例如各种软件在开发过程中经常引用第三方库代码并且做一些定制化修改,各个安卓手机厂商、设备厂商借鉴上游的开源Linux内核并做定制化的开发。随着代码复用的情况成为常态,安全漏洞日益增加的情况下,上游软件中大量的安全漏洞沿着软件供应链传播到下游软件中,下游软件中未修补的漏洞极易被黑客攻击,对下游软件的安全性造成了极大的威胁。上游的开源软件能够及时发布补丁并公布影响信息,这时,下游的软件厂商需要及时评估漏洞对下游软件的影响范围。在这种情况下,对下游开源的软件程序进行补丁存在性检测能够帮助安全分析人员及时评估软件的安全性。
[0003]现有的可以判定补丁状态的检测方法主要可以分为五类:第一种是攻击样本测试,这种方法首先构造或搜集特定漏洞的PoC(Proof of Conc ...
【技术保护点】
【技术特征摘要】
1.一种基于子图同构的补丁存在性检测方法,其特征在于,包括:步骤1,获取待检测的目标代码以及需要验证是否存在于所述目标代码中的补丁源文件;其中,补丁源文件包括补丁源代码以及用于描述补丁作用的补丁文本;步骤2,对所述补丁源代码以及目标代码分别进行数据增强以生成等价程序,获得与所述补丁源代码等价的第一等价程序以及与目标代码等价的第二等价程序;步骤3,分别提取所述第一等价程序的CPG子图以及所述第二等价程序的CPG子图,获得补丁源代码的CPG子图以及目标代码的CPG子图;步骤4,利用补丁源代码的CPG子图对所述目标代码的CPG子图进行子图优化,以修剪目标代码的CPG子图中的无关节点和边;步骤5,将补丁源代码的CPG子图以及优化后的目标代码的CPG子图分别输入至相同的训练完成的检测模型,获得两个相同检测模型的输出结果;步骤6,根据两个相同检测模型的输出结果之间的相似度,确认所述目标代码中是否存在所述补丁源文件。2.根据权利要求1所述的一种基于子图同构的补丁存在性检测方法,其特征在于,步骤2包括:步骤21,将所述补丁源代码以及目标代码分别解析为抽象语法树;步骤22,利用自动遍历转换技术分别转换所述补丁源代码以及所述目标代码对应的抽象语法树,获得与所述补丁源代码的功能等价且语义等价的第一等价程序以及与所述目标代码的功能等价且语义等价的第二等价程序。3.根据权利要求1所述的一种基于子图同构的补丁存在性检测方法,其特征在于,步骤3包括:步骤31,使用静态分析工具获取所述第一等价程序以及第二等价程序的标识符;步骤32,根据标识符确定第一等价程序和第二等价程序中的函数和变量;步骤33,将第一等价程序和第二等价程序的函数和变量隐射到预定的符号名称;步骤34,使用joern工具通过预定的符号名称分别提取建立第一等价程序和第二等价程序的函数以及变量,从而构建目标代码的CPG图以及补丁源代码的CPG图;步骤35,针对补丁源代码和目标代码的CPG图,在CPG图中以修改行为起点,沿着变量边依赖关系和函数调用关系向后遍历,直到达到相关变量的初始定义位置为止,以获得CPG图中每个CPG子图的节点以及边;步骤36,将每个CPG子图的节点以及边按照CPG图中的对应位置连接,获得补丁源代码的CPG子图以及目标代码的CPG子图。4.根据权利要求1所述的一种基于子图同构的补丁存在性检测方法,其特征在于,步骤4包括:步骤41,按照预设的匹配规则匹配补丁源代码与目标代码的CPG子图中的每个节点特征,如果匹配成功则保留目标代码的CPG子图中匹配成功的节点,如果匹配失败,则删除目标代码的CPG子图中匹配失败的节点;步骤42,以补丁源代码的CPG子图中最少的节点为基准,将目标代码的CPG子图分解为多个候选子图;
步骤43,排除孤立的候选子图,从而获得目标代码优化后的CPG子图。5.根据权利要求4所述的一种基于子图同构的补丁存在性检测方法,其特征在于,步骤41中的匹配规则包括:节点的标识符特征、节点类型特征、控制流特征、运算符特征、函数调用特征对应的规则;其中,标识符特征对应的比较规则为检查节点的变量的命名方式是否相同;节点类型特征对应的比较规则为检查节点的变量定义类型是否相同;控制流特征对应的比较规则为检查是否含有节点的控制流特征,若含有,则检查控制流特征是否一致;运算符特征对应的比较规则为检查节点是否含有运算符特征,若含有,则检查运算符特征是否一致;函数调用特征对应的比较规则为检查节点中是否含有函数调用特征,若含有,则检查函数调用特征是否一致。6.根据权利要求5所述的一种基于子图同构的补丁存在性检测方法,其特征在于,步骤41若节点的标识符特征和节点类型特征对应的规则成立,且控制流特征、运算符特征、函数调用特征三者中任一对应的规则成立,则确认补丁源代码...
【专利技术属性】
技术研发人员:付玉龙,杨金城,易威,高依然,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。