- 简介越来越多的趋势是从软件库中挖掘漏洞,并使用机器学习技术自动检测软件漏洞。然而,一个基本但未解决的研究问题是:挖掘和学习过程中的不同因素如何影响识别不同特征的软件项目中漏洞的准确性?在这个领域,进行了大量的研究,包括源代码静态分析、软件库挖掘和基于NLP的机器学习。然而,从业者缺乏建立最先进基线模型的关键因素方面的经验。此外,缺乏关于从项目到项目转移漏洞签名的经验。本研究调查了不同漏洞特征的组合以及三种代表性的机器学习模型如何影响17个真实项目中漏洞检测的准确性。我们检查了两种漏洞表示:1)通过NLP提取的代码特征,采用不同的标记化策略和三种不同的嵌入技术(词袋,word2vec和fastText)和2)捕获软件系统的抽象设计的八个架构度量。三种机器学习算法包括随机森林模型、支持向量机模型和残差神经网络模型。分析表明,通过词袋嵌入提取的签名与随机森林相结合的推荐基线模型,在所有17个项目中相对于其他组合始终将检测准确性提高约4%。此外,根据我们的实验,我们观察到跨领域转移漏洞签名的局限性。
- 图表
- 解决问题研究如何通过不同的漏洞特征和机器学习模型来提高漏洞检测的准确性,并探究漏洞特征在不同项目中的可迁移性。
- 关键思路使用不同的漏洞特征和机器学习模型进行漏洞检测,发现使用词袋模型提取的漏洞特征,并结合随机森林模型,能够在所有17个项目中提高漏洞检测的准确性。
- 其它亮点实验使用了17个真实项目的数据集,并尝试了不同的漏洞特征提取和机器学习模型,发现词袋模型和随机森林模型的组合效果最好。同时,研究还发现漏洞特征在不同项目之间的可迁移性存在限制。
- 相关研究包括源代码静态分析、软件仓库挖掘和基于自然语言处理的机器学习等方面,其中一些论文包括:'Mining Software Repositories for Security Information: A Systematic Mapping Study','A Survey on Vulnerability Prediction of Software Systems'等。
沙发等你来抢
去评论
评论
沙发等你来抢