漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf

上传人:梁腾 文档编号:10090408 上传时间:2021-06-03 格式:PDF 页数:11 大小:401.83KB
收藏 版权申诉 举报 下载
漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf_第1页
第1页 / 共11页
漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf_第2页
第2页 / 共11页
漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf_第3页
第3页 / 共11页
文档描述:

《漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf》由会员分享,可在线阅读,更多相关《漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf(11页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010652542.2 (22)申请日 2020.07.08 (71)申请人 扬州大学 地址 226009 江苏省扬州市四望亭路180号 (72)发明人 周洲孙小兵薄莉莉李斌 刘源龙瑶 (74)专利代理机构 南京理工大学专利中心 32203 代理人 朱炳斐 (51)Int.Cl. G06F 16/335(2019.01) G06F 21/57(2013.01) G06F 8/658(2018.01) (54)发明名称 漏洞补丁推荐方法、 系统、 计算机设备和存 储介质 (5。

2、7)摘要 本发明公开了一种漏洞补丁推荐方法、 系 统、 计算机设备和存储介质, 方法包括: 构建漏洞 修复数据集, 包括漏洞代码及对应的漏洞补丁源 代码、 漏洞类型特征、 文档注释以及测试样例; 构 建并训练预训练模型; 采集待修复的含有漏洞的 代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 对补丁进行优先级排序, 基于该顺序为 待修复的代码片段推荐补丁。 本发明充分利用漏 洞的特征类型, 一方面更好的进行预训练模型的 构建, 发挥预训练模型的优势, 另一方面, 有利于 减少补丁搜索空间, 更快速的获取所需补丁。 此 外, 本发明充分利用预训练模型在自然语言方面 的优势, 结合代码和文。

3、本两个部分, 进行预训练 模型的构建和训练, 很好的克服了人为规定等方 式的不足。 权利要求书2页 说明书5页 附图3页 CN 111897946 A 2020.11.06 CN 111897946 A 1.漏洞补丁推荐方法, 其特征在于, 所述方法包括以下步骤: 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补丁源代码、 漏 洞类型特征、 修复时的文档注释以及测试样例; 步骤2, 构建并训练预训练模型; 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜索空 间; 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含有。

4、漏 洞的代码片段推荐补丁。 2.根据权利要求1所述的漏洞补丁推荐方法, 其特征在于, 步骤1中所述漏洞类型特征 包括CVE信息。 3.根据权利要求1所述的漏洞补丁推荐方法, 其特征在于, 步骤2所述预训练模型采用 Roberta模型。 4.根据权利要求1所述的漏洞补丁推荐方法, 其特征在于, 步骤2中所述训练预训练模 型, 具体包括: 将所述漏洞修复数据集中的漏洞代码及其对应的漏洞补丁源代码作为预训练模型的 代码输入, 将所述漏洞类型特征和文档注释作为预训练模型的文本输入, 将代码语言描述 的代码向量和自然语言描述的特征向量作为输出, 对预训练模型进行训练。 5.根据权利要求1所述的漏洞补丁推。

5、荐方法, 其特征在于, 步骤3中所述构建补丁搜索 空间, 具体为: 将所述待修复的含有漏洞的代码片段, 及其对应的漏洞类型特征作为补丁生 成工具的输入, 输出包括若干补丁的补丁搜索空间。 6.根据权利要求1所述的漏洞补丁推荐方法, 其特征在于, 步骤4对所述补丁搜索空间 中的补丁进行优先级排序, 具体过程包括: 步骤4-1-1, 基于待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建AST树; 步骤4-1-2, 提取AST树的特征并输入至训练后的预训练模型中, 输出代码向量; 步骤4-1-3, 针对所述补丁搜索空间中的每一个补丁代码, 求取其与步骤4-1-2中所述 代码向量的相似度; 步。

6、骤4-1-4, 根据相似度对所述补丁搜索空间中的补丁进行降序排列。 7.根据权利要求1或6所述的漏洞补丁推荐方法, 其特征在于, 步骤4中所述基于该顺序 为待修复的含有漏洞的代码片段推荐补丁, 具体过程包括: 步骤4-2-1, 针对排序后的第一个补丁, 判断所述漏洞修复数据集中是否存在该补丁对 应的测试样例, 若存在, 则执行下一步; 否则对下一个补丁执行本步骤, 直至遍历完所有补 丁, 若所有补丁均不存在对应的测试样例, 则将排序后的第一个补丁推荐给所述待修复的 含有漏洞的代码片段; 步骤4-2-2, 利用该测试样例验证该补丁是否能修复所述待修复的含有漏洞的代码片 段, 若能, 则将该补丁推。

7、荐给待修复的含有漏洞的代码片段; 否则针对下一个补丁, 返回执 行上一步。 8.基于权利要求1至7任意一项所述的漏洞补丁推荐方法的推荐系统, 其特征在于, 所 述系统包括: 第一构建模块, 用于构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补 权利要求书 1/2 页 2 CN 111897946 A 2 丁源代码、 漏洞类型特征、 修复时的文档注释以及测试样例; 第二构建模块, 用于构建并训练预训练模型; 第三构建模块, 用于采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构 建补丁搜索空间; 补丁推荐模块, 用于对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待。

8、 修复的含有漏洞的代码片段推荐补丁。 9.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计 算机程序, 其特征在于, 所述处理器执行所述计算机程序时实现权利要求1至7中任一项所 述方法的步骤。 10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述计算机程序 被处理器执行时实现权利要求1至7中任一项所述方法的步骤。 权利要求书 2/2 页 3 CN 111897946 A 3 漏洞补丁推荐方法、 系统、 计算机设备和存储介质 技术领域 0001 本发明涉及软件工程领域, 特别涉及一种基于预训练模型的漏洞补丁推荐方法、 系统、 计算机设备和存储介质。

9、。 背景技术 0002 随着计算机软件越来越多地应用于生活的各个方面, 对于软件的安全方面的维护 愈加受到人们的重视。 漏洞的数量的快速增长不但给个人带来了安全隐患, 也给企业和社 会带来了较大的损失。 因此漏洞的修复工作对于维护软件安全具有重大意义。 0003 现有的针对于漏洞的自动修复工作大多只考虑了几种漏洞, 例如缓存区溢出, 整 数溢出, 强制类型转换失败, 且自动修复效果不佳。 也有通过分析代码变化的修改记录, 有 几行进行了有关修改等这些特征来分析漏洞补丁的, 但是这些特征难以直接使用来进行漏 洞的修复工作。 而对于缺陷自动修复(APR)的相关工作则没有考虑漏洞的类型特征, 对于漏。

10、 洞的修复效果一般。 与此同时, 在巨大的补丁搜索空间中, 现有的利用固定规则排序方式, 利用错误定位等方式有各自的局限性, 现有的利用机器学习的方式则往往需要较长的时 间, 训练效果也不如预训练模型良好和稳定。 发明内容 0004 本发明的目的在于针对上述现有技术存在的问题, 提供一种能够实现快速推荐补 丁的漏洞补丁推荐方法。 0005 实现本发明目的的技术解决方案为: 漏洞补丁推荐方法, 所述方法包括以下步骤: 0006 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补丁源代 码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0007 步骤2, 构建并训练预训练。

11、模型; 0008 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 0009 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码片段推荐补丁。 0010 漏洞补丁推荐系统, 所述系统包括: 0011 第一构建模块, 用于构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏 洞补丁源代码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0012 第二构建模块, 用于构建并训练预训练模型; 0013 第三构建模块, 用于采集待修复的含有漏洞的代码片段及其对应的漏洞类型特 征, 构建补丁搜索空间; 0014 补丁推。

12、荐模块, 用于对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序 为待修复的含有漏洞的代码片段推荐补丁。 0015 一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的 说明书 1/5 页 4 CN 111897946 A 4 计算机程序, 处理器执行所述计算机程序时实现以下步骤: 0016 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补丁源代 码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0017 步骤2, 构建并训练预训练模型; 0018 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 00。

13、19 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码片段推荐补丁。 0020 一种计算机可读存储介质, 其上存储有计算机程序, 计算机程序被处理器执行时 实现以下步骤: 0021 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补丁源代 码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0022 步骤2, 构建并训练预训练模型; 0023 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 0024 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码。

14、片段推荐补丁。 0025 本发明与现有技术相比, 其显著优点为: 1)充分考虑了漏洞的特征类型: 利用漏洞 的特征类型, 可以更加有针对性地修复漏洞, 具体地, 在构建训练预训练模型时, 利用漏洞 的特征类型, 作为预训练模型输入需要的文本语料, 在构建搜索空间时, 利用特征类型, 减 少搜索空间的大小, 更快的搜索有关补丁。 2)使用预训练模型, 预训练模型本身更加稳定和 快速。 且相比于之前的补丁排序方式, 例如利用固定规则的排序、 利用错误定位的排序方 式, 利用预训练模型可以很好的克服人为规定导致的不足。 而且利用机器学习的方式, 往往 需要较长的时间, 训练的结果也不如预训练模型良好。

