[发明专利]一种基于中间语言的软件漏洞智能检测与定位方法与系统有效
| 申请号: | 201910423893.3 | 申请日: | 2019-05-21 |
| 公开(公告)号: | CN110222512B | 公开(公告)日: | 2021-04-20 |
| 发明(设计)人: | 邹德清;朱亚威;李珍;金海;李道祥 | 申请(专利权)人: | 华中科技大学;深圳华中科技大学研究院 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56;G06N3/04;G06N3/08 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 中间 语言 软件 漏洞 智能 检测 定位 方法 系统 | ||
本发明公开了一种基于中间语言的软件漏洞智能检测与定位方法与系统,属于漏洞检测领域。包括:分别将训练程序源码和目标源码转化为中间语言程序切片,其包含与可疑漏洞元素相关的代码;若训练程序源码对应的中间语言程序切片包含已知漏洞代码,为其添加“有漏洞”标签并记录其在切片中的位置;否则,为其添加“无漏洞”标签;训练基于样本差异性的循环神经网络;使用训练好的基于样本差异性的循环神经网络,对目标程序源码对应的中间语言程序切片进行漏洞智能检测与定位。本发明使用中间语言切片作为漏洞检测的单位,提高检测准确率。循环神经网络的输出序列中只选取已知漏洞行对应数据参与正向传播,从而使训练好的模型能够识别出漏洞行。
技术领域
本发明属于漏洞检测领域,更具体地,涉及一种基于中间语言的软件漏洞智能检测与定位方法与系统。
背景技术
软件漏洞是网络安全的罪魁祸首,然而尽管人们使用各种手段消除漏洞,从公共漏洞与暴露库(Common Vulnerabilities and Exposures,CVE)的报告来看仍然有大量的漏洞存在。检测漏洞并及时为它们打上补丁是消除漏洞的关键手段,理想情况下漏洞检测工具应当能够具备高准确率、低漏报率、低误报率,并且能够精确判定漏洞位置,但现有的漏洞检测工具无法达到令人满意的效果。静态漏洞检测由于具有检测速度快、较全面地考虑执行路径的信息等优点,被代码审计人员广泛用来发现软件源码中潜在的漏洞。
漏洞检测方法中较流行的静态检测方法大致可分为四类:一是基于代码相似度的方法,能够检测由于代码克隆导致的漏洞,但难以发现由于其他原因导致的漏洞且无法获悉漏洞的位置;二是基于符号执行的方法,通过结合符号执行和约束求解检测漏洞,但不适用于处理大规模软件,也无法精确定位漏洞;三是基于规则的方法,例如现有的软件工具Checkmarx、ITS4等均使用专家知识来定义用于漏洞检测的规则,可以报告出检测为漏洞的代码,但碍于人工处理很难将各类漏洞的特征考虑全面,这些漏洞检测工具通常具有较高的误报率或漏报率,因此漏洞定位能力并不理想;四是基于机器学习的方法,传统机器学习依赖于专家定义刻画漏洞的特征来检测漏洞的方法,易出错、耗费大量人力且难以确定漏洞的位置,应用神经网络的方法能够减少漏洞分析者定义的漏洞特征工作,但现有的基于神经网络的方法在文件级、构件级、函数级、切片级等较粗粒度进行漏洞检测,仍然需要耗费人力来分析确定更精准的漏洞位置。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术漏洞检测漏报率和误报率高、且无法实现对漏洞的定位的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于中间语言的软件漏洞智能检测与定位方法,该方法包括以下步骤:
S1.分别将训练程序源码和目标源码转化为与各可疑漏洞元素对应的中间语言程序切片,所述中间语言程序切片包含与该可疑漏洞元素之间存在依赖关系的代码;
S2.若训练程序源码对应的中间语言程序切片包含已知漏洞代码,为其添加“有漏洞”标签并记录已知漏洞代码在该切片中的位置;否则,为其添加“无漏洞”标签;
S3.基于训练程序源码对应的中间语言程序切片集合,训练基于样本差异性的循环神经网络;
S4.使用训练好的基于样本差异性的循环神经网络,对目标程序源码对应的中间语言程序切片进行漏洞智能检测与定位。
具体地,步骤S1包括以下子步骤:
S101.根据语法特征,从程序源码中提取可疑漏洞元素;
S102.根据所述可疑漏洞元素,从程序源码编译得到的中间语言文件中提取与所述可疑漏洞元素对应的中间语言程序切片;
S103.根据函数执行顺序调整中间语言程序切片中的代码顺序。
具体地,可疑漏洞元素是指API调用类型元素和指针类型元素。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学;深圳华中科技大学研究院,未经华中科技大学;深圳华中科技大学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910423893.3/2.html,转载请声明来源钻瓜专利网。





