网站漏洞检测是软件工程中的一个重要课题。为了提高漏洞检测的有效性和效率,提出了许
多基于机器学习和深度学习的传统漏洞检测方法。然而,不同因素对漏洞检测的影响是未知
的。比如分类模型和矢量化方法会直接影响检测结果,代码替换会影响漏洞检测的特性。我
们进行了比较研究,以评估不同分类算法、矢量化方法以及用户定义变量和函数名替换的影
响。在本文中,我们收集了三个不同的漏洞代码数据集。这些数据集对应于不同类型的漏洞
,并且具有不同比例的源代码。此外,我们提取并分析了漏洞代码数据集的特征来解释一些
实验结果。从实验结果来看,我们的发现可以总结如下。(1)深度学习的性能优于传统的机器
学习,BLSTM可以达到最好的性能。
(2)countvectorzer可以提高传统机器学习的性能。(3)不同的漏洞类型和不同的代码来源会产
生不同的特征。我们使用随机森林算法来生成漏洞代码数据集的特征。这些生成的特性包括
系统相关函数、语法关键字和用户定义的名称。(4)没有用户自定义变量和函数名替换的数据
集会获得更好的漏洞检测结果。
生不同的特征。我们使用随机森林算法来生成漏洞代码数据集的特征。这些生成的特性包括
系统相关函数、语法关键字和用户定义的名称。(4)没有用户自定义变量和函数名替换的数据
集会获得更好的漏洞检测结果。
软件安全一直是软件工程领域的重要组成部分。许多网络攻击根源于软件漏洞,造成了巨大
的损失。尽管已经提出了许多检测软件漏洞的方法,但在常见漏洞和暴露(CVE)中报告的漏洞
数量仍在增加。看来人类专家和项目管理技术的作用是有限的。它促进了结合机器学习的代
码分析技术的发展。
的损失。尽管已经提出了许多检测软件漏洞的方法,但在常见漏洞和暴露(CVE)中报告的漏洞
数量仍在增加。看来人类专家和项目管理技术的作用是有限的。它促进了结合机器学习的代
码分析技术的发展。
代码分析技术主要有两种类型:动态代码分析和静态代码分析。动态代码分析需要实时监控各
种指标。因此,很难使用机器学习算法来提高分析效率。动态分析工具更多用于性能测试和
功能测试。可是,静态分析工具如Clang、Caqqheck和Flawessender通常用于检测潜在的漏
洞。然而,现有的漏洞检测方案会产生较高的误报率。因此,现有的漏洞检测研究大多基于
静态代码分析和机器学习(即传统的机器学习或深度学习)的结合。静态代码分析和漏洞检测有
两个不同的层次:功能层和代码层。在功能层面进行分析时,Tommy等人关注的是文件依赖
性和项目复杂性。在代码层面进行分析时,注意代码中的变量和逻辑。经验表明,与功能级
分析相比,代码级分析具有更细的检查粒度和更好的漏洞检测效果。
种指标。因此,很难使用机器学习算法来提高分析效率。动态分析工具更多用于性能测试和
功能测试。可是,静态分析工具如Clang、Caqqheck和Flawessender通常用于检测潜在的漏
洞。然而,现有的漏洞检测方案会产生较高的误报率。因此,现有的漏洞检测研究大多基于
静态代码分析和机器学习(即传统的机器学习或深度学习)的结合。静态代码分析和漏洞检测有
两个不同的层次:功能层和代码层。在功能层面进行分析时,Tommy等人关注的是文件依赖
性和项目复杂性。在代码层面进行分析时,注意代码中的变量和逻辑。经验表明,与功能级
分析相比,代码级分析具有更细的检查粒度和更好的漏洞检测效果。
Zhen等人提出了一种漏洞检测工具VulDikyPaulcker。VulDikyPaulcker包括一组基于数据流
的处理程序,用于生成代码小工具。Codegadget是一种代码片,包含了几乎所有的函数调
用、变量和少量的噪声。它保留了源代码的信息。所以问题从如何分析代码变成了如何更好
的对代码进行预处理。在VulDikyPaulcker中,在训练深度学习模型的数据之前,需要执行两
个步骤。第一步是替换用户定义的变量和函数。在这一步中,用户定义的变量和函数的名称
将被替换为通用名称。第二步是矢量化。VulDikyPaulcker使用Word2vec工具将行转换为向
量。然后VulDikyPaulcker使用双向长短期记忆(BLSTM)神经网络训练分类模型。因此,有四
个要点值得研究:
的处理程序,用于生成代码小工具。Codegadget是一种代码片,包含了几乎所有的函数调
用、变量和少量的噪声。它保留了源代码的信息。所以问题从如何分析代码变成了如何更好
的对代码进行预处理。在VulDikyPaulcker中,在训练深度学习模型的数据之前,需要执行两
个步骤。第一步是替换用户定义的变量和函数。在这一步中,用户定义的变量和函数的名称
将被替换为通用名称。第二步是矢量化。VulDikyPaulcker使用Word2vec工具将行转换为向
量。然后VulDikyPaulcker使用双向长短期记忆(BLSTM)神经网络训练分类模型。因此,有四
个要点值得研究: