天美传奇在线高清免费观看-天美麻花星空高清mv-天美麻花星空免费观看电视1-天美麻花星空免费观看电视乡村版

系列研究成果:基于激進緩存的否定緩存效率技術研究

2025年12月15日15:44
字體:[ ]

一、研究背景

本研究針對當前DNS系統中不存在域名應答多以及否定緩存效率低的問題,開展協議層面的技術改進研究。DNS系統性風險在于大量請求在同一時間空間匯聚,若此類請求成本較低則容易被利用發起攻擊。本研究通過發現造成此類低成本請求的原因、改進DNS協議,達到降低DNS系統性風險發生概率的目的。

具體而言,低成本請求是指對DNS發起一個不存在域名的查詢請求,該請求會導致一個不存在應答(NXDOMAIN)。相比于龐大的分布式DNS來說,少量NXDOMAIN應答本身并無明顯危害。然而,如果大量不存在域名查詢請求同時被發起,則表明一種利用NXDOMAIN的分布式攻擊正在發生。攻擊者通過發送大量對不存在域名的查詢來耗盡DNS服務器資源,導致合法用戶無法訪問互聯網服務。對關鍵DNS節點的攻擊甚至可以引發“蝴蝶效應”,造成更大規模的解析故障。

在權威服務器層面,ICANN公布的數據顯示NXDOMAIN應答在根服務器上的占比浮動在34%~78%。荷蘭國家頂級域名(“.nl”)公布的數據顯示,NXDOMAIN響應占比約為8%~15%。當以唯一名稱進行統計時,“.nl”區的不存在域名查詢量可達1億次/日,遠高于存在域名的查詢量600萬次/日。在遞歸服務器層面,Cloudflare(1.1.1.1)公共遞歸服務報告的NXDOMAIN占比約為5%~12%。奇安信遞歸報告了約10%~15%的NXDOMAIN流量占比。在中國互聯網絡信心中心運營的1.2.4.8遞歸服務商上,我們觀測到不存在域名查詢占比約為8%,日均不存在域名查詢數量均在億級。

二、重點問題

NXDOMAIN流量可能造成系統性風險的根本原因在于遞歸服務器無法對不存在域名進行窮舉。由于不存在域名查詢請求可以被輕易生成且不斷變換,因此技術上遞歸解析器現有的緩存策略無法有效應對這類域名,造成此類流量直接擊穿遞歸解析器緩存,外發至權威服務器,并造成兩方面負面影響:其一,遞歸解析器需要時間成本和網絡成本向權威解析服務器發起查詢并等待響應;其二,權威解析服務器需要時間成本和計算成本區應答每次查詢。

圖1

圖1展示了一種NXDOMAIN攻擊的典型場景,攻擊者可控制海量終端設備向受害者權威發起持續性不存在域名查詢。在Akamai公布的1份日志數據中顯示,當服務器遭受NXDOMAIN攻擊時,NXDOMAIN流量平均是正常流量的2~3倍。

抑制NXDOMAIN流量主要存在兩方面難點:一是常規流量層面。由于終端軟件的錯誤配置、域名過期等原因,部分設備可能會頻繁地查詢不存在域名,該方面已有相關研究成果。二是攻擊流量層面。目前流量監測防護都是事后介入,方法多為黑白名單,抑制NXDOMAIN攻擊效果顯著但會造成IP“誤殺”。由于DNS是一個開放的問答系統,而攻擊流量與合法流量共存,因此限制封禁請求段不是解決問題的最優手段。目前,已知的協議級NXDOMAIN否定緩存效率提升方法主要是RFC 8198(《Aggressive Use of DNSSEC-Validated Cache》)中提出的激進緩存方案(注RFC 8020 《NXDOMAIN:There Really Is Nothing Underneath》也具有重要意義但無法根本解決否定緩存效率問題)。本研基于已有的激進緩存方案,提出進一步改進。改進方案能夠在部分應用場景下更好地抑制NXDOMAIN流量,提升否定緩存效率。

三、激進緩存原理