15、稳定。 0026 下面结合附图对本发明作进一步详细描述。 附图说明 0027 图1为一个实施例中漏洞补丁推荐方法的流程图。 0028 图2为一个实施例中模型训练流程图。 0029 图3为一个实施例中补丁推荐流程图。 具体实施方式 0030 为了使本申请的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本申请进行进一步详细说明。 应当理解, 此处描述的具体实施例仅仅用以解释本申请, 并不 用于限定本申请。 0031 在一个实施例中, 结合图1, 提供了一种漏洞补丁推荐方法, 所述方法包括以下步 骤: 0032 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏。

16、洞补丁源代 码、 漏洞类型特征、 修复时的文档注释以及测试样例; 说明书 2/5 页 5 CN 111897946 A 5 0033 步骤2, 构建并训练预训练模型; 0034 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 0035 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码片段推荐补丁。 0036 进一步地, 在其中一个实施例中, 步骤1中所述漏洞类型特征包括CVE信息。 0037 进一步地, 在其中一个实施例中, 步骤2所述预训练模型采用Roberta模型。 0038 进一步地, 在其中一个实施例中,。

17、 结合图2, 步骤2中所述训练预训练模型, 具体包 括: 0039 将所述漏洞修复数据集中的漏洞代码及其对应的漏洞补丁源代码作为预训练模 型的代码输入, 将所述漏洞类型特征和文档注释作为预训练模型的文本输入, 将代码语言 描述的代码向量和自然语言描述的特征向量作为输出, 对预训练模型进行训练。 0040 进一步地, 在其中一个实施例中, 结合图3, 步骤3中所述构建补丁搜索空间, 具体 为: 将所述待修复的含有漏洞的代码片段, 及其对应的漏洞类型特征作为补丁生成工具的 输入, 输出包括若干补丁的补丁搜索空间。 0041 进一步地, 在其中一个实施例中, 步骤4对所述补丁搜索空间中的补丁进行优先。

18、级 排序, 具体过程包括: 0042 步骤4-1-1, 基于待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建 AST树; 0043 步骤4-1-2, 提取AST树的特征并输入至训练后的预训练模型中, 输出代码向量; 0044 步骤4-1-3, 针对所述补丁搜索空间中的每一个补丁代码, 求取其与步骤4-1-2中 所述代码向量的相似度; 0045 步骤4-1-4, 根据相似度对所述补丁搜索空间中的补丁进行降序排列。 0046 进一步地, 在其中一个实施例中, 结合图3, 步骤4中所述基于该顺序为待修复的含 有漏洞的代码片段推荐补丁, 具体过程包括: 0047 步骤4-2-1, 针对排序后的。

19、第一个补丁, 判断所述漏洞修复数据集中是否存在该补 丁对应的测试样例, 若存在, 则执行下一步; 否则对下一个补丁执行本步骤, 直至遍历完所 有补丁, 若所有补丁均不存在对应的测试样例, 则将排序后的第一个补丁推荐给所述待修 复的含有漏洞的代码片段; 0048 步骤4-2-2, 利用该测试样例验证该补丁是否能修复所述待修复的含有漏洞的代 码片段, 若能, 则将该补丁推荐给待修复的含有漏洞的代码片段; 否则针对下一个补丁, 返 回执行上一步。 0049 在一个实施例中, 提供了一种漏洞补丁推荐系统, 所述系统包括: 0050 第一构建模块, 用于构建漏洞修复数据集, 该数据集包括漏洞代码, 及其。

20、对应的漏 洞补丁源代码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0051 第二构建模块, 用于构建并训练预训练模型; 0052 第三构建模块, 用于采集待修复的含有漏洞的代码片段及其对应的漏洞类型特 征, 构建补丁搜索空间; 0053 补丁推荐模块, 用于对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序 说明书 3/5 页 6 CN 111897946 A 6 为待修复的含有漏洞的代码片段推荐补丁。 0054 进一步地, 在其中一个实施例中, 所述补丁推荐模块包括依次执行的: 0055 AST树构建单元, 用于基于待修复的含有漏洞的代码片段及其对应的漏洞类型特 征, 构建AST。

