一. 檢測資料概述
資料收集方式
本方案資料主要透過以下方式收集:
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部分進行特徵分析:
第三步:模型訓練與測試
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
*損失曲線*:
編輯切換為居中
新增圖片註釋,不超過 140 字(可選)
編輯切換為居中
新增圖片註釋,不超過 140 字(可選)
*測試整合ROC曲線*:
編輯切換為居中
新增圖片註釋,不超過 140 字(可選)