激進緩存(Aggressive Caching,也可譯為積極緩存,本文使用激進緩存)方法是由RFC 8198提出,RFC 8198可直譯為:積極使用經過DNSSEC驗證的緩存。該規范的核心目的在于提升DNS查詢效率并減輕權威服務器的負載。它提出了一種基于DNSSEC驗證緩存的積極查詢響應機制,允許遞歸解析器直接利用本地緩存過、經過安全驗證的NSEC或NSEC3記錄,對查詢請求生成否定應答,而無需再次向權威服務器發起請求。

圖2

圖2展示了一個DNS權威區為每一個主機記錄生成的NSEC記錄,這些NSEC記錄首尾相連,形成一個環得以覆蓋整個DNS區。具備激進緩存的遞歸服務器通過緩存上述記錄中的最后一條便可知tomato.example.cn不存在于該區。若此4條記錄全被緩存,則該區的所有不存在請求均可被遞歸服務器使用激進緩存技術進行合成。

具體而言,由于NSEC或NSEC3記錄這些否定應答記錄包含了所請求域名前后的兩個距離最近的存在域名,因此可以用來證明兩個存在域名之間的域名都不存在。這解決了無法對不存在域名進行窮舉這個關鍵問題。部署了激進緩存的遞歸解析器能夠利用已驗證的否定應答記錄,直接合成NXDOMAIN或NODATA等否定響應,顯著減少了發往權威服務器的查詢數量。

(注:RFC 8198于2017年成為正式標準,2018年發布的BIND 9.12版本首次實現了激進緩存技術并被作為了默認開啟的配置項。最新的探測研究表明互聯網上過半數量的遞歸解析起具備激進緩存能力。)

四、激進緩存的局限性

技術上來看,NSEC記錄名稱連續,是激進緩存的最佳搭檔。然而正因其名稱連續,NSEC記錄產生了隱私等問題,導致其部署率在注重隱私的區并不高。NSEC3記錄為了提升隱私能力,將記錄中的名稱進行哈希處理。哈希后的名稱離散度高,導致激進緩存的命中幾率大幅降低。此外NSEC3的opt-out功能將原本連續的NSEC3環拆分,也導致了激進緩存完全不可用。目前域名量較大的“.com”“.net”區均采用NSEC3并開啟了opt-out功能。關于NSEC和NSEC3在激進緩存效率差異上已有公開數據研究。黑色謊言(Black Lies)和白色謊言(White Lies)是基于NSEC記錄對隱私進行提升的兩種較為相似的技術,這兩種技術均改變了原本NSEC記錄中的下一個域名名稱(Next Owner Name),因此大幅縮小了這個不存在區間,同時也導致激進緩存完全不可用。目前Cloudflare的公共遞歸服務正在使用該“謊言”技術。以上,激進緩存技術的實際應用受限于多種內外部因素,具有很大局限性。

五、我們的改進思路

圖3

圖3展示了本研究的改進思路,我們的思路和上述提到的“謊言”思路恰好相反,我們進一步增加否定緩存的區間,使不存在域名請求有更大概率落在否定緩存區間。(目前我國遞歸解析器普遍沒有開啟DNSSEC校驗,因此普遍處于“無激進緩存的方案”狀態)

本研究提出了一種經過重新設計的改進版NSEC,該改進版本的核心點在于能夠在單次請求中攜帶更多的權威區信息至遞歸。如下圖左側所示,傳統的NSEC記錄中,包含了所有者名稱(Owner Name)和下一個所有者名稱(Next Owner Name),這意味著具備激進緩存能力的遞歸能夠合成所有者名稱和下一個所有者之間的名稱,因為這兩個名字之間沒有其他子域。在改進版NSEC中,仍然包含了兩個所有者名稱,區別在于改進版的NSEC中這兩個名稱之間跨越了多個存在的域名名稱,這就相當于一次請求返回多個傳統NSEC,但這樣做會將DNS響應的網絡開銷升高。因此,在改進版NSEC中,我們使用了一種概率性數據結構將兩個所有者名稱之間的多個名稱進行存儲,然后作為NSEC記錄的數據段進行傳輸。

圖4

圖4簡要展示了改進版的NSEC的結構簡圖,核心改進在于使用一個NSEC記錄攜帶更多信息。

該改進具有以下特性:

