皮壽熹 李富合 繆 磊 馬 辰
(1.中國船舶工業綜合技術經濟研究院 北京 100081)(2.中國艦船研究院 北京 100101)
隨著物聯網、IoT以及計算機網絡技術的發展,越來越多的新型設備出現在網絡中[2]。數量龐大、種類繁多的網絡設備暴露出更多的網絡安全問題,并給網絡管理帶來更為嚴峻的挑戰。因此有必要提供一種方法來識別網絡設備,用于統計和評估網絡空間中設備的分布狀況和存在的漏洞,為網絡管理工作提供支撐。
目前識別網絡設備類型的方法主要通過網絡掃描技術來實現。網絡掃描技術是指通過計算機網絡獲取目標主機的相關信息的技術。經過多年的發展,出現了ZMAP、NMAP等功能強大的網絡掃描工具,它根據自身的數據和規則維持服務和操作系統等指紋庫數據,用于判斷網絡主機身份信息。其中就包含部分主機的設備類型信息。但它沒有專門的指紋庫用于設備類型識別,因此該方法在準確度和可靠性上存在一定局限性。
基于“通過網絡掃描獲得的網絡設備信息可以一定程度上確定網絡設備類型”的假設,提出一種基于分類技術的網絡設備識別方法,集中于解決網絡設備類型識別不準確的問題。該方法從網絡空間搜索引擎中獲取網絡設備信息,對網絡設備信息進行特征提取,運用決策樹、邏輯回歸和樸素貝葉斯3種分類算法對網絡設備數據進行訓練,得到網絡設備分類模型。
網絡設備泛指所有連接到計算機網絡中的物理設備,根據網絡設備在計算機網絡中扮演的角色和提供的功能,分為交換機、終端服務器等15種網絡設備[3]。
網絡設備數據用于分類模型的訓練過程。由于訓練分類模型使用有監督的機器學習分類算法,因此網絡設備數據需要帶有設備類型標簽。此外,為了保證分類模型的準確性,需要保證采集數量足夠的樣本數據。基于以上特點,使用網絡空間搜索引擎Shodan采集網絡設備數據。Shodan是世界上首個專門搜“主機”的搜索引擎,能夠通過城市、國家、GPS坐標、設備類型、域名、操作系統及IP等信息來篩選主機信息。它包含大量的、較為精確的網絡設備數據。
網絡設備數據包括設備的操作系統、開放的端口、開放端口的Banner信息[4]、開放端口上提供的服務等數據項,數據中包括數字、文本、單詞、HTML頁面源碼等。為了使用分類算法,需要對設備數據采集獲得的數據進行處理,將之轉化為特征數據。
數據預處理包括文本表示和特征提取[5]。文本表示的工作是將設備數據進行分詞處理,將文本轉化為單詞數組;特征處理的工作是將設備數據中的所有單詞進行統計分析,過濾掉與設備類型相關度較小的單詞,它一方面它可以減小網絡常用詞對分類模型的影響,另一方面減小了數據樣本的維度,減少了工作量。網絡設備數據特征提取使用TF-IDF算法。
在分類算法中,分類算法[6]面對一組已經分好類的訓練數據集,從中學習如何分類未見過的數據。使用決策樹、邏輯回歸、樸素貝葉斯對樣本數據進行訓練。
2.3.1 決策樹
決策樹使用樹形結構來指定決策與結果的序列。決策樹的輸入值可以是分類的或連續的。決策樹的結構有測試點和分支點組成,其中分支表示所作出的決策[7]。沒有下一集分支的節點叫做葉子節點。葉子節點返回類別標簽。使用CHAID(Chi-squaredAutomatic Interaction Detector)算法構造決策樹。CHAID算法的核心是卡方檢驗[8]。CHAID算法支持字符輸入變量并支持多分類,并且具有較高的模型精確度,CHAID決策樹的分支策略基于卡方檢驗。
卡方檢驗統計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,卡方值越大,越不符合,偏差越小;卡方值就越小,越趨于符合;若量值完全相等時,卡方值就為0,表明理論值完全符合。它的計算公式為

簡化為極端情況來說明CHAID決策樹的構造過程。討論設備數據中是否包含camera與設備類型為webcam之間的關系。
這里以10031條數據為例,含有camera和設備類型之間的數據統計見表1。

表1 webcam設備分類與Banner中含有camera的數據統計
先做出假設:設備類型是否是webcam與Banner中是否含有camera沒有關系。基于這個假設可以得到表2中的數據統計,括號中是假設成立時的取值。

表2 設備類型分類判斷(基于假設)
根據表2可以看出表格中的理論值與實際值是存在差距的,接下來的工作是驗證這個差距是否可以推翻原假設。
計算使用卡方計算公式計算原假設的卡方值:

通過查找卡方表[9],自由度為1,顯著性水平為0.05的卡方臨界值為3.84,遠遠小于實驗計算得到的卡方值。由此判定原假設不成立,由此可以得出Banner中是否含有camera與設備類型是否是webcam是有關系的。
2.3.2 邏輯回歸
由于設備識別是一個多分類問題,因此使用多元邏輯回歸算法。它作為線性回歸問題的另一種形式,使用自變量的線性組合作為預測函數[10]。

這個表達式表示輸入數據為xi時,輸出為k的概率,其中βM,k是回歸參數。在多元邏輯回歸的解決方案中,借鑒二分類邏輯回歸的思想,將多元邏輯回歸看作一系列的二分類邏輯回歸:對于K種分類結果,將第i種分類結果看作一類,將剩下的分類結果看成另一類。假設將第K種分類結果看成一類,則剩下的K-1種分類結果可以表示為如下形式:

上式經過變換可以得到:

根據各類概率和為1的公式可知:

對于式(7)中的K-1個二分類模型中的模型參數使用最大后驗估計來確定。
2.3.3 樸素貝葉斯
樸素貝葉斯[11]是一種按照概率的分類算法,它假設一個屬性對給定類的影響獨立于其他屬性,即特征獨立性假設。它基于貝葉斯定理:

其 中 ,C∈{C1,C2,…,Ck} 表 示 設 備 類 型 ,D={w1,w2,…,wn}表示設備特征數據。P(C|D)稱為后驗概率,表示特征數據D屬于C的概率。P(C)稱為先驗概率,表示C類樣本數量占總樣本數量的比例。
在式(8)中,P(D)是一個常數,因此P(C|D)正比于P(C)P(D|C):

由此得到樸素貝葉斯分類公式:

又根據D=(w1,w2,…,wn),并且屬性之間是獨立的,由此推導出:

其中P(wj|Ci)是指特征詞wj出現在Ci設備中的概率,可以從訓練數據中通過計算得出,采用使用wj在Ci中的取值除以類別Ci中所有詞的權重之和。得到式(12),weight(wj,Ci)是詞wj在屬于類別Ci的文本中的權重之和。

如果訓練集中詞wj在類別Ci中不存在,則P(wj|Ci)=0,這時另一類將會占據主導位置。特別的,如果在所有類別中都為0,則沒有辦法再進行分類。為此,使用拉普拉斯轉換對計算公式進行調整。

為了評價分類模型的效果,需要制定評價分類模型性能的一些量化指標,網絡設備識別結果的好壞的關鍵在于分類的精確度,精確度評價使用混淆矩陣[12]。
1)混淆矩陣
混淆矩陣是一種具有特定布局的表格,它用來可視化分類模型的性能。假設TP表示驗證集中實際標注和分類模型預測都是類別C的樣本數量;TN表示驗證集中實際標注和分類模型預測都不是類別C的樣本數量;FN表示驗證集中實際標注是C,而分類模型預測值不是C的樣本數量;FP表示驗證集中實際標注不是C而分類模型預測為C的樣本數量。
好的分類模型應當有較大的TP和TN值,較小的FP和FN值。表3為混淆矩陣的示例。

表3 混淆矩陣結構
2)精確度
分類模型對類別Ci的精確度計算公式為

對于多分類,分類算法對所有樣本類別的精確度計算公式為

其中n為設備類型數量,wi表示各個設備類型的特征數據占全部特征數據的比例。
3.2.1 分類模型模型測試
針對于三種分類算法訓練得到的分類模型,對分類模型在同一訓練數據集和驗證數據集上的分類結果分別進行統計,各分類模型的精確度如圖1。

圖1 不同分類模型精確度數據圖
由圖1可見,決策樹訓練出的分類模型在訓練數據集合驗證數據集中都有著相對較高的精確度。與之相比,邏輯回歸算法得到的分類模型則有著較低的精確度,樸素貝葉斯分類模型雖然在訓練數據集上有著很好的模擬結果,但在驗證數據集上的精確度相對偏低。實驗證明決策樹分類模型具有較高的精確度。
3.2.2 分類模型準確性測試
分類模型的準確性是最關鍵的指標。為了驗證基于決策樹算法的網絡設備分類模型性能,將訓練特征數據的10%預留出來作為驗證數據集,用它來評估決策樹的分類效果。在測試中,分別使用5000條、10000條、20000條設備數據訓練決策樹模型,并在訓練數據集中預留出10%的數據對決策樹模型進行評估。表4是不同樣本量下分類模型在訓練數據中的精確度統計數據。

表4 分類模型精確度數據(訓練數據部分)

表5 分類模型精確度數據(驗證數據部分)
當數據樣本分別是5000、10000、20000的時候,分類模型在驗證數據集中的精確度在整體上是逐步提高的,這說明隨著樣本數據量的增加,分類模型的精確度也變高,當數據量為20000時,分類模型達到了一個較高的精度(98.5%)。值得注意的是,在VoIP Adapter和VoIP server兩種設備中存在著較大分類誤差,這是因為VoIP數據在整體樣本中所占的比例較少導致的(實驗采集的VoIP設備數據占比較少,導致VoIP設備的特征詞的特征值偏低于其他特征詞)。
表5是分類模型在驗證數據集上的測試結果。可以看出,隨著訓練數據集的規模的增長,分類模型的精確度在驗證數據集上的分類誤差也變得越來越小,當數據樣本量為20000時,分類模型在驗證集上的總體精確度達到98.9%,并在各類設備的中的分類精確度也達到了較高水平。
當前計算機網絡技術飛速發展,大數據技術也日趨成熟,從海量的網絡中獲取數據并用數據挖掘技術進行統計分析的應用案例層出不窮,大數據技術已成為分析網絡數據的一種常規手段。為了解決網絡設備類型識別不準確的問題,基于CHAID決策樹算法,得到一個基本可用的網絡設備分類模型。