21、树; 0056 代码向量获取单元, 用于提取AST树的特征并输入至训练后的预训练模型中, 输出 代码向量; 0057 相似度求取单元, 用于针对所述补丁搜索空间中的每一个补丁代码, 求取其与所 述代码向量获取单元获取的代码向量的相似度; 0058 排序单元, 用于根据相似度对所述补丁搜索空间中的补丁进行降序排列; 0059 第一判别及推荐单元, 用于针对排序后的第一个补丁, 判断所述漏洞修复数据集 中是否存在该补丁对应的测试样例, 若存在, 则执行第二判别及推荐单元; 否则对下一个补 丁执行本单元, 直至遍历完所有补丁, 若所有补丁均不存在对应的测试样例, 则将排序后的 第一个补丁推荐给所述待。

22、修复的含有漏洞的代码片段; 0060 第二判别及推荐单元, 用于利用该测试样例验证该补丁是否能修复所述待修复的 含有漏洞的代码片段, 若能, 则将该补丁推荐给待修复的含有漏洞的代码片段; 否则针对下 一个补丁, 返回执行第一判别及推荐单元。 0061 关于漏洞补丁推荐系统的具体限定可以参见上文中对于漏洞补丁推荐方法的限 定, 在此不再赘述。 0062 在一个实施例中, 提供了一种计算机设备, 包括存储器、 处理器及存储在存储器上 并可在处理器上运行的计算机程序, 处理器执行计算机程序时实现以下步骤: 0063 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其对应的漏洞补丁源代 码、。

23、 漏洞类型特征、 修复时的文档注释以及测试样例; 0064 步骤2, 构建并训练预训练模型; 0065 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 0066 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码片段推荐补丁。 0067 对于每一步的限定具体限定可以参见上文中对于漏洞补丁推荐方法的限定, 在此 不再赘述。 0068 在一个实施例中, 提供了一种计算机可读存储介质, 其上存储有计算机程序, 计算 机程序被处理器执行时实现以下步骤: 0069 步骤1, 构建漏洞修复数据集, 该数据集包括漏洞代码, 及其。

24、对应的漏洞补丁源代 码、 漏洞类型特征、 修复时的文档注释以及测试样例; 0070 步骤2, 构建并训练预训练模型; 0071 步骤3, 采集待修复的含有漏洞的代码片段及其对应的漏洞类型特征, 构建补丁搜 索空间; 0072 步骤4, 对所述补丁搜索空间中的补丁进行优先级排序, 基于该顺序为待修复的含 有漏洞的代码片段推荐补丁。 0073 对于每一步的限定具体限定可以参见上文中对于漏洞补丁推荐方法的限定, 在此 说明书 4/5 页 7 CN 111897946 A 7 不再赘述。 0074 本发明提出的基于预训练模型的软件漏洞补丁推荐方法, 充分利用漏洞的特征类 型, 一方面更好的进行预训练模。

25、型的构建, 发挥预训练模型的优势, 另一方面, 有利于减少 补丁搜索空间, 更快速的获取所需补丁。 此外, 本发明充分利用预训练模型在自然语言方面 的优势, 结合代码和文本两个部分, 进行预训练模型的构建和训练, 很好的克服了人为规定 等方式的不足。 0075 以上显示和描述了本发明的基本原理、 主要特征及优点。 本行业的技术人员应该 了解, 本发明不受上述实施例的限制, 上述实施例和说明书中描述的只是说明本发明的原 理, 在不脱离本发明精神和范围的前提下, 本发明还会有各种变化和改进, 这些变化和改进 都落入要求保护的本发明范围内。 本发明要求保护范围由所附的权利要求书及其等效物界 定。 说明书 5/5 页 8 CN 111897946 A 8 图1 说明书附图 1/3 页 9 CN 111897946 A 9 图2 说明书附图 2/3 页 10 CN 111897946 A 10 图3 说明书附图 3/3 页 11 CN 111897946 A 11 。

展开阅读全文
内容关键字: 漏洞补丁 推荐 方法 系统 计算机 设备 存储 介质
关于本文
本文标题:漏洞补丁推荐方法、系统、计算机设备和存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10090408.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1