隱私保護:概率性數據結構提供了單向哈希和有損壓縮機制,可防止區域內容直接暴露。相比NSEC3而言,概率性數據結構使得枚舉操作依賴于在線查詢,攻擊成本升高。

確定性:若查詢名稱不存在于概率性數據結構中,則必定不在區域中。這是概率性數據結構自身特性所決定的,這個特性配合DNSSEC校驗可以用于驗證所請求域名的不存在性。

低開銷:概率性數據結構的成員查詢操作僅涉及少量哈希運算,計算復雜度是O(1)。相比于在線簽名技術,該改進不會為遞歸造成顯著的性能開銷。同時,在遞歸的運算開銷要比向上游權威服務器查詢更快。

六、改進方案效果驗證

在驗證階段,本項目分別在方案提出前期進行了理論仿真驗證,隨后對方案進行了細致設計和實現,最后使用真實區數據進行了模擬。整個驗證階段主要關注三個指標:解析器與權威服務器間的網絡流量;解析器緩存命中率;資源利用率。

首先本研究對改進版方案進行了仿真模擬(見圖5)。模擬結果顯示擴大否定區間能夠幫助遞歸解析器快速構建NSEC環,即在遞歸解析器可以快速學習到權威區的所有存在域名信息。

圖5

該測試中,模擬權威區具有10000個子域名,模擬向遞歸連續查詢5000個不存在的子域名。該仿真模擬了遞歸外發次數占查詢次數的比例,每個統計點選取最近的50次結果作為統計輸入。

模擬仿真的有效性促使我們基于BIND 9.18.27進一步驗證了改進方案,結果顯示改進版的NSEC能夠大幅、快速降低遞歸和權威之間的NXDOMAIN流量(見圖6)。

圖6

測試區包含10萬個機器生成的域名,NSEC的TTL被設置為60秒。該測試針對此區向遞歸持續發送不存在子域名查詢,模擬5分鐘的NXDOMAIN攻擊。該測試記錄了遞歸和權威之間的流量比例。

此外,為了能夠更加真實反映出實際注冊域名名稱對實驗的干擾,本研究在實驗中加載“.net”區的真實區文件數據(約1200萬域名),分別使用NSEC、NSEC3、改進版NSEC進行DNSSEC簽名(見圖7)。測得改進版的NSEC能夠在緩存數量較低時實現遠高于NSEC和NSEC3的否定緩存命中率,該實驗結果對于改進版NSEC的有效性具有重要意義。

圖7

該測試在權威加載“.net”區數據,在遞歸發起隨機域名查詢。該測試記錄了遞歸服務器的否定緩存數量,并觀測了不同數量下的否定緩存命中率(即激進緩存的合成率)。

最后,本研究對改進方案的開銷進行了驗證,改進方案由于減少了NSEC記錄的生成,因此能夠大幅減少大區DNSSEC簽名后的文件大小,這對大區的運維至關重要。改進方案小幅度增加了遞歸處理單次請求的時間,響應的可能降低遞歸服務的QPS能力,但是這相對于NXDOMAIN攻擊帶來的負面影響是可以忽略的。后續,遞歸也可以有策略地開啟和關閉改進方案相關功能,以尋求安全和性能間的平衡。

表1

表1展示了改進方案的部分性能測試數據,數據具體含義和測試背景不在本文中具體解釋。

七、總結

本研究提出了一種創新的否定緩存機制,通過改進的NSEC記錄提升否定緩存命中率。該方案顯著增強了激進緩存策略的有效性,并針對類NXDOMAIN攻擊提供了更強有力的防御。本研究的核心創新在于利用概率型數據結構擴展NSEC記錄中所有者名稱之間的間隔,從而實現更高效的否定響應合成。本研究所提的解決方案只需對區域內更少的否認記錄進行簽名,既保護了隱私又減少了區域文件大小。實驗結果表明,與傳統NSEC相比,改進的NSEC記錄能有效減少遞歸解析器對NXDOMAIN查詢的外發流量。

作者簡介:

左拔山,中國互聯網絡信息中心技術發展所。

如果您感興趣這項研究工作,請與我們聯系。

zuobashan@cnnic.cn


分享: 【返回頂部】 【打印本頁】