基于代码语义向量表示和深度学习的软件漏洞检测方法

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:learner1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着互联网时代的不断发展和软件技术的不断提高,软件在人类的生活中发挥着越来越重要的作用,软件规模越来越大。同时,由于软件规模的不断扩大,开发人员的疏忽,导致软件的质量参差不齐,软件中存在的漏洞也越来越多,严重影响了软件的使用体验以及软件的安全性,对人类的生命财产安全产生了极大的威胁,越早检测出软件中存在的漏洞,损失就会越小,所以软件维护人员及时检测出软件中的漏洞就显得尤为重要。采用人工的方式检测代码中的漏洞复杂度比较高,同时也费时费力,所以要利用漏洞检测软件进行自动化的批量检测。目前的代码漏洞检测方法,误报率和漏报率比较高,而且检测粒度比较粗,一般是文件级别的漏洞检测,所以本文的工作主要有两个部分:第一个主要部分是从代码中提取出特征,然后将特征进行表示学习,转化成向量,第二个主要部分是将特征向量输入到代码漏洞检测模型当中,通过代码漏洞检测模型输出代码有无漏洞的概率。关键和难点是要在代码中提取出有用的特征,能表现出代码漏洞的特征,然后将特征转化成能输入到代码漏洞检测模型当中的向量。这个向量化的方式也很重要,要可以根据代码语句的上下文信息学习到代码token之间的语义信息,另外针对不同的漏洞类型,还要采取不同的深度学习网络以获得相对较好的漏洞检测效果。本文的主要工作如下:首先对不同的漏洞数据集进行分析研究,选取质量较高的漏洞数据集。然后对漏洞数据集进行预处理,预处理首先生成源文件的抽象语法树和程序依赖图,然后根据抽象语法树中的节点和程序依赖图中的数据依赖和控制依赖关系进行程序切片,将切片转换成向量进行漏洞检测。本文对四种类型的漏洞进行检测,四种类型分别为指针使用相关的漏洞,数组使用相关的漏洞,算术表达式使用相关的漏洞,函数调用相关的漏洞,每一种漏洞的数据集单独进行实验。根据相应的关键点提取出对应类型的程序切片可以过滤掉一些无关语句,减少噪音,使预测结果更加准确。其次,为了将提取出来的特征输入到漏洞检测模型当中,需要将其转换成向量,即向量化。首先利用word2vec得到词向量,然后在词向量的基础上进一步得到句子向量,最后,用这些漏洞代码的向量表示训练深度学习模型进行漏洞检测。在基于深度学习的漏洞检测模型上,本文除了使用常用的Bi LSTM模型外,还使用了Text CNN以及Desnse CNN两种深度学习模型,并对这些模型的检测结果进行实验,此外还在模型中加入了注意力机制,进一步提高了模型对漏洞检测的准确率。
其他文献
煤矿井下环境信息和设备运行状态检测是保障煤矿生产安全的重要举措。随着科学技术的发展,研发煤矿巡检机器人对关键区域和事故现场进行检测或探测成为研究的热点。由于煤矿
停车场作为人们日常生活中时常接触到的一个环境,由于各种因素的影响,使得其管理一直以来都是一个难以解决的问题。近年来,我国经济突飞猛进,人口数量持续扩大,汽车保有量和
射频识别技术(Radio frequency identification)是一种利用射频信号进行识别的技术,由于其一系列优点,已逐渐应用于各个领域。但目前贴上标签的人或物品的可视化、自动化管理
生物传感器具有特异性强、操作方便、组成简单、成本低、可应用范围广、无生物毒性等特点,在环境监测,生物医学,食品分析和国防军事等领域已显示出其应用前景,已引起国内外研
随着当前以酸雨、雾霾为首的大气污染问题日益严重,环境污染的治理逐渐成为能源生产的重要环节。SNCR脱硝技术以其成熟、应用广泛的特点成为我国燃煤电厂控制NO_X污染的重要
第五代移动通信技术(5G)对频谱效率和用户体验数据速率提出了更高的要求。大规模多输入多输出(Massive Multiple-input Multiple-output,Massive MIMO)是获得高速率传输以及
燃煤电站对于SO2和NOx的排放控制日益严格,研究低成本联合脱除新技术具有重要意义。本文提出基于钙基吸收剂的CO2、SO2和NO联合脱除新思路,制备了具有较高CO2捕集性能的复合
高效的机器人导航需要提前获得地图。为了自动获得地图,需要机器人在保证地图完全覆盖的前提下,以最小的成本和时间探索未知环境。针对单机器人系统检测速度慢、环境信息感知
光电化学(PEC)生物分析作为一种新兴的分析技术,结合了生物分析,光学分析和电化学分析的优势已成为生命分析领域重要的研究前沿之一。由于激发信号(光)与输出信号(电流或电压)由两
17β-雌二醇(E2)是一种天然类固醇雌激素,同时也是一种环境内分泌干扰物,即使较低的浓度也会对生物体造成毒害作用,导致生物体内分泌功能紊乱。因此,开发一种快速、高效、特