DNS是網(wǎng)絡(luò)連接中的重要一環(huán),它與路由系統(tǒng)共同組成互聯(lián)網(wǎng)上的尋址系統(tǒng),如果DNS遭遇故障,“導(dǎo)航系統(tǒng)”失效,網(wǎng)絡(luò)連接就會(huì)出現(xiàn)無(wú)法觸達(dá)或到達(dá)錯(cuò)誤地址的情況。由于的DNS重要作用及天生脆弱性,導(dǎo)致DNS自誕生之日起,就成為網(wǎng)絡(luò)攻擊的重點(diǎn)目標(biāo),其中DNS劫持是最常見危害最大的攻擊方式。接下來,本文針對(duì)DNS劫持原理和應(yīng)對(duì)方式做下簡(jiǎn)單介紹。
什么是DNS劫持?
DNS劫持就是通過各種技術(shù)手段取得域名的解析控制權(quán),進(jìn)而修改域名的解析記錄,將域名指向的服務(wù)器IP修改為受控制的IP地址,從而將用戶引導(dǎo)至虛假網(wǎng)站,實(shí)現(xiàn)竊取用戶信息,破壞正常服務(wù)的目的。
DNS劫持的危害
DNS劫持的危害是雙向多面的。對(duì)于用戶而言,它通過將用戶引導(dǎo)至與原網(wǎng)站十分相似的網(wǎng)站,并誘導(dǎo)用戶輸入賬號(hào)、密碼、身份證等敏感信息,從而造成個(gè)人信息泄露、財(cái)產(chǎn)損失等風(fēng)險(xiǎn)。對(duì)于企業(yè)機(jī)構(gòu)而言,它會(huì)讓企業(yè)機(jī)構(gòu)失去對(duì)域名的控制權(quán),導(dǎo)致站點(diǎn)不能訪問,正常流量流失,業(yè)務(wù)無(wú)法正常運(yùn)行,進(jìn)而對(duì)企業(yè)形象和經(jīng)濟(jì)利益造成影響。
DNS劫持示意圖
DNS劫持案例
(1)2009年巴西最大銀行Bandesco巴西銀行遭遇DNS劫持,1%的用戶被釣魚。受影響的用戶被重定向到另一個(gè)虛假銀行網(wǎng)站,該網(wǎng)站試圖竊取用戶密碼并安裝惡意軟件。
(2)2010年1月12日,發(fā)生著名的“百度域名被劫持”事件,很多網(wǎng)民發(fā)現(xiàn)百度首頁(yè)無(wú)法登錄的異常情況。而根據(jù)百度域名的whois查詢結(jié)果發(fā)現(xiàn),該網(wǎng)站域名被劫持到雅虎下面的兩個(gè)域名服務(wù)器,另有部分網(wǎng)民發(fā)現(xiàn)網(wǎng)站頁(yè)面被篡改成黑色背景和伊朗國(guó)旗,對(duì)百度的安全形象和業(yè)務(wù)運(yùn)行造成非常惡劣的影響。
(3)2012年,日本三井住友銀行、三菱東京日聯(lián)銀行和日本郵儲(chǔ)銀行提供的網(wǎng)上銀行服務(wù)都被釣魚網(wǎng)站劫持,出現(xiàn)試圖獲取用戶信息的虛假頁(yè)面,當(dāng)用戶登錄官網(wǎng)網(wǎng)站后,會(huì)彈出要求用戶輸入賬號(hào)密碼的頁(yè)面,頁(yè)面上還顯示銀行的標(biāo)志,如果不仔細(xì)分辨,很難分清真假。
(4)2013年5月,發(fā)生史上最大規(guī)模的DNS釣魚攻擊事件,造成800用戶被感染。
(5)2014年1月21日,全國(guó)出現(xiàn)大范圍DNS故障,中國(guó)頂級(jí)域名根服務(wù)器發(fā)生故障,造成大部分網(wǎng)站受影響。
從上面這些案例中可以看出DNS劫持是一種范圍波及大、影響深遠(yuǎn)的網(wǎng)絡(luò)攻擊手段,不但對(duì)用戶的信息財(cái)產(chǎn)安全造成嚴(yán)重的威脅,也會(huì)對(duì)企業(yè)的品牌形象、線上流量以及業(yè)務(wù)開展產(chǎn)生巨大損失,因此了解DNS劫持原理并針對(duì)性地做好應(yīng)對(duì)策略至關(guān)重要。
DNS劫持原理
介紹DNS劫持原理,需要首先了解典型的DNS解析流程。當(dāng)客戶端發(fā)起域名請(qǐng)求時(shí),本地遞歸服務(wù)器(大多數(shù)情況下為運(yùn)營(yíng)商DNS)或公共DNS會(huì)通過向根域名服務(wù)器、頂級(jí)域名服務(wù)器到權(quán)威域名服務(wù)器一級(jí)一級(jí)查詢,并將最終查詢結(jié)果返回給客戶端。
除了這種典型解析流程外,由于DNS緩存的存在,當(dāng)客戶端發(fā)起請(qǐng)求時(shí),瀏覽器緩存、hosts文件、本地遞歸服務(wù)器DNS緩存會(huì)先將本地儲(chǔ)存的解析記錄直接告知客戶端,從而省去全球遞歸查詢的步驟。
從上面DNS解析流程中可以看出,一次完整的DNS查詢具備以下兩個(gè)特點(diǎn):
鏈路長(zhǎng),查詢過程包含多次、多級(jí)網(wǎng)絡(luò)通信;
參與角色多,查詢過程涉及客戶端(瀏覽器緩存、hosts文件)、遞歸解析服務(wù)器、權(quán)威解析服務(wù)器等角色。
在一次完整DNS查詢鏈路的各個(gè)環(huán)節(jié),都可以通過技術(shù)手段將域名解析記錄進(jìn)行篡改,將域名指向劫持到錯(cuò)誤的IP地址上。下面會(huì)逐一介紹各類型的DNS劫持。
DNS解析流程圖
DNS劫持類型
1.本地DNS劫持
本地DNS劫持是指發(fā)生在客戶端側(cè)的各類DNS劫持,包括:
(1)通過木馬或者惡意程序入侵客戶端,篡改DNS緩存、hosts文件、DNS服務(wù)器地址等DNS相關(guān)配置;
(2)利用路由器漏洞入侵路由器,并針對(duì)路由器中的DNS緩存進(jìn)行篡改。
2.DNS解析路徑劫持
DNS解析路徑劫持是指發(fā)生在客戶端和DNS服務(wù)器網(wǎng)絡(luò)通信間的DNS劫持方式。通過對(duì)DNS劫持報(bào)文在查詢階段的路徑進(jìn)行劃分,又可將DNS劫持分為四類:
(1)DNS請(qǐng)求轉(zhuǎn)發(fā)
通過中間盒子、軟件等技術(shù)手段將用戶發(fā)出的DNS請(qǐng)求重定向到由攻擊者控制的流氓DNS服務(wù)器,從而將其重定向到惡意站點(diǎn)。
(2)DNS請(qǐng)求復(fù)制
將DNS查詢復(fù)制到網(wǎng)絡(luò)設(shè)備,并在用戶發(fā)起請(qǐng)求時(shí)先于正常應(yīng)答返回DNS劫持的結(jié)果,這種方式表現(xiàn)為一個(gè)DNS查詢抓包返回兩個(gè)不同的應(yīng)答。
(3)DNS請(qǐng)求代答
通過利用網(wǎng)絡(luò)設(shè)備或軟件代替DNS服務(wù)器對(duì)DNS查詢進(jìn)行應(yīng)答。
(4)DNS緩存感染
DNS緩存感染是指攻擊者在遞歸解析服務(wù)器投入錯(cuò)誤的緩存信息,當(dāng)訪問者發(fā)起解析請(qǐng)求時(shí),遞歸服務(wù)器就會(huì)從DNS緩存中將錯(cuò)誤的解析記錄返回,從而將用戶引導(dǎo)至錯(cuò)誤的網(wǎng)站。
DNS緩存污染原理圖
3.篡改DNS權(quán)威記錄
篡改DNS權(quán)威記錄是指攻擊者非法入侵DNS權(quán)威記錄管理平臺(tái)賬號(hào),控制DNS解析設(shè)置權(quán)限,直接修改DNS解析記錄的行為。通過這種方式可以將權(quán)威服務(wù)器下特定域名的解析指向惡意服務(wù)器以實(shí)現(xiàn)DNS劫持的目的。
DNS劫持應(yīng)對(duì)方案
(1)安裝殺毒軟件,可以有效防御木馬病毒和惡意軟件,并定期修改路由器管理賬號(hào)密碼和更新固件;
(2)企業(yè)端可以設(shè)置更小的TTL值,實(shí)現(xiàn)DNS緩存的短時(shí)間更新,用戶端可以定期刷新DNS緩存,從而讓用戶發(fā)起請(qǐng)求時(shí)盡可能去請(qǐng)求權(quán)威服務(wù)器,降低DNS緩存被污染的可能;
(3)加強(qiáng)域名賬戶的安全等級(jí),使用強(qiáng)度較高的密碼,并定期更換密碼;
(4)定期查看域名賬戶信息、域名whois信息以及域名解析生效狀態(tài),發(fā)現(xiàn)異常及時(shí)聯(lián)系域名服務(wù)商;
(5)選擇安全技術(shù)實(shí)力過硬的域名注冊(cè)商,并且給自己的域名權(quán)威數(shù)據(jù)上鎖,防止域名權(quán)威數(shù)據(jù)被篡改。
(6)在客戶端和遞歸DNS服務(wù)器通信的最后階段中使用DNS加密技術(shù),如DNS-over-TLS,DNS-over-HTTPS等。