[发明专利]一种基于多任务深度学习的安全缺陷报告预测方法在审
申请号: | 202010853000.1 | 申请日: | 2020-08-22 |
公开(公告)号: | CN112001484A | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 苏小红;蒋远;牟辰光;王甜甜 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08;G06K9/62;G06F40/284;G06F16/35 |
代理公司: | 哈尔滨龙科专利代理有限公司 23206 | 代理人: | 高媛 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 任务 深度 学习 安全 缺陷 报告 预测 方法 | ||
1.一种基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述方法包括如下步骤:
步骤1:挖掘缺陷报告仓库以及相关的安全漏洞管理网站,找出被开发人员或者维护人员标记为安全和非安全的缺陷报告,并且根据缺陷报告的严重程度内容为每个实例添加severity标签,构建用于训练和测试多任务深度学习模型的缺陷报告数据集;
步骤2:对步骤1构建的缺陷报告数据集中缺陷报告的文本内容进行预处理,生成关于缺陷报告的专业领域语料库;
步骤3:基于步骤2生成的关于缺陷报告的专业领域语料库,训练word2vec模型,生成词向量词典;
步骤4:面向安全缺陷报告识别及与其相关缺陷的严重级别预测,建立多任务学习模型,所述多任务学习模型分为特征共享层和特定任务层两部分,其中:
特征共享层位于多任务学习模型的底层,用于提取预处理后的缺陷报告的共享语义特征;
特定任务层位于多任务学习模型的顶层,每个任务分别对应一个子网络,每个子网络采用有多个隐含层的全连接网络和一个softmax层实现面向特定任务的具有分辨力的特征提取以及特定的分类任务;
步骤5:训练步骤4建立的多任务学习模型,利用多个任务之间的潜在相关性,提升安全缺陷报告预测模型的泛化性能;
步骤6:更改用于实现特征共享层的深度神经网络,重复执行步骤5,选择效果最好的一种多任务深度学习模型用于安全缺陷报告的识别及其相关缺陷的严重级别预测;
步骤7:给定一个新提交的缺陷报告,使用步骤6中已训练的多任务深度学习模型识别其是否是安全缺陷报告,并预测其相关缺陷的严重级别。
2.根据权利要求1所述的基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述步骤1的具体步骤如下:
步骤11:构建针对实际项目Chromium的安全缺陷报告数据集:借助开源Web爬虫平台Scrapy,按照报告提交的时间顺序,依次爬取Chromium缺陷报告仓库中的每个缺陷报告,利用正则表达式判断缺陷报告中是否包含“Bug-Security”字段,如果包含则将此缺陷报告标记为安全缺陷报告,否则标记为非安全缺陷报告;
步骤12:构建针对实际项目Mozilla的安全缺陷报告数据集:挖掘Mozilla项目的安全漏洞管理网站,获取与安全问题相关的缺陷报告信息,并从相关网页中提取缺陷报告的ID组成安全缺陷报告ID集合,如果从Mozilla的缺陷报告追踪系统中爬取的缺陷报告的ID在上述的ID集合中,则将此缺陷报告标记为安全缺陷报告,否则标记为非安全缺陷报告;
步骤13:将安全缺陷报告数据集中的每个缺陷报告的严重程度字段转化为相应的严重程度标签。
3.根据权利要求1所述的基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述步骤4的具体步骤如下:
步骤41:设计多任务深度学习模型;
步骤42:设置用于特征共享层的深度神经网络的参数,使用步骤3训练得到的word2vec模型参数初始化embedding层的参数;另外根据共享层所采用的网络类型,具体设置针对此类网络的特定参数范围;
步骤43:设置用于特定任务层的全连接网络的输入和输出神经元的个数。
4.根据权利要求3所述的基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述特征共享层采用多种深度神经网络实现,用于实现特征共享层的深度神经网络为LSTM、BiLSTM、DCNN+LSTM、TextCNN、GRU、BiGRU中的一种。
5.根据权利要求3所述的基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述特定任务层的输入神经元个数由共享层输出的语义特征向量的维度确定,输出神经元的个数由各子任务的类别确定。
6.根据权利要求1所述的基于多任务深度学习的安全缺陷报告预测方法,其特征在于所述步骤5的具体步骤如下:
步骤51:设置用于多任务深度学习模型训练的超参数范围;
步骤52:根据网格搜索,随机选择一组超参数用于多任务深度学习模型的训练;
步骤53:将每一批次的训练实例中的每个单词在多任务深度学习模型的embedding层转化为词向量后,送入到多任务深度学习模型的特征共享层和特定任务层进行前向计算,输出实例被预测为安全缺陷报告以及实例属于各个严重级别的概率;
步骤54:将预测的概率和真实的标签作为交叉熵损失函数的输入,分别计算多个任务的损失,并对多个损失值进行加权求和作为总体损失;
步骤55:采用梯度优化算法调整学习率,进行反向传播,更新多任务深度学习模型的参数;
步骤56:重复执行步骤52-步骤55,选择一组最优的超参数,使得多任务深度学习模型在验证集上的效果达到最优。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010853000.1/1.html,转载请声明来源钻瓜专利网。