[发明专利]基于中间语言与迁移表征学习的漏洞挖掘系统及方法在审
申请号: | 202111612183.9 | 申请日: | 2021-12-27 |
公开(公告)号: | CN114491548A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 焦点;易平;吕胜炜 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/04;G06N3/08;G06K9/62;G06F8/41 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 中间 语言 迁移 表征 学习 漏洞 挖掘 系统 方法 | ||
一种基于中间语言与迁移表征学习的漏洞挖掘系统及,包括:迁移表征模型训练模块、卷积网络训练模块和软件漏洞挖掘模块,迁移表征模型训练模块使用编译成中间语言并预处理后的数据与标签对双向长短期记忆网络进行迁移学习训练,并将BiLSTM网络中的中间隐藏层计算结果输出,作为数据集的高级表征形式;卷积网络训练模块使用数据的高级表征形式与对应标签,训练一个卷积神经网络分类器用于对高级表征进行判别;软件漏洞挖掘模块使用另外两个模块训练生成的模型,首先对未知的软件进行编译和预处理,并将处理后的代码段输入BiLSTM网络中,从BiLSTM网络的隐藏层中得到数据高级表征,再输入卷积神经网络分类器中,最终得到该代码段是否具有漏洞判别结果。
技术领域
本发明涉及的是一种信息安全领域的技术,具体是一种基于中间语言与迁移表征学习的漏洞挖掘系统及方法,本发明中所述的漏洞通常指计算机程序中的缺陷,容易被恶意攻击者利用从而造成程序崩溃,数据泄露,丢失控制权等后果。
背景技术
软件漏洞又称为软件脆弱性,通常指计算机程序中的缺陷,容易被恶意攻击者利用从而造成程序崩溃,数据泄露,丢失控制权等后果。软件漏洞挖掘对于保护计算机系统和软件的安全性具有重要意义,但传统的漏洞挖掘方法大多需要繁琐低效的人工分析,并且准确率和召回率仍然不够理想。目前业界已经出现一些基于深度学习的方法,利用深度神经网络进行特征提取,避免繁琐的人工特征提取工程,但仍在通用性,泛化性等方面有所欠缺。
发明内容
本发明针对现有技术的上述不足和缺陷,提出一种基于中间语言与迁移表征学习的漏洞挖掘系统及,通过将不同的高级语言统一转换成中间语言再进行预处理和特征提取工作,从而提高漏洞挖掘方法针对不同编程语言的通用性,再利用双向长短期记忆网络对做过预处理的数据集进行迁移学习,提取双向长短期极易网络的隐藏层输出作为数据的高级表征形式,再将高级表征输入深度卷积网络中进行分类训练,得到可以进行高级表征分类的卷积神经网络。对未知软件进行漏洞挖掘时,对未知软件进行预处理并将处理后的代码段输入双向长短期记忆网络中,得到高级表征再将其输入卷积分类网络中,进而计算输出代码段是否具有漏洞的判别结果。这种迁移表征学习的方法可以有效避免过拟合,改善模型的泛化性。
本发明是通过以下技术方案实现的:
本发明涉及一种基于中间语言与迁移表征学习的漏洞挖掘系统,包括:迁移表征模型训练模块、卷积网络训练模块和软件漏洞挖掘模块,其中:迁移表征模型训练模块使用编译成中间语言并预处理后的数据与标签对双向长短期记忆(BiLSTM)网络进行迁移学习训练,并将BiLSTM网络中的中间隐藏层计算结果输出,作为数据集的高级表征形式;卷积网络训练模块使用数据的高级表征形式与对应标签,训练一个卷积神经网络分类器用于对高级表征进行判别;软件漏洞挖掘模块使用另外两个模块训练生成的模型,首先对未知的软件进行编译和预处理,并将处理后的代码段输入BiLSTM网络中,从BiLSTM网络的隐藏层中得到数据高级表征,再输入卷积神经网络分类器中,最终得到该代码段是否具有漏洞判别结果。
所述的预处理,包括中间语言编译、高危点定位、代码切片和函数名标准化处理。
本发明涉及一种基于上述系统的漏洞挖掘方法,通过使用收集的漏洞代码数据集在离线阶段训练BiLSTM网络用于表征提取,再以提取得到的高级表征训练CNN分类网络;在在线阶段对待测软件代码进行编译与预处理后,经高危点定位与程序切片后,将切片依次输入训练后的BiLSTM网络和CNN分类网络并获得每个切片的漏洞判别结果。
所述的漏洞代码数据集是指:预先收集的漏洞代码,其中每一条数据应为一段较完整的软件源代码,并有标签与之对应,标签的值为0或1,其中0表示该代码段没有漏洞,1表示该代码段有漏洞。本发明采用NIST(美国国家标准与技术研究院)发布的美国国家公开漏洞库SARD(Software Assurance Reference Dataset)数据库作为漏洞代码数据集,为使模型学习到更明确的特征,仅选取其中的基于栈的缓冲区溢出类型漏洞(CWE121)进行训练,生成的模型可以针对缓冲区溢出类型漏洞给出高准确率的判别结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111612183.9/2.html,转载请声明来源钻瓜专利网。