基於工控場景的DNS隧道檢測方案

星河Salaxy發表於2022-05-12

一. 檢測資料概述

 

資料收集方式

 

本方案資料主要透過以下方式收集:

1)工控場景內所部署的探針生成流量日誌,並透過專案資料接入模組存入Elasticsearch資料庫;

 

2)攻擊者主機與被攻擊者主機上抓取的流量包,並經pyshark、dpki等python庫解析生成結構化資料;

 

 

資料集分類

 

本方案資料主要分為以下三類:

 

1)開源多級域名網址白名單;

 

2)不同DNS隧道工具攻擊時段抓包;

 

3)Alexa top 10k websites list;

 

 

 

二. 檢測方案概述

 

2.1 設計思路

 

完整的工控網路攻擊事件主要分為四個環節:

外鏈->攻擊滲透->實時攻擊->回傳資料

DNS隱蔽隧道攻擊檢測主要針對回傳資料環節—外鏈傳輸資料部分。

正常的DNS的query_name的域名地址常為有價值或者容易理解的資訊,如標準單詞或者單詞變體。

通常為了使用方便,正常域名地址的設計的長度較短,而DNS隱蔽隧道中為了將資訊傳遞出去,往往會構造較長的域名請求傳送出去,且通常會對欄位進行加密,從而使得文字編碼與正常文字編碼差異明顯。

因此利用自然語言處理(NLP)的思想,構建不同的特徵序列,母音檢測、HMM衡量字母鏈與單詞相似度等特徵檢測。對不同的域名利用多維度特徵值測試來衡量其與英語單詞的相似度,同時討論正常域名與DNS隧道域名在資訊熵、長度等分佈的不同,構建模型,對其進行分類識別。

 

2.2 檢測步驟

 

第一步:資料預處理

 

對不同資料來源的資料集進行提取融合與處理,主要包括:

  • 對使用不同dns隧道構造資料抓取的pcap檔案,利用pyshark提取五元+query_name,並對其打標為負樣本

  • 讀入alexa top100k域名對其打標為正樣本

  • 讀入開源資料集,提取域名,並將攻擊樣本、alexa樣本融合,按正負樣本比例分層抽樣

  • 資料打散,提取tld列表

  • 對正樣本提取3-grm頻數字典

 

第二步:特徵分析

 

分別對元件和tld部分進行特徵分析:

 

  • 元件特徵分析:主要提取如下特徵:亂碼檢測判斷主domain 、subdomain、不同層級主子domain連續數字、連續字母佔比、 sharon entroy值、字元 Hidden markov-chain 機率等。

  • tld部分特徵分析:以白名單方式,考察其與常用tld是否匹配。

 

第三步:模型訓練與測試

 

  • 資料分層:0.76訓練集,0.04驗證集,0.2測試集

  • 資料歸一化方法:標準化

  • 模型:神經網路二分類模型

 

2.3 檢測結果

 

迭代次數:100

 

檢測效果:準確率:99.37%;F1:98.66%

 

*分類報告*:

 

Precision recall f1-scoreLabel 00.990.960.97Label 10.991.000.99avg / total 0.990.990.99

 

*損失曲線*:

 

 

基於工控場景的DNS隧道檢測方案


編輯切換為居中

 

新增圖片註釋,不超過 140 字(可選)

 

 

 

 

基於工控場景的DNS隧道檢測方案


編輯切換為居中

 

新增圖片註釋,不超過 140 字(可選)

 

 

 

*測試整合ROC曲線*:

 

 

基於工控場景的DNS隧道檢測方案


編輯切換為居中

 

新增圖片註釋,不超過 140 字(可選)

 

 


相關文章