DNS是網絡連接配接中的重要一環,它與路由系統共同組成網際網路上的尋址系統,如果DNS遭遇故障,“導航系統”失效,網絡連接配接就會出現無法觸達或到達錯誤位址的情況。由于的DNS重要作用及天生脆弱性,導緻DNS自誕生之日起,就成為網絡攻擊的重點目标,其中DNS劫持是最常見危害最大的攻擊方式。接下來,本文針對DNS劫持原理和應對方式做下簡單介紹。
什麼是DNS劫持?
DNS劫持就是通過各種技術手段取得域名的解析控制權,進而修改域名的解析記錄,将域名指向的伺服器IP修改為受控制的IP位址,進而将使用者引導至虛假網站,實作竊取使用者資訊,破壞正常服務的目的。
DNS劫持的危害
DNS劫持的危害是雙向多面的。對于使用者而言,它通過将使用者引導至與原網站十分相似的網站,并誘導使用者輸入賬号、密碼、身份證等敏感資訊,進而造成個人資訊洩露、财産損失等風險。對于企業機構而言,它會讓企業機構失去對域名的控制權,導緻站點不能通路,正常流量流失,業務無法正常運作,進而對企業形象和經濟利益造成影響。
DNS劫持示意圖
DNS劫持案例
(1)2009年巴西最大銀行Bandesco巴西銀行遭遇DNS劫持,1%的使用者被釣魚。受影響的使用者被重定向到另一個虛假銀行網站,該網站試圖竊取使用者密碼并安裝惡意軟體。
(2)2010年1月12日,發生著名的“百度域名被劫持”事件,很多網民發現百度首頁無法登入的異常情況。而根據百度域名的whois查詢結果發現,該網站域名被劫持到雅虎下面的兩個域名伺服器,另有部分網民發現網站頁面被篡改成黑色背景和伊朗國旗,對百度的安全形象和業務運作造成非常惡劣的影響。
(3)2012年,日本三井住友銀行、三菱東京日聯銀行和日本郵儲銀行提供的網上銀行服務都被釣魚網站劫持,出現試圖擷取使用者資訊的虛假頁面,當使用者登入官網網站後,會彈出要求使用者輸入賬号密碼的頁面,頁面上還顯示銀行的标志,如果不仔細分辨,很難厘清真假。
(4)2013年5月,發生史上最大規模的DNS釣魚攻擊事件,造成800使用者被感染。
(5)2014年1月21日,全國出現大範圍DNS故障,中國頂級域名根伺服器發生故障,造成大部分網站受影響。
從上面這些案例中可以看出DNS劫持是一種範圍波及大、影響深遠的網絡攻擊手段,不但對使用者的資訊财産安全造成嚴重的威脅,也會對企業的品牌形象、線上流量以及業務開展産生巨大損失,是以了解DNS劫持原理并針對性地做好應對政策至關重要。
DNS劫持原理
介紹DNS劫持原理,需要首先了解典型的DNS解析流程。當用戶端發起域名請求時,本地遞歸伺服器(大多數情況下為營運商DNS)或公共DNS會通過向根域名伺服器、頂級域名伺服器到權威域名伺服器一級一級查詢,并将最終查詢結果傳回給用戶端。
除了這種典型解析流程外,由于DNS緩存的存在,當用戶端發起請求時,浏覽器緩存、hosts檔案、本地遞歸伺服器DNS緩存會先将本地儲存的解析記錄直接告知用戶端,進而省去全球遞歸查詢的步驟。
從上面DNS解析流程中可以看出,一次完整的DNS查詢具備以下兩個特點:
鍊路長,查詢過程包含多次、多級網絡通信;
參與角色多,查詢過程涉及用戶端(浏覽器緩存、hosts檔案)、遞歸解析伺服器、權威解析伺服器等角色。
在一次完整DNS查詢鍊路的各個環節,都可以通過技術手段将域名解析記錄進行篡改,将域名指向劫持到錯誤的IP位址上。下面會逐一介紹各類型的DNS劫持。
DNS解析流程圖
DNS劫持類型
1.本地DNS劫持
本地DNS劫持是指發生在用戶端側的各類DNS劫持,包括:
(1)通過木馬或者惡意程式入侵用戶端,篡改DNS緩存、hosts檔案、DNS伺服器位址等DNS相關配置;
(2)利用路由器漏洞入侵路由器,并針對路由器中的DNS緩存進行篡改。
2.DNS解析路徑劫持
DNS解析路徑劫持是指發生在用戶端和DNS伺服器網絡通信間的DNS劫持方式。通過對DNS劫持封包在查詢階段的路徑進行劃分,又可将DNS劫持分為四類:
(1)DNS請求轉發
通過中間盒子、軟體等技術手段将使用者發出的DNS請求重定向到由攻擊者控制的流氓DNS伺服器,進而将其重定向到惡意站點。
(2)DNS請求複制
将DNS查詢複制到網絡裝置,并在使用者發起請求時先于正常應答傳回DNS劫持的結果,這種方式表現為一個DNS查詢抓包傳回兩個不同的應答。
(3)DNS請求代答
通過利用網絡裝置或軟體代替DNS伺服器對DNS查詢進行應答。
(4)DNS緩存感染
DNS緩存感染是指攻擊者在遞歸解析伺服器投入錯誤的緩存資訊,當通路者發起解析請求時,遞歸伺服器就會從DNS緩存中将錯誤的解析記錄傳回,進而将使用者引導至錯誤的網站。
DNS緩存污染原理圖
3.篡改DNS權威記錄
篡改DNS權威記錄是指攻擊者非法入侵DNS權威記錄管理平台賬号,控制DNS解析設定權限,直接修改DNS解析記錄的行為。通過這種方式可以将權威伺服器下特定域名的解析指向惡意伺服器以實作DNS劫持的目的。
DNS劫持應對方案
(1)安裝防毒軟體,可以有效防禦木馬病毒和惡意軟體,并定期修改路由器管理賬号密碼和更新固件;
(2)企業端可以設定更小的TTL值,實作DNS緩存的短時間更新,使用者端可以定期重新整理DNS緩存,進而讓使用者發起請求時盡可能去請求權威伺服器,降低DNS緩存被污染的可能;
(3)加強域名賬戶的安全等級,使用強度較高的密碼,并定期更換密碼;
(4)定期檢視域名賬戶資訊、域名whois資訊以及域名解析生效狀态,發現異常及時聯系域名服務商;
(5)選擇安全技術實力過硬的域名注冊商,并且給自己的域名權威資料上鎖,防止域名權威資料被篡改。
(6)在用戶端和遞歸DNS伺服器通信的最後階段中使用DNS加密技術,如DNS-over-TLS,DNS-over-HTTPS等。