孟德超,鄒福泰
(上海交通大學,上海 200240)
隨著互聯網的快速發展,DNS服務已經成為最重要的服務。域名系統(Domain Name System,DNS)是互聯網上最關鍵的基礎設施,主要作用是將易于記憶的主機名稱映射為難以記憶的IP地址,從而保障其他網絡應用順利執行。DNS服務主要由3個部分組成,分別是域名空間(Domain Name Space)和資源記錄(Resource Record)、名字服務器(Name Server)、解析器(Resolver),如圖1所示。

圖1 域名系統解析過程
由于DNS存在安全性問題,所以安全技術人員利用加密技術將DNS查找與回應的數據包進行加密,從而保證數據包不被監聽和利用,由此產生了多種技術,包括 DNS-over-TLS(DoT)[1]、DNS-over-HTTPS(DoH)[2]、DNS-over-QUIC[3]和DNSCrypt[4]。雖然這些技術協議產生的時間并不長,但一些協議已經得到大型DNS服務供應商的大力支持。目前,Google和CloydFlare等公司已經發布了公開的DoH解析器,Firefox也支持DoH協議。本文利用Firefox瀏覽器收集相關網站的訪問記錄,篩選出DoH流量,利用深度學習算法對DoH流量進行分析,進而挖掘用戶的訪問記錄。
2018年IETF批準了DNS-over-HTTPS(DoH)作為標準跟蹤協議。DoH協議是將HTTPS和DNS解析器之間建立連接,通過HTTP發送DNS查詢并獲取DNS響應,每個DNS查詢響應對映射到HTTP交換,如圖2所示。DoH的實現建立在IP、TCP、TLS以及HTTP之上,每層包含一個或者多個相似的參數用于關聯同一個用戶身份,用于身份認證。DoH通過對DNS通信進行加密,并要求對服務器進行身份驗證,減輕了被動監聽和主動攻擊的威脅,保證了DNS信息的安全傳輸。

圖2 DNS-over-HTTP協議
目前,DoH和DoT已經被廣泛使用。Cloudflare和Quad9已經提供DoH和DoT解析器,谷歌(Google)也支持DoH,火狐(Firefox)也將提供DoH解析器。Cloudflare還分發了獨立的DoH客戶端,并且在2018年發布了一個隱藏的解析器,用以提供DoT服務。同時,其他DNS加密協議也得到了應用,如 DNS-over-DTLS[5]和 DNS-over-QUIC。
早在2014年,Shulman[6]等人提出單獨靠加密可能不足以保護用戶的隱私;2013年Herrmann[7]等人提出了利用DNS痕跡作為追蹤特征,在不考慮加密情況下實現攻擊;2019年Sandra Siby[8]等人將DoH流量包的大小與n-grams相結合作為特征進行研究,表明使用DoH協議后仍然能夠獲取用戶的訪問記錄。2019年,Jonas Bushart[9]等人利用香農熵進行研究,表明即使在填充的情況下,攻擊者仍然可以以高概率形式正確猜測用戶訪問痕跡。
以往的研究大多是先收集數據集,挑選出數據的某個或者某些特征作為樣本特征,利用機器學習或者深度學習進行訓練。本文將每次訪問獲得的數據包大小作為序列,利用長短期記憶網絡對數據集進行訓練。
本文的貢獻主要有以下幾點。
(1)利用加密流量數據包大小序列作為每個網址的特征集。
(2)利用深度學習算法進行訓練,獲得很高的準確率。就當前的調研情況,長短期記憶網絡還沒有運用到DoH研究中。
(3)本文與Sandra Siby文獻方法進行對比,效果要優于他們的方法。
本文利用開放性環境和封閉性環境進行實驗,充分驗證了該方法的有效性和實用性,實現了從觀察加密的DNS流量來推斷用戶的訪問痕跡。
本文假設對手可以訪問加密的DNS流量,該流量是當用戶使用HTTPS訪問網站時使用DoH協議生成的,然后利用兩種環境對DoH流量進行實驗。
2.1.1 封閉環境
這個環境中,攻擊者知道用戶訪問的網頁集。每個網站都可以進行訓練,并決定只需確定用戶訪問的已知網站中的哪一個。
封閉環境中利用300個網站進行測量,每個網站樣本數為300,從數據集中隨機選擇85%作為訓練集,剩下15%則作為測試集測量準確率。
2.1.2 開放環境
這個環境模擬攻擊者在真實環境中預測用戶的訪問域。攻擊者只知道客戶訪問網站的一個子集,這時攻擊者的任務更加復雜,因為在訓練階段無法包含所有相關的網站。攻擊者不僅必須找到最相似的DNS序列,還必須確定最近的序列是否真正合適。
開放環境中利用300個網站進行測量,其中100個網站作為攻擊者預先訓練的子集,在檢測到相似類的同時,利用閾值判斷測試數據是否真正屬于某個類,并舍棄低于閾值的數據。
長短期記憶網絡(Long Short-Term Memory,LSTM)是為了解決長期以來的問題而專門設計的,主要通過輸入門、遺忘門和輸出門實現對信息的保護和控制。
遺忘門:歷史狀態信息的遺忘程度。該門會讀取ht-1和xt,輸出一個在區間[0,1]中的數,公式如下:

