將遷移學習應用于網絡安全:通過漏洞描述預測漏洞的可利用性
研究背景和研究簡介
作者通過統計現有的CVSS V2和CVSS V3的base score以及exploitablity score和漏洞的被利用數量,得出CVSS分數并不能體現漏洞的可利用性,很多未被利用的漏洞都被打了很高的分數。
作者提到先前的研究存在著如下的問題:
- 沒有考慮NLP的多義詞情況和網絡空間安全術語
- 當選擇分類器時,沒有考慮特征間的依賴關系
- 在漏洞可利用性預測領域中,沒有公用的統一數據集。
作者提出了一個基于遷移學習的預測漏洞可利用性的框架:ExBERT。該框架的特色是在微調后的BERT上增加了一個池化層用于提取綜合的句子層級的語義特征,運用LSTM模型做可利用性預測的分類器。
研究方法
該文章中,作者將可利用性檢測作為一個二分類問題處理,并將最小化二元交叉熵作為訓練的目標。
ExBERT主要包括兩個階段,BERT遷移學習和利用預測應用。前者會生成一個微調后的BERT模型,用于后者的預測。預測部分分為四步:tokenization、token embedding、sentence embedding和exploitability prediction。順序圖如下:

在遷移學習過程中,作者首先下載了一個預訓練的BERT模型:uncased BERT-base。然后選取了從1999-2019年的NVD漏洞描述做該領域的語料庫。在訓練后,即得到微調后的BERT。
在利用預測過程中,首先用wordpiece算法做tokenization,之后通過微調后的BERT做token embedding。
作者在BERT上加了一層池化層,輸入token embedding,輸出做了池化策略。池化情況做了分段處理:

在池化層后是分類層,共有一個隱藏層LSTM和一個輸出層DenseNN,激活函數為sigmoid。LSTM用于捕捉sentence embedding的依賴。
實驗和結果
實驗數據來源于NVD和ExploitDB,分別以CVE-ID和EDB-ID做唯一標識,二者以CVE-ID作為聯系。文章判斷某漏洞是否被利用的依據是ExploitDB中是否存在該漏洞的PoC。數據集中一共含123254個CVE漏洞,其中41365個在ExploitDB中含有PoC/Exp。
文章提出了消融實驗,將ExBERT和僅預訓練的BERT在token embedding的效果、是否微調、池化層的效果和分類器的效果做了對比實驗。
Embedding后對于部分詞的二維向量空間詞距離(通過PCA降到二維):

微調后BERT和pre-trained BERT的效果對比:

不同池化策略對比:

不同分類方法對比:

綜合對比:

作者在提到未來工作可能會考慮聚合更多源的因素,以及遷移至一個在線學習模型來應對概念遷移等問題。