您所在的位置: 首頁 >
新聞資訊 >
技術前沿 >
利用DoH技術加密傳輸的DNS隧道流量檢測分析
概述
DNS over HTTPS(DoH)由RFC8484定義,其目標之一是增加用戶的隱私,通過 HTTPS 解析 DNS 查詢。目前國外廠商如Adguard、Cloudflare、Google、Quad9等對公提供DoH服務,國內也有廠商陸續提供DoH服務。此外,也可以通過自建DoH服務器的方式進行DoH傳輸。以騰訊云DoH服務器(https://doh.pub/dns-query)為例,運用瀏覽器訪問百度,同時進行抓包分析,結果如下:
? 解密前,只能看到與DoH服務器間的TLS Application Data消息,數據被加密。
? 解密分析:利用瀏覽器同步生成(Pre)-Master-Secret 日志對流量進行解密,第785個數據包的內容如下:
可以清晰看到DNS協議流量被封裝進HTTP協議,并進一步經過TLS協議加密,形成了HTTPS流量。
DoH 的優點是顯而易見的,該技術提高了DNS服務安全性并保護了用戶隱私。但DoH也是一把雙刃劍,傳統的惡意DNS隱蔽隧道,同樣可以通過利用DoH服務進行HTTPS協議加密封裝,進一步增強自己的隱蔽性。我們經過試驗,知名DNS隧道工具、熱門黑客平臺如Iodine、DNS2TCP、 DNScat2、Cobalt Strike等,都可以通過DoH服務將DNS隧道流量轉換為HTTPS協議。這類利用DoH技術加密傳輸的惡意DNS隧道流量,給檢測造成了新的挑戰。
惡意DoH流量檢測
與一般TLS加密流量檢測相比,利用DoH技術加密傳輸的惡意DNS隧道流量(以下簡稱惡意DoH流量)檢測的難度更高。惡意DoH流量完全可以利用正常DoH服務器進行中轉,那么單純從DoH服務的TLS協商過程中暴露的明文信息(如TLS握手信息、證書信息、背景DNS流量特征等)判定會造成較大誤報,必須從更深層次尋求另外的維度進行判斷。本次針對DoH惡意流量檢測的研究,將重點放在與完成握手協商后的加密數據會話過程。研究過程包括數據搜集、特征工程、模型訓練、實際測試幾個環節。
1 數據搜集
數據搜集分為公開數據搜集和自建環境搜集。因DoH協議比較新,所以公開數據集不是特別豐富。Canadian Institute for Cybersecurity (CIC)在2020年公開了一個DoH數據集DoHBrw-2020。我們對該流量集進行了處理,可以得到正常(以下簡稱白)DoH流量+正常HTTPS流量共514459次會話,惡意(以下簡稱黑)DoH流量共144167次會話。
DoHBrw-2020數據集主要針對國外廠商提供的DoH服務,另外數據集偏小。為了彌補數據集不足,我們搭建模擬環境針對國內主要DoH服務進行了白/黑DoH流量搜集,通過自建DoH服務器,同樣進行了白/黑DoH流量的搜集。白流量主要通過腳本調用熱門瀏覽器,利用DoH服務對常用網站進行訪問進行捕獲搜集。黑流量主要通過搭建Iodine、DNS2TCP、 DNScat2、Cobalt Strike等實驗環境,利用國內DoH服務器、自建DoH服務器等進行流量搜集(所有數據搜集均在嚴格可控范圍內進行,未對實驗環境之外設施造成影響)。
2 特征工程
特征工程是建立惡意DoH流量檢測模型的重要步驟,直接決定了模型檢出效果的好壞。如前所述,針對惡意DoH流量,無法單純從服務端證書、背景DNS、SNI信息等方面進行檢測,因此本次特征工程的重點放在加密數據會話過程,即TLS協議的Application Data消息交互階段?;陂L期從事加密流量檢測的經驗和對DNS隧道行為的深刻理解,我們設計了超過100項,大于1000維特征值,涵蓋加密消息個數、長度、到達時間等重要加密會話行為信息。我們在黑白DoH流量集上對這些特征進行了分析。因特征眾多,在這里簡要列舉幾項。
? C_Total_Count/S_Total_Count:Client/Server端Application Data消息總個數(線性歸一,歸一化區間0-512):
通過數據統計可見,大約60%的白流量,Client端Application Data消息的總個數在0-0.01之間(約1-5個Application Data消息),而在這個區間的黑DoH流量僅占不到30%。大約45%的黑DoH流量個數在0.01-0.02之間(約6-10個Application Data消息)。在0.1-1區間(約大于50個Application Data消息)中包含了將近20%的惡意DoH流量,而本區間中的白流量僅占2.2%。Server端Application Data消息總個數分布與Client端相比有相似之處,但也有所不同,在此不再贅述。
? C_Len_Max/S_Len_Max:Client/Server端Application Data消息長度最大值(線性歸一,歸一化區間0- 16384):
通過數據統計,90%的黑DoH流量,Client端Application Data最大長度傾向小于約160字節,回傳過程中,Server端Application Data消息的最大長度基本都達到了16384字節。盡管如此,也不能使用Server端回傳大包這個單一因素進行判別,因為46%的白流量也會使用較長的Application Data消息進行傳輸。
? S_Intervel_Trans[100]_4:Server端Application Data消息到達時間間隔轉移矩陣第五維:
我們在0-300秒時間內根據數據分布,劃分為10個區間。將每兩個Application Data消息到達時間間隔根據區間落點的轉換,形成Application Data消息到達時間轉移矩陣。轉移矩陣為10*10,共100維。從流量集數據分析,在矩陣的第五維上,黑白流量獲得了比較好的分辨度。
篩選較好特征后,我們隨機選取了黑白流量各5000次會話,進行了PCA降維可視化分析。PCA算法降至3維:
PCA算法降至2維:
由于降維過程中帶來的信息損失,3維和2維散點圖出現了少量合理的重疊。由特征工程以及可視化分析可知,我們選取的特征,可較好的分辨黑白流量集,為下一步訓練模型提供了良好基礎。
3 模型訓練和測試
選取Decision Tree、Logistic Regression、Random Forest、Linear Regression、Adaboost和SVM等算法進行模型訓練和測試對比,相應結果如下:
從測試結果進行分析,綜合考慮精確率、準確率和模型泛化能力,結合工程化實現等因素,選取隨機森林算法作為產品使用的算法。
產品檢出
觀成瞰云-加密威脅智能檢測系統目前已集成惡意DoH流量檢測能力。產品檢出截圖如下所示:
從魚骨圖可以看出,雖然惡意DoH會話的SNI為知名白域名,但是上文所述的單流行為檢測模型給出了較高的判斷,另外惡意DoH會話的握手協商特征也與熱門瀏覽器的TLS握手協商存在差異,系統最終綜合決策評分為0.82,威脅標簽為DNSTunnelOverHTTPS。
來源:數世咨詢