輸入門:新狀態信息的更新程度,確定更新的信息。輸入ft和xt,公式如下:

輸出門:利用更新的細胞信息更新細胞狀態,公式如下:

長短期記憶網絡能夠有效解決長期依賴的問題,在文本分類、文本預測、感情分析等方面發揮著重要作用。本文將DoH數據包長度序列作為每個網址的特征,利用LSTM訓練樣本,找出長度序列的依賴關系,并根據訓練的分類器對未訓練的樣本進行分類,進而預測使用DoH協議的用戶的訪問痕跡。
預先準備在Alexa的網站列表中收集前500個網頁的追蹤信息,有87個網址的網頁狀態是無效的,98個網址的頁面狀態出現了波動,無法正常訪問。經過刪除和篩選,最終選擇其中300個網址進行數據集收集。2019年9月1日到2019年10月15日期間對數據進行收集,以循環的方式訪問每一個網頁,為每一個網頁獲取300個樣本。
為了收集DoH流量,使用DoH客戶端設置的Ubuntu16.04虛擬機,在虛擬機中將Firefox瀏覽器設置為DoH支持,使用selenium 3自動啟動Firefox,并從列表中訪問網頁并觸發DNS查找。對列表中的每個網頁重復此過程,每次的訪問都要重新啟動瀏覽器并清除緩存信息,確保緩存和配置文件不影響數據流量的收集。最后,運行tcpdump捕獲DoH客戶端和解析器之間的網絡流量,通過目標端口和IP地址過濾流量,以獲得最終的DoH流量。
經過一個月半的時間,收集了300個網址,每個網址300個樣本,共90 000個網頁樣本。將收集得到的網頁進行整理和分化,隨機分出開放環境下的數據集,100網頁作為被監視的數據集,整體300網頁作為測試集。
下面評估基于長度序列的長短期記憶網絡在封閉環境和開放環境的有效性。
封閉環境中,攻擊者知道用戶訪問的網頁集。本文使用20次循環訓練,訓練數據集中90 000個樣本,將其中15%的樣本作為測試集,85%的樣本作為訓練集,利用LSTM進行訓練,并計算交叉熵損失和準確率。表1顯示了實驗結果。

表1 分類方法的分類性能
分析數據集發現,域名數據集包含指向同一服務區域的URL,如www.taobao.com與www.tianmao.com都是指向相同的服務,共同使用IP地址222.22.29.103和222.22.29.102,而分類器經常錯誤分類這些情況。但是,對于攻擊者而言他們是等價的。針對這種情況,本文將域名進行合并,整理出合并數據集并進行訓練。如表1第二行顯示,考慮到等價的分類,檢測成功率提高7%~8%。
分析實驗結果得出,長短期記憶網絡可以高概率預測DNS-over-HTTPS類別,適用于序列的多分類問題,利用DNS-over-HTTPS連續數據包的大小作為序列,根據其規律進行學習,將訓練好的模型對剩余的15%數據進行測試,得出94.87%的準確率。
利用相同的數據集進行對比實驗,利用Sandra Siby提出的方法將數據包大小的unigram、Bi-gram和突發流量作為特征,將數據集劃分為15%的測試集和85%的訓練集,利用隨機森林算法進行訓練,得出如表2所示的結果。

表2 Sandra Siby的分類方法的分類性能
實驗結果分析可知,Sandra Siby的分類方法檢測出的精確率為89%,召回率為88%;將unigram、Bi-gram和突發流量作為特征,也可以高精度地對DoH流量進行分類,但是分類性能低于基于LSTM的分類性能。可以看出,利用長短期記憶網絡進行訓練得出的準確率相對較高。
隨后,在合并數據集下測試長短期記憶網絡的循環次數對實驗精度的影響,如圖3所示。

圖3 使用LSTM在封閉環境下的準確率與損失的曲線
可以看出,當進行到第5次循環時,檢測的準確率增幅明顯下降;進行到第9次循環時,準確率達到90%,此時test-loss和train-loss減小幅度小,說明訓練即將成功;第16次循環后,損失值處于0.2以下并保持不變,此時訓練準確率為0.943。由此可以看出,基于LSTM在用戶使用DoH協議的情況下對用戶的訪問痕跡進行預測,可以達到較高的準確率。
開放環境下,攻擊者在只有部分用戶訪問的網頁的情況下進行訓練分類器。設置兩個網頁數據集,一個是被監測的數據集,一個是沒有監測的數據集。攻擊者的目標是確定跟蹤的頁面流量是否屬于被監視的數據集中的頁面。
由于假設攻擊者可以訪問所有的網頁是不現實的,所以使用100網頁,每個網頁300樣本,共30 000個樣本作為被監視的數據集。另外,利用包含前者數據集在內的300個網頁,每個網頁300樣本,共90 000個樣本作為沒有監測的數據集,類別劃分為1/3在監視集中,2/3完全沒有在監視集中。
為了決定是否屬于被監視的網頁集,本文使用Stolerman[10]等人提出的方法,設置閾值取舍測試集中的流量序列。分類器在預測時只取概率大于閾值t的情況,舍棄概率小于t的序列,可以得出精確率pre與閾值t的關系曲線如圖4所示。
圖4中,將閾值設置為[0,0.99]區間,有0.05、0.1、0.2、0.3、…、0.9、0.95共11個測量點。分析實驗結果可以看出,精確率、召回率與閾值相關,閾值設置越大,精確率越高,召回率越小。閾值的大小影響預測的精度,所以當攻擊者進行流量分析時,可以根據實際情況適當設定閾值以達到最優分析。

圖4 在開放環境中設定閾值,其精確率與召回率的曲線
然后進行對比實驗,將閾值設置為0.8進行LSTM預測實驗和N-gram為特征的隨機森林實驗,測出準確率如表3所示。

表3 開放環境下,閾值設置為0.8,對比本文方法與Sandra Siby提出的方法在精確率上的表現
之后進行閾值為0.9、0.7的實驗,結果也同樣顯示出本文方法的精確率高于Sandra Siby所提的方法,可以看出LSTM方法在開放環境下也能夠精確地分類DoH流量,說明在實際環境中,攻擊者可以利用LSTM分析用戶在使用DoH情況下的訪問痕跡。
本文進行DNS-over-HTTPS協議的安全性分析。DoH協議利用加密算法將DNS消息進行加密處理,利用HTTPS進行傳輸,保證消息的安全,保護用戶的隱私。利用深度學習對DoH流量進行分析,根據流量數據包序列的規律性訓練出分類器,利用未參與訓練的數據集進行測試,得出高概率的預測。在實際環境中,攻擊者可以利用一部分域名的DoH數據包訪問情況預測用戶的訪問痕跡,分析用戶的訪問規律,進而完成攻擊者想要的攻擊行為。研究表明,DNS-over-HTTPS協議不足以保護用戶的隱私,用戶不能僅靠DNS-over-HTTPS協議達到安全的目的。這些結果有助于影響DNS隱私標準的演變,能夠為DNS供應商在使用下一版本時的安全性提供啟示。