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

【发明授权】融合代码漏洞特征及属性图的源代码安全检测方法与装置_北京中科卓信软件测评技术中心_202410082579.4 

申请/专利权人:北京中科卓信软件测评技术中心

申请日:2024-01-19

公开(公告)日:2024-04-12

公开(公告)号:CN117592061B

主分类号:G06F21/57

分类号:G06F21/57;G06F21/56;G06F40/30;G06N3/04

优先权:

专利状态码:有效-授权

法律状态:2024.04.12#授权;2024.03.12#实质审查的生效;2024.02.23#公开

摘要:本发明公布了一种融合代码漏洞特征及属性图的源代码安全检测方法与装置,通过构建CVE漏洞关键词库,通过对已知软件漏洞库和待检测漏洞程序的特征提取,再进行相似性判断,捕捉程序代码的语义信息,基于注意力机制的GNN构建语义特征学习图神经网络模型以关注带有漏洞特征关键词的代码节点;装置包括CVE漏洞特征关键词库生成模块、代码属性图漏洞特征关键词标记模块、代码结构语义特征提取模块和漏洞检测模块。采用本发明的技术方案,能够准确地定位漏洞,提高漏洞检测的效率和准确性。

主权项:1.一种融合代码漏洞特征及属性图的源代码安全检测方法,其特征是,通过构建CVE漏洞关键词库,通过对CVE漏洞程序库和待检测漏洞程序的特征提取,再进行相似性判断,捕捉程序代码的语义信息,基于注意力机制的GNN构建语义特征学习图神经网络模型以关注带有漏洞特征关键词的代码节点,从而提高对软件漏洞的检测准确性;包括如下步骤:1)利用软件通用漏洞披露CVE补丁差异和漏洞报告,构建CVE漏洞特征关键词库;包括:11)从CVE漏洞程序库中获取CVE漏洞的原始代码和漏洞补丁;通过将原始代码和漏洞补丁进行对比,生成包含原始代码和漏洞补丁之间的变更内容的差异文件;12)对生成的差异文件进行解析,匹配得到漏洞关键词;使用Diff工具对生成的差异文件进行解析,匹配得到漏洞关键词;漏洞关键词提取过程包括:从差异文件和CVE漏洞程序库中的漏洞报告中提取漏洞相关代码块;使用正则表达式匹配不同漏洞类型的常见关键词,所述漏洞类型包括函数调用类、变量名类、字符串操作类、指针操作类、算术表达式类;13)构建漏洞关键词库的结构为三元组形式;对匹配到的漏洞关键词进行去重操作;计算每个漏洞关键词的词频;筛选出词频高的漏洞关键词;整理和归纳关键词,构建漏洞特征关键词库的结构,表示为三元组形式:关键词类型,关键词,TF词频值;2)依据CVE漏洞特征关键词标记代码属性图;对于每个代码节点,使用代码分析工具生成CPG代码属性图;在遍历每个代码节点时,检测节点自身是否包含漏洞特征关键词;同时,通过上下文关系分析节点与其父节点、子节点、兄弟节点的语义关系,判断周围代码是否与漏洞特征关键词在语义上匹配;包括:21对于每个代码节点,使用代码分析工具生成CPG代码属性图;所述CPG代码属性图包括抽象语法树AST、控制流图CFG和数据流图DFG;22如果代码节点包含漏洞特征关键词,或上下文关系与漏洞特征关键词语义匹配,则标记该代码节点为可能存在漏洞的节点;23)针对标记后的漏洞代码节点,执行向前和向后的切片操作,以获取漏洞代码节点相关的数据依赖和控制流依赖的代码节点;生成修剪后的子代码属性图,所述修剪后的子代码属性图涵盖标记的漏洞节点及其周围关联节点;3)基于注意力机制的GNN构建语义特征学习图神经网络模型,分别对CVE漏洞程序库和待检测程序的修剪后的子代码属性图进行语义特征学习,提取得到程序代码结构语义特征;包括如下过程:31)对修剪后的子代码属性图中的节点代码行进行预处理,生成代码节点的初始特征向量;32)基于注意力机制的GNN构建语义特征学习图神经网络模型;包括:第一图卷积层、第二图卷积层、第三图卷积层和注意力隐藏层;其中,构建的三层图卷积层中,根据程序函数级别、代码块级别和语句级别,第一图卷积层用于表达属性图中的低级别的局部细节,第二图卷积层用于捕获中等级别的结构特征,第三图卷积层用于捕获高级的语义特征;注意力隐藏层维度设置为64对应低级别、128对应中级别和256对应高级别;隐藏层维度是神经网络中每个隐藏层中神经元的数量;使用ReLU作为激活函数,并设置三个注意力头,分别为低级别对应32隐藏层维度、中级别对应64隐藏层维度和高级别对应128隐藏层维度;33)三层图卷积层通过聚合代码节点的邻居特征以更新代码节点特征;更新过程表示为: 其中,表示代码节点i在第+1图卷积层的特征,为图卷积层的序号;σ是激活函数;Ni表示节点i的邻居节点集合,是归一化常数,是注意力权重矩阵,是邻居节点j在第层的特征,是偏置项,α是参数,是代码节点i的漏洞标记;为表示图神经网络中节点i和节点j之间的注意力权重;4)基于程序代码结构语义相似度检测漏洞;利用加权余弦相似度计算待检测漏洞程序与CVE漏洞程序之间的代码语义特征相似度,并结合相似度阈值动态调整的机制,与实时的漏洞检测情况及特征统计信息进行比较,判断程序代码是否存在漏洞;包括:41)对于每个待检测漏洞程序,计算CVE漏洞程序和待检测漏洞程序的语义特征相似度;42)根据实时的漏洞检测情况和特征统计信息,自动调整相似度阈值;43)将计算得到的相似度与相似度阈值进行比较,如果相似度高于阈值,表示待检测漏洞程序与CVE漏洞程序存在相似的代码结构和语义,即将其识别为存在漏洞;通过上述步骤,即可实现融合代码漏洞特征及属性图的源代码安全检测。

全文数据:

权利要求:

百度查询: 北京中科卓信软件测评技术中心 融合代码漏洞特征及属性图的源代码安全检测方法与装置

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