融合代码漏洞特征及属性图的源代码安全检测方法与装置
摘要文本
本发明公布了一种融合代码漏洞特征及属性图的源代码安全检测方法与装置,通过构建CVE漏洞关键词库,通过对已知软件漏洞库和待检测漏洞程序的特征提取,再进行相似性判断,捕捉程序代码的语义信息,基于注意力机制的GNN构建语义特征学习图神经网络模型以关注带有漏洞特征关键词的代码节点;装置包括CVE漏洞特征关键词库生成模块、代码属性图漏洞特征关键词标记模块、代码结构语义特征提取模块和漏洞检测模块。采用本发明的技术方案,能够准确地定位漏洞,提高漏洞检测的效率和准确性。
申请人信息
- 申请人:北京中科卓信软件测评技术中心
- 申请人地址:100195 北京市海淀区闵庄路3号102幢二层207室
- 发明人: 北京中科卓信软件测评技术中心
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 融合代码漏洞特征及属性图的源代码安全检测方法与装置 |
| 专利类型 | 发明申请 |
| 申请号 | CN202410082579.4 |
| 申请日 | 2024/1/19 |
| 公告号 | CN117592061A |
| 公开日 | 2024/2/23 |
| IPC主分类号 | G06F21/57 |
| 权利人 | 北京中科卓信软件测评技术中心 |
| 发明人 | 程超; 李远金; 李肖可; 程泽凯; 刘高天; 胡陈勇; 黄鹂 |
| 地址 | 北京市海淀区闵庄路3号102幢二层207室 |
专利主权项内容
1.一种融合代码漏洞特征及属性图的源代码安全检测方法,其特征是,通过构建CVE漏洞关键词库,通过对已知软件漏洞库和待检测漏洞程序的特征提取,再进行相似性判断,捕捉程序代码的语义信息,基于注意力机制的GNN构建语义特征学习图神经网络模型以关注带有漏洞特征关键词的代码节点,从而提高对软件漏洞的检测准确性;包括如下步骤:1)利用软件通用漏洞披露CVE补丁差异和漏洞报告,构建CVE漏洞特征关键词库;包括:11)从CVE漏洞数据库中获取CVE漏洞的原始代码和漏洞补丁;通过将原始代码和漏洞补丁进行对比,生成包含原始代码和漏洞补丁之间的变更内容的差异文件;12)对生成的差异文件进行解析,匹配得到漏洞关键词;使用Diff工具对生成的差异文件进行解析,匹配得到漏洞关键词;漏洞关键词提取过程包括:从差异文件和CVE漏洞数据库中的漏洞报告中提取漏洞相关代码块;使用正则表达式匹配不同漏洞类型的常见关键词,包括函数调用类、变量名类、字符串操作类、指针操作类、算术表达式类等;13)构建漏洞关键词库的结构为三元组形式;对匹配到的漏洞关键词进行去重操作;计算每个漏洞关键词的词频;筛选出词频高的漏洞关键词;整理和归纳关键词,构建漏洞特征关键词库的结构,表示为三元组形式:<关键词类型, 关键词, TF词频值>;2)依据CVE漏洞特征关键词标记代码属性图;对于每个代码节点,使用代码分析工具生成CPG代码属性图;在遍历每个代码节点时,检测节点自身是否包含漏洞特征关键词;同时,通过上下文关系分析节点与其父节点、子节点、兄弟节点的语义关系,判断周围代码是否与漏洞特征关键词在语义上匹配;3)基于注意力机制的GNN构建语义特征学习图神经网络模型,分别对CVE漏洞程序库和待检测程序的代码属性图进行语义特征学习,提取得到程序代码结构语义特征;4)基于程序代码结构语义相似度检测漏洞;利用加权余弦相似度计算待检测漏洞程序与已知漏洞程序之间的代码语义特征相似度,并结合相似度阈值动态调整的机制,与实时的漏洞检测情况及特征统计信息进行比较,判断程序代码是否存在漏洞;包括:41)对于每个待检测漏洞程序,计算已知漏洞程序和待检测漏洞程序的语义特征相似度;42)根据实时的漏洞检测情况和特征统计信息,自动调整相似度阈值;43)将计算得到的相似度与相似度阈值进行比较,如果相似度高于阈值,表示待检测漏洞程序与已知漏洞程序存在相似的代码结构和语义,即将其识别为存在漏洞;通过上述步骤,即可实现融合代码漏洞特征及属性图的源代码安全检测。。来自: