首页 > 其他分享 >基于深度学习的软件漏洞检测模型在现实数据集上的表现

基于深度学习的软件漏洞检测模型在现实数据集上的表现

时间:2024-07-06 11:29:43浏览次数:24  
标签:代码 检测 模型 漏洞 软件 集上 数据 Vul

       软件漏洞对日常软件系统的影响令人担忧。尽管已经提出了基于深度学习模型的漏洞检测方法,但这些模型的可靠性仍然是一个重大问题。先前的评估报告这些模型具有高达99%的召回率/F1分数,但研究发现,这些模型在实际应用场景下的表现并不佳,特别是在评估整个代码库而不仅仅是修复提交时,性能会显著下降

1 现有评估方法的局限性

  • 合成数据集: 例如 SARD,这些数据集是人工生成的,无法完全反映真实漏洞的复杂性和多样性。
  • 基于漏洞的实时数据集: 例如 Big-Vul 和 ReVeal,这些数据集只包含漏洞修复提交中的代码片段,无法反映真实场景中漏洞检测模型对整个代码库的扫描。
  • 标签不一致: 一些数据集中存在标签不一致的问题,例如同一个代码片段被标记为漏洞和不确定。

2 Real-Vul数据集

      Real-Vul 是一个针对深度学习漏洞检测模型的新型数据集,旨在解决现有数据集的局限性,并更准确地反映现实场景。

2.1 数据集来源

  • Real-Vul 数据集基于 Big-Vul 数据集构建,Big-Vul 数据集包含来自 348 个开源项目的真实漏洞 C/C++ 函数。
  • 从 Big-Vul 数据集中选择了漏洞数量最多的 10 个项目,这些项目涵盖了 73% 的漏洞样本,具有代表性。

2.2 数据集构建方法

2.2.1 时间序列策略

  • Real-Vul 数据集分为训练集和测试集,模拟了模型在历史数据上进行训练,并随着时间的推移识别漏洞的过程。
  • 训练集包含漏洞修复提交日期最早的 80% 的漏洞函数,测试集包含剩余 20% 的漏洞函数。
  • 这种策略确保了训练集和测试集在时间上的连续性,更符合现实场景。

2.2.2 不确定样本的创建

  • 通过克隆每个项目的远程代码库并创建两个快照(一个用于训练集,一个用于测试集),从每个快照中提取所有函数。
  • 计算每个函数的哈希值,并与训练集中漏洞函数的哈希值进行比较。
  • 如果哈希值不匹配,则将该函数标记为不确定。

2.3 数据集特点

  • 真实性和多样性: 包含来自真实软件系统的漏洞代码,具有更高的多样性和复杂性。
  • 现实场景: 模拟了漏洞检测模型在实际应用中对整个代码库进行扫描的场景,更符合现实需求。
  • 标签一致性: 通过比较哈希值来解决标签不一致的问题,确保了数据的可靠性。
  • 规模: 包含 5,528 个漏洞函数和 1,682,713 个不确定函数,规模较大,有利于模型的训练和评估。

2.4 数据集的优势

  • 更准确的评估: 可以更准确地评估深度学习漏洞检测模型的性能,发现现有模型的局限性。
  • 促进研究: 可以促进漏洞检测领域的研究,推动模型设计和评估方法的改进。
  • 应用价值: 可以用于开发漏洞检测工具,帮助开发者识别和修复软件漏洞,提高软件的安全性。

3 实验

3.1 模型选择

  • DeepWukong: 使用图神经网络 (GNN) 分析代码依赖关系,从代码中提取 XFG (子图) 进行漏洞检测。

      链接: https://github.com/jumormt/DeepWukong

  • LineVul: 基于 CodeBERT 的序列模型,将代码块作为输入,并使用 CodeBERT 模型对其进行分类。

     链接:https://github.com/awsm-research/LineVul

  • ReVeal: 使用图神经网络 (GNN) 检测漏洞,将控制流、数据流、语法树和依赖图整合到代码属性图 (CPG) 中进行综合代码分析。
  • IVDetect: 结合表示学习和基于图的解释模型,分析控制流、数据流、抽象语法树和程序依赖图,创建统一的代码结构以高效检测漏洞。

3.2 数据集

  • Real-Vul: 本研究提出的新数据集,包含 10 个开源项目的完整代码库,并使用时间策略创建漏洞和不确定样本,确保数据集的真实性和多样性。
  • 其他数据集: DeepWukong 使用 SARD 数据集,LineVul 使用 Big-Vul 数据集,ReVeal 使用 ReVeal 数据集,IVDetect 使用 IVDetect 数据集。

3.3 研究问题

  • 真实场景评估 (RQ1): 深度学习模型在真实场景下的表现与原始研究中的表现有何不同?
  • 数据集平衡 (RQ2): 深度学习模型在类似真实场景的训练数据集上进行训练后的表现如何?

3.4 评估指标

  • 准确率: 模型预测正确的样本比例。
  • 精确率: 模型预测为漏洞的样本中,实际为漏洞的比例。
  • 召回率: 模型实际检测到的漏洞样本中,被正确预测的比例。
  • F1 分数: 精确率和召回率的调和平均值,综合评估模型性能。
  • AUC: 模型区分漏洞和非漏洞样本的能力。

3.5 研究方法

  • 初步分析: 在原始数据集上评估模型性能,确保结果可靠性并建立基线。
  • 真实场景评估 (RQ1): 在 Real-Vul 测试数据集上评估模型性能,并与原始数据集上的表现进行比较。
  • 数据集平衡 (RQ2): 使用 Real-Vul 数据集进行训练和评估,并探讨数据集平衡对模型性能的影响。
  • 代码复杂性分析: 分析代码复杂性对模型性能的影响。
  • 过拟合评估: 使用 LIME 工具分析模型决策的特征,并探讨过拟合问题。
  • 数据增强: 使用死代码增强技术提高数据集多样性,并评估其对模型性能的影响。
  • 漏洞类型分析: 分析模型对不同漏洞类型的检测能力。
  • 漏洞严重性分析: 分析模型对不同严重性漏洞的检测能力。
  • 大型语言模型评估: 使用 CodeLlama 和 Mixtral 等大型语言模型进行漏洞检测,并评估其性能。

3.6 实验结果

3.6.1 现实场景下的模型性能下降

原模型测试结果

基于Real-Vul 数据集测试结果

  • 使用 Real-Vul 数据集对 DeepWukong、LineVul、ReVeal 和 IVDetect 模型进行评估,发现这些模型在现实场景下的性能显著下降。
  • 精确度和 F1 分数分别下降了高达 95% 和 91%,这意味着模型产生了大量的误报。
  • t-SNE 可视化结果显示,模型无法清晰地区分漏洞样本和不确定样本,导致误报率上升。

3.6.2过拟合是导致性能下降的主要原因

  • 通过手动分析误报样本,发现模型存在过拟合现象,即模型过度依赖于特定的代码片段进行预测。
  • 为了解决这个问题,提出了数据增强技术,通过在训练数据集中添加死代码来增加样本的多样性,从而降低过拟合的风险。

3.6.3 数据增强技术提高了模型性能

  • 使用增强后的数据集重新训练模型,并发现模型的性能得到了显著提升,AUC 分数提高了 8% 到 32%。
  • 虽然数据增强技术提高了模型的精确度,但召回率有所下降。这说明数据增强技术在提高模型泛化能力的同时,也牺牲了一部分对真实漏洞的识别能力。

3.6.4 模型对不同类型漏洞的检测能力不同

本文分析了模型对不同类型漏洞的检测能力,发现模型在检测信息泄露和代码注入等类型的漏洞时表现较好,而在检测路径遍历和可预测返回值等类型的漏洞时表现较差。

这说明模型对不同类型漏洞的检测能力存在差异,需要针对不同类型的漏洞进行针对性的改进。

3.6.5 模型对高严重性漏洞的检测能力较差

本文分析了模型对不同严重性漏洞的检测能力,发现模型在检测高严重性漏洞时表现较差。这说明模型需要进一步提高对高严重性漏洞的检测能力,以更好地保障软件安全。

3.6.6 大型语言模型在漏洞检测中的应用:

使用 CodeLlama 和 Mixtral 等大型语言模型进行漏洞检测,发现这些模型在 AUC 分数方面优于其他模型,但仍然低于 LineVul 模型。

这说明大型语言模型在漏洞检测方面具有潜力,但需要进一步提高其针对性和效率。

标签:代码,检测,模型,漏洞,软件,集上,数据,Vul
From: https://blog.csdn.net/robinfang2019/article/details/140224394

相关文章

  • 时光魔法师——专业照片处理软件的神奇魅力
    引言:时光印记的守护者在这个数字化的时代,照片不仅仅是记忆的载体,更是情感的传递者。然而,随着时间的流逝,照片可能会褪色、损坏,失去原有的光彩。一款集多种功能于一体的专业照片处理软件,成为了时光的守护者,让每一张照片都能重现其最初的美丽。功能亮点:照片修复与特效赋予......
  • 【漏洞复现】Geoserver XPath表达式注入致远程代码执行漏洞(CVE-2024-36401)
    0x01产品简介GeoServer是一个开源服务器,用于共享、处理和编辑地理空间数据。它支持多种地图和数据标准,使用户能够通过网络访问和操作地理信息系统(GIS)数据。0x02漏洞概述2024年7月,互联网上披露Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401),攻击者无需认证即可利......
  • 重装系统后要干嘛(软件篇)
    捯饬老家伙杉KMS激活windowsctrl+X管理员模式下开powershell安装密钥:slmgr.vbs-ipkFJ82H-XT6CR-J8D7P-XQJJ2-GPDD4执行密钥:slmgr.vbs-skmszh.us.to执行激活:slmgr/ato这里稍微记几个密钥(都是MSDN,我告诉你-做一个安静的工具站(itellyou.cn)里下载的),以后没事更新......
  • Linux软件安装
    一、软件为什么需要安装1、安装检查2、释放文件3、复制可执行文件4、DLL动态链接库/安装服务5、注册表6、开始菜单和快捷方式二、脚本和程序的区别不需要编译的:Javascript、Python、Ruby……需要编译的:C、C++、Swift、Kotlin、Go……......
  • 流程自动化软件:赋能现代企业的强大工具
    本文将介绍流程自动化软件/脚本/助手的应用场景,同时我也做个自我介绍: ......
  • 企业加密软件推荐丨全方位防止文件泄密
    在当前数字化、信息化快速发展的时代,企业面临的数据安全挑战日益严峻。数据泄露不仅会导致商业机密的丢失,还可能引发法律诉讼、经济损失和声誉损害等一系列连锁反应。因此,企业必须采取有效的防泄密措施,以确保其核心资产的安全。以下是对企业为什么需要防泄密以及市场上一些防......
  • 源代码防泄密很重要!2024源代码加密软件推荐
    一、源代码防泄密的重要性源代码作为软件的核心资产,其防泄密工作至关重要。一旦源代码泄露,可能引发一系列严重后果。知识产权被盗用,意味着竞争对手可能凭借获取的源代码迅速开发出相似产品,抢占市场份额。例如,某创新型软件公司研发的独特算法源代码被泄露,竞争对手很快推出了功......
  • 电脑使用什么远程控制软件?推荐使用安全软件ToDesk
    当你面临紧急工作需求,但却和办公电脑相隔千里时,远程控制电脑就派上了用场!初次使用远程控制软件的人,可能会担心使用时会不会存在信息被盗取,使用过后会不会发生被陌生人悄悄远控的情况小社长向大家安利一个超好用的远程控制软件ToDesk!电脑远程控制高清不卡顿,传输文件速度超快,免费......
  • 中国软件评测中心最新报告:文心大模型技术、产品、应用全面领跑
    近日,工业和信息化部直属国家一级科研事业单位中国软件评测中心发布《人工智能大语言模型技术发展研究报告(2024年)》,总结梳理大语言模型技术能力进展和应用情况,肯定国产大模型的发展成果,为产业界选用大模型提供了权威参考。报告显示,文心大模型技术、产品、应用全面领先,在智能......
  • 共生与超越:生成式AI在软件开发中的角色重塑
    前言在信息技术日新月异的今天,生成式人工智能(AIGC)正如同一股不可忽视的力量,深刻地影响着软件开发的每一个角落。从代码的自动编写到复杂系统的故障诊断,AIGC的应用不仅提升了开发效率,更在某种程度上重新定义了开发者的职业角色与技能要求。本文旨在探讨生成式AI在软件开发领域......