基于代码属性图和Bi-GRU的软件脆弱性检测方法.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
基于代码属性图和Bi-GRU的软件脆弱性检测方法 在软件开发和部署过程中,软件脆弱性是指软件中的缺陷,可以被利用来绕过系统的访问控制、非法窃取高权限等,导致用户隐私数据泄露、数字资产被盗、系统信息被更改等安全问题。随着软件系统的复杂度和规模的增加,脆弱性代码出现的频率也在不断上升。因此,及时发现软件中的脆弱性代码是一份十分重要的工作。 目前检测软件脆弱性的方法主要有静态、动态和混合三大类。静态方法主要是通过分析软件源代码来检测脆弱性,并不运行软件,对运行环境的要求较低,检测的普适性更强。传统的静态方法包括基于规则的分析、代码相似性检测和符号执行等方法。然而,传统的静态检测方法不能检测未知的脆弱性且误报率往往比较高。 与静态方法不同,动态方法是通过实际运行软件来寻找脆弱性,因此可以发现软件运行时的错误。动态方法包括模糊测试和污点分析等方法。然而,动态测试方法检测准确率高,但通常十分耗时并且缺乏完整性,容易出现漏报的现象。 混合方法结合了静态和动态分析技术,与静态方法相比降低了误报率,与动态方法相比减少了运行负载,但混合方法难以全部实现自动化检测,并且对未知脆弱性的检测效果相对较弱。 基于机器学习的方法可以从海量数据中发现和学习规律,具有可自动寻找脆弱性的特点,减少了人工参与度,提高了检测的自动化程度。基于机器学习的软件脆弱性检测方法能通过学习已有的脆弱性代码特征检测出类似或未知脆弱性。 在基于机器学习的软件脆弱性检测方法中,代码表征方式和脆弱性特征提取是该领域的重要关注点。代码表征方式是将源代码转换成数值型向量,以便于机器学习算法学习和检测脆弱性。传统的代码表征方式包括抽象语法树、代码度量等信息。 为了提高对未知脆弱性的检测效果,本文提出了一种基于代码属性图和Bi-GRU的软件脆弱性检测方法。该方法通过从函数的代码属性图中提取出抽象语法树序列、控制流图序列作为函数表征的表征方式,减少代码表征过程中的信息损失,并通过选取Bi-GRU来构建特征提取模型,提高对脆弱性代码的特征提取能力。 实验结果表明,与以抽象语法树为表征方式的方法相比,该方法最大可提高35%的精确率和22%的召回率,可改善面向多个软件源代码混合的真实数据集的脆弱性检测效果,有效降低误报率和漏报率。 本文的基于代码属性图和Bi-GRU的软件脆弱性检测方法可以有效地检测软件中的脆弱性代码,提高了检测的自动化程度和准确率,为软件开发和部署提供了更好的安全保障。
剩余39页未读,继续阅读
- 粉丝: 4494
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助