基于大型开源仓库的软件源代码漏洞检测方法研究与实现

来源 :西北大学 | 被引量 : 0次 | 上传用户:ssddhwl
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件日益扩大的规模和日益增长的复杂性对软件安全漏洞的研究提出了严峻的挑战,如何实现自动化的漏洞检测是当前急需解决的课题之一。随着深度学习技术的发展,基于规则的方法和基于传统机器学习的方法,依赖人工定义漏洞规则和漏洞特征的不足可以被基于深度学习的漏洞检测方法弥补,并实现自动化检测。然而,现有的基于深度学习的研究方法主要基于漏洞库的数据集进行建模,虽然在漏洞库数据集上检测效果很好,但是将其模型用于检测实际开发人员所编写的代码时,模型检测的准确率大幅度降低。经过实验分析,一方面是因为漏洞库数据集规模小、漏洞覆盖率低,而实际应用中开发人员编写的代码却更为复杂多样;另一方面是因为现有的方法忽略了程序的控制依赖信息与层次结构信息,损失了程序语义和漏洞特征之间的联系。本文主要针对这两方面问题对现有工作进行改进,提出一种基于深度学习技术的解决方案,本文的研究内容可以总结为以下几点:(1)针对源代码漏洞检测中数据集规模小,覆盖率低和代码语义信息缺失的问题,提出了一种利用双向长短时记忆网络(Bidirectional Long Short-Term Memory,Bi LSTM)对源代码进行漏洞检测的模型。一方面,本文基于大型开源仓库中实际开发人员所编写的代码进行建模。另一方面,为了更好的挖掘程序语义和漏洞特征之间的联系,提出一种利用数据依赖信息和控制依赖信息的切片方法处理源码,同时采用一种基于抽象语法树(Abstract Syntax Tree,AST)路径和注意力机制的源码向量化表示方法,从源码的AST路径中学习上下文表示,并利用Bi LSTM自动地学习源码的漏洞特征。(2)设计并实现了一个基于大型开源仓库的源代码漏洞检测原型系统Vul Finder。在本文中将具体介绍系统的功能和模块,给出每个组件的设计过程和关键算法,并展示漏洞检测过程。(3)设计并实现了一组综合实验,从多个维度对本文所提出的模型和系统进行验证和评估。实验结果表明,无论在开源仓库中收集的数据集上还是在漏洞库的数据集上,本文提出的方法都较相关工作有着更高的F1-score值,并具有自动化学习漏洞特征和细粒度漏洞检测的特点。
其他文献
翻开广西农垦的历史,我们不能不提到他们——来自广西大学农学院、北京农业大学、南京大学、河南大学、江西农学院的200多名大学生。1952年,他们和带队老师组成"林垦调查工作
目的研究抗内毒素鸡蛋黄免疫球蛋白(IgY)用胃蛋白酶切后提取的F(ab')2片段,探索防治内毒素血症的新途径.方法用内毒素(LPS)作抗原免疫25周龄leghorn鸡,改良水溶法提取抗
目的 定点突变法扩增制备完整hHGF-α cDNA,克隆并构建其原核表达载体。方法与结果 以含有人HGF cDNA全序列的质粒pRC/CMV-hHGF为模板,设计合成一对特异引物进行聚合酶链反
近些年来微型涡轮发动机已经成为国内外航空发动机领域的研究热点。其中气体轴承及其超高速转子系统动力学问题是微型涡轮发动机的关键技术之一。为了解决微型涡轮发动机的转
红艳艳的花瓣、翠绿欲滴的嫩芽、破土而出的新苗……走进江苏农垦宝应湖农场苗圃基地,只见小鸟在枝头萦绕歌唱,一簇簇五彩斑斓的花朵和连片整齐的树苗随风轻抚,绘出了农场大地的
<正>"人类只是地球上的匆匆过客,唯有城市将永久存在。"建筑大师贝聿铭曾这样描述人与城市的关系。城市作为人类文明的容器,体现着人类对理想秩序的追求。不仅是建筑与街道的
随着互联网的发展,资产的范畴从只包括以实物为主体的实体性资产,例如房屋等有形资产扩展到了包括不以实物为主体的无形资产,例如数据、数字资产等。传统的资产管理系统在管理复杂类型的资产方面,存在着资产数据存储安全性差、资产确权过程繁琐、资产流通效率低下等方面的问题待解决。而区块链具有去中心化、隐私保护、不可篡改、可溯源性的特性,可提供一种数据存储安全、资产确权方便、资产流通效率高的管理数字资产的方案。本
对一组病因不同的40例尿毒症患者的胸部X线表现进行分析,发现均有不同程度的肺水肿、胸腔积液、心影增大等表现,继发甲状腺机能亢进,可引起胁骨的囊样改变。因无特异怀表现,异毒症肺
分析58例胃肠柿珠超声图像表现,其中超声诊断胃柿石23例,小肠柿石硬阻18例,结肠柿石梗阻3例,直肠柿石2例,胃及小肠复合柿石梗阻6例。漏诊8例符合率86%。诊断明确而柿石数量不符6例,经手术证实38例,保
中国大陆最南端雷州半岛的螺岗岭海拔仅200多米。别看螺岗岭这么低,在浩瀚无垠的南海岸边,在一马平川的半岛之上,可是当之无愧的第一高峰。目前,一幅繁花似锦的现代农业画卷