【摘 要】 在機關、單位內(nèi)網(wǎng)中,域名系統(tǒng)的安全問題往往會被忽視,因此逐漸成為木桶效應的短板。本文介紹了域名系統(tǒng)的原理,比較了內(nèi)網(wǎng)域名系統(tǒng)和互聯(lián)網(wǎng)域名系統(tǒng)的差異,分析了內(nèi)網(wǎng)域名系統(tǒng)面臨的主要安全保密風險,并提出改進建議。
【關鍵詞】 內(nèi)網(wǎng) 域名系統(tǒng) 安全保密
1 引言
隨著信息化的不斷深入,機關、單位內(nèi)網(wǎng)業(yè)務不斷拓展,應用不斷增多,為提高用戶使用體驗,越來越多的單位在內(nèi)網(wǎng)中部署域名系統(tǒng)。
域名系統(tǒng)(Domain Name System,DNS)主要負責提供域名地址空間映射服務,將易于人類記憶的域名翻譯為易于機器識別的IP地址。域名系統(tǒng)就像電話號碼本,號碼本上的聯(lián)系人是域名,而聯(lián)系方式就是IP地址。所有的上網(wǎng)行為,除非直接通過IP地址訪問,瀏覽器第一步做的都是通過查詢域名服務器將域名轉換為IP地址,IP地址錯了,后面的報文生成、TCP連接、網(wǎng)絡包路由等都沒有意義。在互聯(lián)網(wǎng)中,域名系統(tǒng)是最重要的基礎設施之一,確保其安全可靠是保障網(wǎng)絡正常運行的關鍵點;但在內(nèi)網(wǎng)中,由于更多的關注應用系統(tǒng)、安全保密設備、網(wǎng)絡設備、終端設備等的安全,域名系統(tǒng)的安全性往往會被忽視,因此漸漸成為木桶效應的那塊短板。
本文比較了內(nèi)網(wǎng)域名系統(tǒng)和互聯(lián)網(wǎng)域名系統(tǒng)的不同,分析了內(nèi)網(wǎng)域名系統(tǒng)面臨的主要安全保密風險,并提出了一些相應的安全保密措施。
2 域名系統(tǒng)
域名系統(tǒng)能實現(xiàn)域名與IP地址的快速映射與轉換,為了保證網(wǎng)絡中域名的唯一性,域名系統(tǒng)采用特殊的樹狀結構以實現(xiàn)域名層次的劃分,每一個樹形節(jié)點都有不同的子節(jié)點,每一個域名都是從當前節(jié)點讀到根節(jié)點路徑上所有節(jié)點標記的點分順序連接的字符串,如圖1對應的域名為“www.xxxxxx.org.cn.”。其中,最后的“.”(通常省略)為根域名,“.cn”為頂級域名,“.org”為二級域名,“.xxxxxx”為三級域名,“www”為主機名。上級域名服務器中維護著其名下所有次級域名的信息,如根域名服務器中維護所有頂級域名的域名和地址信息。
將域名解析為IP地址(域名解析)的過程是從根節(jié)點開始的,比如要查詢“www.xxxxxx.org.cn”這個域名的IP地址,首先向根域名服務器查詢“.cn”的地址,然后再向“.cn”頂級域名服務器查詢“.org”的地址,之后繼續(xù)向“.org”二級域名服務器查詢“.xxxxxx”的地址,最后向“.xxxxxx”三級域名服務器查詢“www”主機的IP地址,這個查詢的過程,稱為迭代查詢,而這些存儲著原始域名記錄信息的域名服務器又稱為權威域名服務器。
實際解析過程中,客戶端并不直接向權威域名服務器查詢域名,而是向部署在本地的域名服務器提交遞歸查詢請求,由本地域名服務器代為完成上述查詢過程,域名解析過程如圖2所示。本地域名服務器又稱遞歸解析服務器,一般由網(wǎng)絡運營商部署、管理,其IP地址配置在客戶端的DNS地址中。同時,為提高查詢效率,遞歸解析服務器均開啟緩存功能,將最近的查詢結果存儲在本地高速緩存中,收到查詢請求后,先檢查數(shù)據(jù)是否在高速緩存中,若是,則直接返回查詢結果;若否,再繼續(xù)原查詢過程。存儲在高速緩存中的數(shù)據(jù),為了確保不是過時的數(shù)據(jù),其生命周期受TTL(Time To Live)值控制,超過TTL的緩存數(shù)據(jù),會被清理掉。
3 內(nèi)網(wǎng)域名系統(tǒng)與互聯(lián)網(wǎng)域名系統(tǒng)的區(qū)別
內(nèi)網(wǎng)域名系統(tǒng)與互聯(lián)網(wǎng)域名系統(tǒng)的主要區(qū)別包括部署規(guī)模不同、解析過程不同、可控程度不同、日志量不同等。
3.1 部署規(guī)模不同
互聯(lián)網(wǎng)域名系統(tǒng)經(jīng)過幾十年的發(fā)展,已經(jīng)從一個簡單的查詢系統(tǒng),逐步發(fā)展成為一個復雜的生態(tài)系統(tǒng)。目前,全球已有超過1000萬臺DNS服務器,從本質上看,互聯(lián)網(wǎng)域名系統(tǒng)是規(guī)模龐大的全球分布式數(shù)據(jù)庫系統(tǒng)。
相對而言,內(nèi)網(wǎng)域名系統(tǒng)則比較簡單,無須解析海量的互聯(lián)網(wǎng)域名,只需解析有限的內(nèi)部域名。若是局域網(wǎng),一般僅需部署主、輔2臺DNS服務器。2臺DNS服務器均是內(nèi)網(wǎng)的權威域名服務器,以絕對的權威回答內(nèi)網(wǎng)管轄域的任何查詢。主DNS服務器的域信息存儲在管理員構造的本地磁盤文件(區(qū)域文件)中,該文件包含著該DNS服務器具有管理權的域結構的最精確信息。輔DNS服務器用于為主服務器分擔負載,其從主DNS服務器下載和更新區(qū)域文件。因為不需要本地DNS服務器作為遞歸解析服務器再向其他DNS服務器查詢,因此內(nèi)網(wǎng)域名系統(tǒng)一般把本地DNS服務器就設置為根服務器。內(nèi)網(wǎng)若是規(guī)模特別大的廣域網(wǎng),也可以分級部署,在中心節(jié)點部署根域名服務器。
3.2 解析過程不同
互聯(lián)網(wǎng)域名系統(tǒng)中,由廣泛部署于互聯(lián)網(wǎng)中的遞歸解析服務器為客戶端提供查詢服務,遞歸解析服務器從根域名開始,逐級查詢,直至查詢到目標域名。
內(nèi)網(wǎng)域名系統(tǒng)的解析過程不需要那么復雜,客戶端直接向主/輔DNS服務器發(fā)送查詢請求,無論域名是否存在,都由主/輔DNS服務器直接返回權威解析數(shù)據(jù),不需要再向其他DNS服務器進行查詢,如圖3所示(內(nèi)網(wǎng)規(guī)模特別大,域名系統(tǒng)分級部署的除外)。同樣,主/輔DNS服務器一般也會開啟DNS緩存功能,域名已被緩存的,直接將緩存中的數(shù)據(jù)返回查詢客戶端。
3.3 可控程度不同
互聯(lián)網(wǎng)域名系統(tǒng)采用中心化管理模式,一直由美國主導。其中最高一級的根域名服務器分布嚴重失衡,共有13個根域名服務器:1個主根域名服務器、9個輔根域名服務器放置在美國,2個輔根域名服務器分別放置在歐洲的英國和瑞典,1個輔根域名服務器放置在亞洲的日本。輔根域名服務器中的根區(qū)域文件需與主根域名服務器保持一致。第二級的頂級域名,包括“國家和地區(qū)頂級域名”“通用頂級域名”“新增通用頂級域名”等,除“國家和地區(qū)頂級域名”由各國網(wǎng)絡信息中心負責管理外,其余的均由位于美國的國際互聯(lián)網(wǎng)絡名稱及編號分配公司(Internet Corporation for Assigned Names and Numbers,ICANN)管理。雖然自2016年以來,美國政府形式上完全移交了管理權,不再承擔相關審核和監(jiān)督職責,但美國在專家、技術和產(chǎn)業(yè)上依然具有優(yōu)勢,ICANN等也將繼續(xù)接受美國法律管轄,這種一家獨大的中心化管理模式給整個互聯(lián)網(wǎng)域名系統(tǒng)的穩(wěn)定運行帶來潛在隱患。
在互聯(lián)網(wǎng)域名體系中,雖然“.cn”“.中國”等國家頂級域名由中國互聯(lián)網(wǎng)信息中心(CNNIC)管理,但頂級域名在很大程度上還要受制于根域名,可控性仍比較差。與互聯(lián)網(wǎng)域名系統(tǒng)的管理體制不同,內(nèi)網(wǎng)域名系統(tǒng)的建設、管理均掌握在內(nèi)網(wǎng)建設使用單位手中,無論是單級管理,還是兩級甚至多級管理,各級域名服務器均在內(nèi)網(wǎng)可控單位的管理之下,可控程度很高。
3.4 日志量不同
互聯(lián)網(wǎng)域名系統(tǒng)在域名解析過程中會產(chǎn)生海量日志,因為用戶主動發(fā)起的DNS查詢,會連帶產(chǎn)生大量的被動DNS查詢。如當使用瀏覽器進入某個域名的網(wǎng)頁時,后臺可能會產(chǎn)生大量附加處理操作,會請求不同域名下的圖片、視頻、腳本等資源,而每次資源請求都會產(chǎn)生一次DNS查詢。大量的查詢導致產(chǎn)生海量日志。在某運營商的網(wǎng)絡中,每天可以產(chǎn)生幾十TB級的DNS日志。
內(nèi)網(wǎng)域名系統(tǒng)的日志量要小得多,一方面內(nèi)網(wǎng)的客戶端數(shù)量規(guī)模有限,查詢的主體要少得多;另一方面,內(nèi)網(wǎng)中域名的數(shù)量有限,一般僅部署幾個至幾十個用于內(nèi)部辦公、業(yè)務工作的Web應用、網(wǎng)站等。同時,頁面內(nèi)容也遠沒有互聯(lián)網(wǎng)豐富,被動查詢較少。一般內(nèi)網(wǎng)域名系統(tǒng)每天產(chǎn)生的日志量在MB級。
4 內(nèi)網(wǎng)域名系統(tǒng)的安全保密風險
內(nèi)網(wǎng)域名系統(tǒng)的不同特點決定了其安全問題也與互聯(lián)網(wǎng)域名系統(tǒng)不同,下面分析了一些常見安全問題在內(nèi)網(wǎng)域名系統(tǒng)中的安全保密風險情況。
4.1 緩存投毒
緩存投毒主要針對的是遞歸解析服務器,攻擊者是利用遞歸解析服務器無法驗證DNS數(shù)據(jù)真實性的特點,將虛假的DNS查詢回復寫入遞歸解析服務器的高速緩存中,同時為延長緩存中毒的時間,攻擊者還會將回復TTL設得足夠大,這樣客戶端向遞歸解析服務器查詢有關域名信息時,會命中高速緩存的中毒信息,導致客戶端收到錯誤的IP地址,訪問到攻擊者控制的服務器,造成用戶數(shù)據(jù)泄露。在內(nèi)網(wǎng)域名系統(tǒng)中,此種攻擊方式只適用于多級部署且DNS服務器開啟遞歸解析功能的情況,對于僅主、輔兩臺DNS服務器的單級部署方式,因為主、輔DNS服務器不需要向其他DNS服務器查詢,因此一般不會緩存中毒。
4.2 DNS ID欺騙
域名解析采用基于UDP協(xié)議的數(shù)據(jù)報文進行通信,且請求報文和響應報文具有相同的數(shù)據(jù)結構,如圖4所示。其中報文頭部的ID是DNS查詢應答的唯一標識,通常是隨機生成的。當客戶端發(fā)起DNS查詢時,攻擊者可以在DNS服務器應答前偽造同樣ID的響應報文對客戶端進行欺騙攻擊,其危害和緩存投毒一樣,都會使客戶端訪問到攻擊者控制的服務器,但其攻擊不如緩存中毒攻擊持久。
DNS ID攻擊需要獲取客戶端DNS請求報文頭部的ID,采用窮舉法顯然效率不高,通過監(jiān)聽客戶端網(wǎng)絡數(shù)據(jù)包或者采取ARP欺騙的方式,更容易實現(xiàn),特別是攻擊者和客戶端在同一個內(nèi)網(wǎng)、同一個網(wǎng)段的情況下。
4.3 普通DDoS攻擊
分布式拒絕攻擊(DDoS)是網(wǎng)絡中最常見的攻擊方式,不僅域名系統(tǒng),網(wǎng)絡中所有服務器都深受其害。其具體攻擊方式有多種,針對域名系統(tǒng)的DDoS攻擊最基本方法就是利用大量正常的DNS查詢請求來占用DNS服務器的網(wǎng)絡帶寬、CPU、內(nèi)存等資源,使得其他合法的DNS查詢得不到響應。普通DDoS攻擊常常需要控制較多的傀儡主機完成飽和攻擊,如果查詢數(shù)量不足,不能覆蓋住DNS服務器的資源,就無法攻擊成功。由于內(nèi)網(wǎng)中本身客戶端數(shù)量就有限,再加上防護措施比較多,較難控制大量主機進行DDoS攻擊。另外,DDoS攻擊只會導致DNS服務器性能下降,延遲提高,但查詢結果還是正確的,因此在內(nèi)網(wǎng)中的安全保密風險較低。
4.4 DNS 放大攻擊
通常的DNS響應報文只有幾十個字節(jié),但特定查詢的DNS響應報文卻可以很長,例如ANY類型、TXT類型或者EDNS0的DNS響應報文可以上千甚至幾千個字節(jié),響應報文的長度是通常請求報文的幾十倍。DNS放大攻擊就是利用了這一特性,向DNS服務器發(fā)送大量此類查詢請求,DNS服務器將回復幾十倍的應答流量,資源被更快地消耗。這種攻擊可以看作是普通DDoS攻擊的加強版,攻擊者可以用更少的查詢量、更快地攻癱DNS服務器。同普通DDoS攻擊一樣,由于內(nèi)網(wǎng)中可控制的主機數(shù)量有限,要成功完成此類攻擊,有一定的難度。
4.5 DNS反射攻擊和反射放大攻擊
DNS反射攻擊是利用DNS服務器的響應報文攻擊客戶端或遞歸解析服務器的攻擊方式。攻擊者利用傀儡主機向多個DNS服務器(反射體)發(fā)起大量的DNS查詢請求,查詢請求的源IP地址偽造為受害客戶端或遞歸解析服務器的IP地址,這樣DNS服務器返回的響應結果流量就會全部打到受害客戶端或遞歸解析服務器上,迅速消耗其資源,導致無法提供服務。
DNS反射攻擊通常結合DNS放大攻擊一起使用,即反射放大攻擊,發(fā)起大量偽造源IP地址的、會放大響應報文的DNS查詢請求,以增強攻擊效果,這種方式往往比普通DDoS攻擊更有效。
由于反射攻擊和反射放大攻擊都需要足夠多的反射體(即DNS服務器)來響應查詢請求,而內(nèi)網(wǎng)中DNS服務器的規(guī)模數(shù)量要比互聯(lián)網(wǎng)中小得多,因此這兩類攻擊的在內(nèi)網(wǎng)中發(fā)生的概率較低。
4.6 DNS日志泄露
DNS服務器日志中含有客戶端請求域名解析的記錄,一般包括日期、時間戳、請求源IP地址和端口號、請求域名、解析記錄等信息。內(nèi)網(wǎng)域名系統(tǒng)中,請求源IP地址就是客戶端真實的IP地址,這樣,DNS日志記錄就提供了一個完整的存活主機列表。在內(nèi)網(wǎng)中,各種掃描工具會被嚴格限制,如果能夠訪問到DNS服務器日志,就代替掃描工具拿到了存活主機列表,完成了網(wǎng)絡滲透攻擊的第一步。
互聯(lián)網(wǎng)域名系統(tǒng)中,在使用IPv4的情況下,一是因為地址空間有限,客戶端訪問互聯(lián)網(wǎng)時,會進行網(wǎng)絡地址轉換,因此遞歸解析服務器日志中的請求源IP地址并不是客戶端的真實地址(IPv6環(huán)境下,IP地址不再是緊缺資源,客戶端訪問互聯(lián)網(wǎng)不進行地址轉換,遞歸解析服務器上存儲的就是真實的客戶端IP地址);二是域名解析是由遞歸解析服務器代替客戶端向權威域名服務器查詢的,因此權威域名服務器上的DNS日志,請求源IP地址為遞歸解析服務器的IP地址,不是客戶端IP地址;三是互聯(lián)網(wǎng)域名系統(tǒng)的DNS服務器中有海量的DNS日志,日志分析利用的難度比較大,因此安全保密隱患相對較低。
DNS協(xié)議設計之初沒有過多考慮安全問題,為提高效率,幾乎所有DNS流量都是基于明文傳輸?shù)模瑳]有采取保護措施。因此通過鏈路監(jiān)聽的方式,也可以分析出請求源IP地址、查詢的域名等信息,甚至可以通過監(jiān)聽DNS響應報文,獲取服務器的IP地址列表。
4.7 主/輔部署不當
內(nèi)網(wǎng)域名系統(tǒng)通常以主/輔方式部署DNS服務器,當其中某一臺服務器不能工作時,另一臺服務器仍然可以提供解析服務。然而實際部署中,主、輔DNS服務器常常位于同一網(wǎng)段、同一防火墻后、同一物理地點,不能有效防止區(qū)域性突發(fā)事件造成的服務中斷(例如網(wǎng)絡中斷、電力中斷、防火墻擁塞等),具有潛在的可用性問題。在互聯(lián)網(wǎng)域名系統(tǒng)中,域名系統(tǒng)是關鍵基礎設施,無論是遞歸解析服務器,還是權威域名服務器,都部署了大量的輔服務器或鏡像服務器,此方面的安全隱患較低。
4.8 匿名區(qū)域文件傳輸
區(qū)域傳輸用于主、輔DNS服務器之間的數(shù)據(jù)更新和備份。例如,當主DNS服務器上的權威記錄發(fā)生變化時,輔DNS服務器通過區(qū)域傳輸?shù)姆绞綇闹鱀NS服務器下載區(qū)域文件的完整副本,以保持數(shù)據(jù)一致。在具體實現(xiàn)上,區(qū)域傳輸采用客戶端-服務器的形式進行,客戶端發(fā)送一個axfr(異步完整區(qū)域傳輸)類型的DNS查詢請求,通過TCP連接從服務器端獲取完整的區(qū)域文件。
區(qū)域文件為域名服務器的敏感數(shù)據(jù),應該嚴格保護,避免泄露,因此,異步完整區(qū)域傳輸應當僅允許在受信任的DNS服務器之間進行。但內(nèi)網(wǎng)中,由于和外部網(wǎng)絡隔離,此方面防范經(jīng)常疏忽,DNS服務器常配置不當,任意匿名主機都可以利用異步完整區(qū)域傳輸獲取完整區(qū)域文件,暴露網(wǎng)絡中的信息,加快滲透攻擊進程。
4.9 匿名區(qū)域文件更新
主DNS服務器的區(qū)域文件更新可通過運維主機編輯服務器上的區(qū)域文件完成,運維主機通過update請求完成對區(qū)域文件的修改。這個操作也應當僅允許在受信任的主機和DNS服務器之間進行,但內(nèi)網(wǎng)中,有時為了便利操作,DNS服務器會開放配置,任意匿名主機都可以更新,這樣攻擊者可以通過構造惡意的update請求對區(qū)域文件進行任意修改,將域名解析地址更改為攻擊者控制的IP地址,以便開展下一步竊密行為。
綜上,本文列舉了一些常見安全問題在內(nèi)網(wǎng)域名系統(tǒng)中的安全保密風險情況,另外,還有一些老生常談的DNS服務器操作系統(tǒng)配置不完善、DNS軟件(Linux系統(tǒng)的BIND、Windows系統(tǒng)的DNS服務系統(tǒng)組件)配置不完善等風險,以及一些在內(nèi)網(wǎng)域名系統(tǒng)出現(xiàn)概率非常低的安全保密風險,如相似域名欺騙、偽造DNS服務器、無效域名查詢攻擊等,就不再一一贅述。表1比較了內(nèi)網(wǎng)域名系統(tǒng)和互聯(lián)網(wǎng)域名系統(tǒng)一些安全保密風險發(fā)生的概率。
5 有關防護措施建議
為降低內(nèi)網(wǎng)域名系統(tǒng)的安全保密風險,可以采取如下幾種防護措施。
(1)合理的網(wǎng)絡結構設計,在DNS服務器前部署防火墻、IPS等防護設備,對網(wǎng)絡流量進行過濾、清洗;主DNS服務器和輔DNS服務器位于不同的網(wǎng)段,部署在不同防火墻后,條件允許的,放置在不同的樓宇;對網(wǎng)絡合理進行分段,在網(wǎng)絡中部署設備接入控制系統(tǒng)。
(2)部署DNS安全拓展協(xié)議(Domain Name System Security Extensions,DNSSEC),DNSSEC采用數(shù)字簽名的方式解決了域名解析記錄傳輸中的安全問題,可以有效防范緩存投毒和DNS ID欺騙等攻擊。
(3)加強防火墻的配置,僅開放必要服務和端口,如DNS服務、TCP和UDP的53號端口(未修改DNS服務端口號的情況下)。
(4)DNS服務器應配置高性能的硬件,確保不被DDoS攻擊輕易攻癱;操作系統(tǒng)僅開放必要服務和端口,啟用偽根目錄,并部署入侵檢測、防病毒軟件等防護系統(tǒng);嚴格限制對DNS日志、區(qū)域傳輸文件的訪問權限。
(5)完善DNS軟件的配置,包括及時更新版本、限制域名解析的源IP地址、隱藏DNS軟件版本等。
6 結語
內(nèi)網(wǎng)域名系統(tǒng)的安全保密風險問題常常被忽視,本文介紹了域名系統(tǒng)的原理,比較了內(nèi)網(wǎng)域名系統(tǒng)和互聯(lián)網(wǎng)域名系統(tǒng)的不同,分析了內(nèi)網(wǎng)域名系統(tǒng)面臨的主要安全保密風險,并給出了一些改進建議。
下一步,隨著內(nèi)網(wǎng)規(guī)模的不斷擴大,特別是國家電子政務內(nèi)網(wǎng)的建成、擴展,在電子政務內(nèi)網(wǎng)中構建國家級可信內(nèi)網(wǎng)域名體系的需求越來越迫切,內(nèi)網(wǎng)域名系統(tǒng)會成為內(nèi)網(wǎng)的核心基礎設施,其安全問題將會越來越被關注。
(原載于《保密科學技術》雜志2020年10月刊)