文章鏈接:https://www.ixueshu.com/document/22cde1e97521595bc36aadb3dd6ff858318947a18e7f9386.html.
文章主要工作
- 論述了構建網絡安全知識庫的三個步驟,並提出了一個構建網絡安全知識庫的框架;
- 討論網絡安全知識的推演
1.框架設計
總體知識圖譜框架如圖1所示,其包括數據源(結構化數據和非結構化數據)、信息抽取及本體構建、網絡安全知識圖譜的生成:
1.1 網絡安全本體構建
文中提出了一個基於網絡安全知識庫的五元組模型,該模型包含:概念、實例、關係、屬性和規則。網絡安全知識庫的架構如圖2所示。
該架構如圖2所示,其中包括三個本體:資產(Assets)、漏洞(Vulnerability)和攻擊(Attack)。圖3表示網絡安全本體,其中包含五個實體類型:漏洞、資產、軟件、操作系統、攻擊。
1.2 基於機器學習提取網絡安全相關實體
由於條件隨機場模型(CRF)保留了條件概率框架的優點,如最大熵Markov 模型,也解決了標記偏差的問題,所以適用於命名實體識別。
Stanford NER提供了線性鏈條件隨機場(CRF)序列模型的一般實現,於是文中使用它來提取網絡完全相關的實體。下面是Stanford NER的一些主要特徵:
- UseNGrams:利用n-gram取特徵,即詞的子串。
- MaxNGramLeng:這個特徵的值類型爲整型。如果這個特徵的值爲正,則大於該值的n-gram將不會在 模型中使用。在本文中,我們將maxNGramLeng的值設 置爲6。
- UsePrev:這可以給我們提供<previous word, class of previous word>的特徵,並與其他選項一起啓用, 如<previous tag,class>。這導致基於當前單詞與一對< previous word,class of previous word >之間的關係的特 徵。當有連續的詞屬於同一個類時,這個特徵將是非常 有用的。
- UseNext:和UsePrev特徵非常相似。
- UseWordPairs:這個特徵基於兩個詞對—— <Previous word,current word,class> 和 <current word, next word,class>。
- UseTaggySequences:這是一個重要的特徵,它 使用類的序列而不是單詞的集合,而是使用第一、第二 和第三順序類和標籤序列作爲交互特徵。
- UseGazettes:如果爲真,則由下一個名爲“gazette”的特徵將把文件指出爲實體字典。
- Gazette:該值可以是一個或多個文件名(以逗 號、分號或空格分隔的名稱)。如果從這些文件加載公 開的實體詞典,每行應該是一個實體類名稱,後跟一個 空格,後面再跟上一個實體。
- CleanGazette:如果這個值爲真,則僅當全部詞 在字典中被匹配時,此特徵纔會觸發。如果在字典中 有一個詞“Windows 7”,那麼整個詞應該在字典中進 行匹配。
- SloppyGazette:如果這個值爲真,詞和字典中 的詞局部匹配也能觸發這個特徵,如“Windows ”可以 和“windows 7”進行匹配。
2. 知識推演
2.1 數據源
- 漏洞的來源:CVE、NVD、 SecurityFocus、CXSECURITY、Secunia、中國國家漏 洞數據庫(CNVD)、 CNNVD和安全內容自動化協議中 國社區(SCAP)。
- 攻擊的數據來源
(1).一類來自信息安全網站,其中包括Pediy BBS、Freebuf、 Kafan BBS和開放Web應用安全項目(OWASP);
(2).另一 類來自企業自建信息響應中心,包括360安全響應中心 (360SRC)和阿里巴巴安全響應中心(ASRC)。
2.2 屬性推演
如圖4所示,圖中有三個實例:Ni、Nj和Nl,每一個實例對應一對(key,values)值。
屬性值Valueik的 預測公式如下:
對於實例Ni,通過計算下述公式可以得到新的屬性,如圖5所示。
2.3 關係推演
常用推理方法有三種:基於嵌入的技術、基於低維 向量表示和路徑排序算法。在本文中,我們選擇使用路徑排序算法。路徑排序的基本思想是使用連接兩個實體的路徑作爲特徵來預測兩個實體之間的關係。實例Ni、Nj和Nk 之間的屬性值和關係如圖6所示。
關係推理的預測公式如下:
式中,π爲所有從l到j的可達路徑,length(π)≤n。如果 Score(l, j)≥τ,τ爲閾值,則elj成立;否則不成立。通過路徑排序算法可以得到新的關係,如圖7所示。
2.4 評估標準
在信息檢索和提取系統中,有兩個主要的評估指 標,包括精確率和召回率。有時,爲了全面評估系統的性能,通常計算精確率和召回率的調和平均值。這就是我們通常所說的F-Measure。在本文中,我們使用 F-Measure的特殊形式F1值。精確率、召回率和F1值由真正、假正和假負定義。定義如下:
- 真正(TP):將正類預測爲正類數。
- 假正(FP):將負類預測爲正類數。
- 假負(FN):將正類預測爲負類數。
精確率(Precision)由以下公式給出:
召回率(Recall)由以下公式給出:
F1值由以下公式給出:
2.5 實驗結果(主要複製文章細節)
爲了驗證useGazettes的影響,我們建立了三個模型 (NER1、NER2和NER3)。
- NER1沒有使用useGazettes作爲它的特徵
- NER2使用useGazettes,並選擇了cleanGazette選項
- NER3也使用了useGazettes,但是它選擇了 sloppyGazette選項。
然後,採用了10倍交叉驗證的方法 來評估這些模型,將數據分成10個數據塊,將十分之九的塊用作訓練數據,其餘用作測試數據。
NER1的平均識別結果如表1所示,該表顯示結果的精度相對較高。對於F1度量,軟件和漏洞的識別率相近,且高於其他任何實體類型,也就是說, 軟件和漏洞的識別在整體識別效果方面取得了良好的表現。
然後,我們使用了包含useGazettes的特徵,並選擇 了cleanGazette的選項來訓練NER2。NER3是根據包含 useGazettes和sloppyGazette兩個選項的特徵進行訓練的。 平均識別結果如表2所示。
如表2所示,在NER2的識別結果中,對軟件的識別取得了良好的整體表現。對於NER3,OS的識別實現了高F1值。就軟件和操作系統的認可而言,NER3的整體 性能比NER2好。這個結果表明sloppyGazette選項有助於識別與網絡安全相關的實體。NER2和NER3的後果和平均值的F1測量值仍然很低,均小於70%。圖8給出了這三種模型之間的直觀比較。