作者:三牛@墨云科技VLab Team
原文鏈接:https://mp.weixin.qq.com/s/A6lFJMapxfPZJF6TCKLcKQ

無論從網絡安全的攻擊或是防護視角,信息的采集和甄別都至關重要,其中主機的系統類型是關鍵出發點。在以往經驗中,根據操作系統類型往往能夠大致判斷其存在的風險點及風險類型,因此,識別主機操作系統類型對系統網絡安全防護具有極其重要的意義。

操作系統識別方法

識別方法概述

目前最廣泛的操作系統識別方法是基于規則匹配,例如操作系統識別工具Nmap、P0f、Xprobe2等。Nmap對操作系統的識別主要依靠其維護的操作系統指紋庫nmap-os-db,Xprobe2等其他工具同樣基于自身構建的指紋庫進行操作系統類型的識別。

基于規則的匹配方法主要是通過獲取網絡中傳輸和接收的數據包信息來與已創建的規則進行特征匹配,具有識別速度快的優勢。但是,由于網絡安全設備(防火墻、IDS等)和防護策略等原因,部分場景下收集到的數據包中沒有足夠的操作系統指紋信息,操作系統類型識別準確率較低,甚至無法識別。指紋數據庫冗余度高,對于某一測試的操作系統指紋可能出現兩個或者多個匹配項,從而無法確定該指紋屬于哪一類操作系統;對于未出現在指紋數據庫中的操作系統類型則無法進行匹配識別。

基于深度學習的識別方法

為了克服現有“基于規則匹配方法”的弊端,提升主機操作系統識別的準確率,我們嘗試了一種基于深度學習的主機操作系統識別方法。通過主動向操作系統發送探測包,分析從目標主機返回的數據包信息,并提取其響應特征,建模學習得到識別模型,進一步利用模型識別操作系統類型。

圖片

特征提取

通過主動向目標主機發送多個“精心構造”的數據包,包括TCP/IP數據包,ICMP數據包,UDP數據包等,執行五種不同的測試,目標主機對每個數據包做出響應。五種測試包括:序列生成,ICMP回顯,TCP顯式擁塞通知,TCP測試和UDP測試。每種測試會得到不同數量的響應行數據,共計13個響應行。其中,序列生成測試通過發送TCP數據包生成4個響應行;ICMP回顯測試通過發送ICMP請求報文到目標主機,生成1個響應行,TCP顯式擁塞通知測試發送一個TCP SYN數據包,生成一個響應行;TCP測試會發送6個具有特定設置的TCP數據包生成6個響應行;UDP測試發送特殊構造的UDP數據包到已知關閉的端口,根據返回的響應信息,生成一個響應行。分析每個響應行的信息并提取其特征,生成該主機操作系統的形如[13,36]的二維指紋特征向量。

建模

基于深度學習的操作系統本質為將二維特征向量經過非線性變換映射到操作系統類型空間中。其網絡結構如下:

圖片

圖 1 操作系統識別模型結構

我們采用Bi-LSTM+Attention的網絡結構建模,利用Bi-LSTM層捕捉每個響應行中各個特征之間的雙向關聯關系

其中,為正向輸出為逆向輸出,表示元素相加。

Attention層對響應行中的特征進行權重的分配,賦予對結果識別結果有較大影響的特征更大的權重:

其中,為輸入向量,是通過學習得到的參數向量的轉置。為加權之后的輸入向量,為用于操作系統識別的特征向量表示。

圖片

圖 2 Bi-LSTM+Attention模型結構

實驗結果

從網絡上隨機收集操作系統數據作為測試數據,基于該測試數據,我們的模型評估指標Acc為0.95。

同時,我們增加了對比實驗,在相同的測試數據上,對比卷積神經網絡(CNN)、循環神經網絡(RNN)、循環卷積神經網絡(RCNN)、卷積神經網絡-注意力機制(AttentionConvNet)的檢測結果,對比結果如下:

圖片

操作系統識別實驗結果

總結

網絡空間發展日新月異,復雜繁多的網絡安全問題也層出不窮。日益增長的網絡安全需求促使著相關研究人員將機器學習、深度學習算法應用于更多更廣的網絡安全領域。近年來,基于AI的網絡安全研究成果不斷出現在各類文獻和報道中,很多研究成果成功落地并取得了良好效果。

目前,利用人工智能(AI)技術解決網絡安全問題已成為必然的發展趨勢,基于AI的網絡安全技術是一項創新且富有挑戰性的工作,我們也將與更多先行者同行,不斷創造突破性技術,專注人工智能在網絡攻防安全領域的應用研究,讓網絡攻防更智能。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1957/