申请/专利权人:重庆邮电大学
申请日:2023-11-24
公开(公告)日:2024-03-22
公开(公告)号:CN117744085A
主分类号:G06F21/57
分类号:G06F21/57;G06F21/56;G06F18/22;G06F18/2431;G06F18/213;G06N3/0442;G06N3/045;G06N3/0464
优先权:
专利状态码:在审-实质审查的生效
法律状态:2024.04.09#实质审查的生效;2024.03.22#公开
摘要:本发明涉及基于关联图的工业协议软件源代码漏洞检测及定位方法,属于源代码漏洞检测技术领域。本发明通过joren对工业协议软件源代码的词法和语法进行分析,获得源代码的程序依赖图和代码属性图;之后进行变量提取,函数提取,类提取等,构造节点和边的属性集合,对于集合中的每对实体计算其相似度,根据相似度进行实体匹配并添加相应的边进行连接形成新的漏洞覆盖更完整的关联图;最后构建基于TexCNN和LSTM的漏洞检测及定位模型,利用Sent2vec和中心性分析将关联图向量化并输入至该模型中完成漏洞检测和定位。本发明能有效提高漏洞检测的准确率。
主权项:1.基于关联图的工业协议软件源代码漏洞检测及定位方法,其特征在于:该方法包括以下步骤:S1:获取目标工业协议软件源代码,将获取的目标工业协议软件源代码进行抽象和规范化处理;S2:将经过抽象和规范化处理的目标工业协议软件源代码依次进行词法分析和语法分析,根据最终的分析结果生成程序依赖图PDG和代码属性图CPG;S3:从所述S2生成的程序依赖图PDG和代码属性图CPG中提取实体信息特征,将从程序依赖图PDG中提取的实体信息特征存储在集合Gpdg中,将从代码属性图CPG中提取实体信息特征存储在集合Gcpg中;S4:将所述S3中提取的实体信息,利用重叠相似度,计算Gpdg和Gcpg实体的重叠相似度,利用共同邻居相似度,计算Gpdg和Gcpg实体的共同邻居节点的相似度,利用加权平均操作将计算出的重叠相似度和共同邻居节点相似度进行加权融合,得到综合相似度,以进行后续的实体匹配;S5:在代码属性图和程序依赖图结合的实体匹配过程中,对于每对实体,根据计算的实体相似度进行匹配,在匹配过程中使用阈值判定来确定相似度的阈值,将确定的相似度阈值与实体匹配得分进行比较,若一个实体的匹配得分高于相似度阈值,则它与另一个图中的实体匹配,匹配的实体通过添加相应的边来连接Gcpg和Gpdg,最终形成新的关联图;S6:将S5中得到的关联图中的每个句子,利用Sent2Vec进行句子嵌入,将关联图中的每个句子转化为固定长度的向量,将转化后的所有向量分别乘以相应的度中心性,按照代码行数依次对度中心性通道、特征向量中心性通道和接近中心性通道进行排序,使用排序后的三个通道的数据生成图像,作为检测模型的输入;S7:构建基于TextCNN和LSTM相结合的检测模型RLCM,将S5得到的关联图输入检测模型中,完成漏洞的检测,并用梯度加权类激活映射Grad-CAM++的方法对检测结果进行可视化,进行漏洞定位。
全文数据:
权利要求:
百度查询: 重庆邮电大学 基于关联图的工业协议软件源代码漏洞检测及定位方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。