[发明专利]基于图卷积网络对代码图表示学习的源代码漏洞检测方法有效
申请号: | 202010576421.4 | 申请日: | 2020-06-22 |
公开(公告)号: | CN111783100B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 苏小红;段亚男;王甜甜;蒋远;赵玲玲 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56;G06N3/04;G06N3/08 |
代理公司: | 哈尔滨龙科专利代理有限公司 23206 | 代理人: | 高媛 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 图卷 网络 代码 图表 学习 源代码 漏洞 检测 方法 | ||
本发明公开了一种基于图卷积网络对代码图表示学习的源代码漏洞检测方法,所述方法如下:生成代码属性图;在代码属性图中添加函数调用关系和过程间依赖关系;根据漏洞关键点获取代码切片;利用切片对图中节点进行删减,提取与漏洞相关的图结构信息;使用图卷积网络学习每个节点的向量表示;根据边的类型划分子图,并通过基于注意力机制的READOUT模型得到图的向量表示;根据图的向量表示和标签调整网络参数;用训练好的模型检测代码漏洞。本发明能充分利用和学习漏洞代码的结构和属性信息,避免传统深度网络在对代码表示学习时易丢失代码结构信息及因需要把代码表示成固定长度序列而丢失长代码上下文信息的问题,有助于降低漏洞检测的误报和漏报。
技术领域
本发明涉及一种软件漏洞检测方法,具体涉及一种基于图卷积网络对代码进行图表示学习的源代码漏洞检测方法。
背景技术
软件漏洞是在软件设计与开发实现的过程中存在的一些容易被恶意攻击者利用的缺陷。传统的源代码审查技术在很大程度上取决于审查人员对安全问题的理解与长期经验的积累,并且在代码规模和复杂程度日益增大的情况下无法满足对漏洞检测的需求。基于机器学习的漏洞检测方法虽然避免了基于规则的漏洞检测方法依赖专家人工编写检测规则的问题,但是仍需要人工提取漏洞特征。而近年来成功应用于自然语言处理、图像识别、目标检测领域的深度学习技术可以降低对专家经验和手工特征工程的依赖,为自动提取漏洞特征和生成漏洞模式提供了可能。
然而,由于编程语言的特殊性、漏洞类型的多样性、漏洞上下文的复杂性、漏洞代码与漏洞特征在抽象程度上的高差异性、漏洞代码与修复代码之间的高相似性,这些都使得深度学习自动学习漏洞模式比其他领域的深度学习问题更加困难,给基于深度学习的漏洞检测技术带来了巨大的挑战。
当前用于自动学习漏洞模式的深度学习模型大多采用语言模型对代码语义进行建模,把代码的各种中间表示转化为一个平铺的一维序列,即将其当作自然语言文本,基于自然语言处理领域常用的深度神经网络(如LSTM和GRU)来处理转换后的代码序列,然后将其自动学习到的代码漏洞特征用于训练一个机器学习分类器,以进行漏洞检测。相对于自然语言文本而言,代码更具有结构化的特点,这种漏洞检测方法未能充分利用和学习漏洞代码的结构信息和属性信息,并且因需要把代码表示成固定长度的序列还会丢失长代码的上下文信息,在漏洞检测时往往存在较高的误报率和漏报率。
代码属性图(Code Property Graph,CPG)是一种程序语法、控制流和数据流的联合表示,结合了抽象语法树、控制流图和程序依赖图来综合表征程序的结构和语义,是Yamaguchi等人(F.Yamaguchi,N.Golde,D.Arp,K.Rieck,Modeling and discoveringvulnerabilities with code property graphs,Proceedings,IEEE Symposium onSecurity and Privacy.(2014)590–604.doi:10.1109/SP.2014.44)首次提出的一种新型的代码表示形式,该漏洞检测方法使用图数据库查询语句遍历代码属性图,利用模式匹配的方法查找符合某种模式的软件漏洞,提高了对已知漏洞模式识别的准确率,但是该方法仅适用于识别已知的漏洞模式,并且在代码属性图中没有考虑过程间分析,对于跨过程调用的漏洞有可能产生漏报。Wang等人(CPGVA-Code PropertyGraphbasedVulnerabilityAnalysis by Deep Learning,2018)进一步使用CNN和LSTM等传统的深度神经网络来从代码属性图上学习漏洞代码模式,提高了漏洞识别的准确率,但仍存在较高的漏报率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010576421.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便携式救护车负压装置
- 下一篇:一种地质模型的地层动态校正方法