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