[發明專利]一種基于多任務深度學習的安全缺陷報告預測方法在審
| 申請號: | 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.szxzyx.cn/pat/books/202010853000.1/1.html,轉載請聲明來源鉆瓜專利網。





