我們?nèi)粘I暇W(wǎng),需在瀏覽器中輸入相應(yīng)網(wǎng)站的域名,但事實(shí)上,我們真正訪問的是這個(gè)域名的IP地址,而將域名“翻譯”成IP地址的就是DNS系統(tǒng),是互聯(lián)網(wǎng)核心服務(wù)之一,其主要目的是使域名方便記憶。此外,現(xiàn)在很多網(wǎng)站為了提高用戶上網(wǎng)體驗(yàn),采取了區(qū)域群集式服務(wù),用戶只需記住域名,網(wǎng)站會(huì)自動(dòng)將最佳域名IP地址反饋給用戶。DNS系統(tǒng)分為服務(wù)器和客戶端兩部分,服務(wù)器內(nèi)存儲(chǔ)著域名和IP地址相互映射的分布式數(shù)據(jù)庫,其工作流程是當(dāng)客戶端發(fā)出域名解析請(qǐng)求后,先在本機(jī)hosts文件中查看是否有這個(gè)域名相對(duì)應(yīng)的IP地址,如果有則直接訪問,如果沒有就會(huì)提交給本地DNS服務(wù)器,本地DNS服務(wù)器查詢自己的數(shù)據(jù)庫,如果可以查詢到,則直接將IP地址直接反饋給DNS客戶端,如果查詢不到,則會(huì)向上一級(jí)DNS服務(wù)器進(jìn)行查詢,采取遞歸的方式進(jìn)行查詢,直到將查詢到的結(jié)果或查詢失敗的結(jié)果反饋給客戶端。
結(jié)構(gòu)缺陷:互聯(lián)網(wǎng)是分布式、區(qū)域自治的網(wǎng)狀結(jié)構(gòu),但DNS系統(tǒng)卻是一種由13個(gè)“根”組成的樹狀結(jié)構(gòu),這些“根”全部在國外,雖然我們國家有5個(gè)“根”的鏡像,也僅僅是為了提高國內(nèi)用戶的訪問速度,無管理權(quán)限,要訪問其他“根”服務(wù)器,則需較長時(shí)間,極易遭受DDoS攻擊,且無有效防范措施。只有去根化、提高DNS的自治能力才能適應(yīng)迅速發(fā)展的互聯(lián)網(wǎng),此外,DNS的授權(quán)服務(wù)器和緩存服務(wù)器都是集中配置,在遭受DDoS攻擊時(shí)會(huì)導(dǎo)致授權(quán)服務(wù)器和緩存服務(wù)器同時(shí)癱瘓。
技術(shù)缺陷:DNS協(xié)議基于UDP,使用53號(hào)端口,最大為512字節(jié),DNS數(shù)據(jù)包易被篡改。IP分片難以處理,在IPv6環(huán)境下解析延遲較大,易被緩沖區(qū)投毒,較難發(fā)現(xiàn)由gTLD和ccTLD導(dǎo)致的根服務(wù)器污染、UDP欺騙攻擊、DNSSec根密鑰管理和更新難等問題。域名解析采用遞歸解析方式,在遞歸解析時(shí),容易被中間人攻擊和DDoS攻擊,特別是域名數(shù)量巨大和網(wǎng)絡(luò)帶寬不足時(shí)。此外,DNS系統(tǒng)是對(duì)所有請(qǐng)求都需做出必要的響應(yīng),對(duì)DNS系統(tǒng)解析造成了很大壓力,據(jù)不完全統(tǒng)計(jì),“根”一級(jí)服務(wù)器上,有超過75%的域名請(qǐng)求是錯(cuò)誤和無效的請(qǐng)求。此外,DNS系統(tǒng)的軟件版本不一致,導(dǎo)致DNS系統(tǒng)漏洞很多。
管理缺陷:目前,關(guān)于域名的注冊(cè)存在很大的問題,沒有很強(qiáng)的管理約束機(jī)制,很多不合格的代理機(jī)構(gòu)、網(wǎng)絡(luò)結(jié)構(gòu)差異性、泛濫的各類解析軟件等都給DNS系統(tǒng)的管理帶來很大麻煩。DNS系統(tǒng)本身無法及時(shí)發(fā)現(xiàn)系統(tǒng)故障和安全事件的風(fēng)險(xiǎn),域名系統(tǒng)日志記錄內(nèi)容不完整、日志保存時(shí)間過短,安全事件發(fā)生后難以追查,針對(duì)DNS系統(tǒng)的應(yīng)急預(yù)案少等都給管理帶來很大難度。
DDoS攻擊有2種方式:一種主要針對(duì)DNS系統(tǒng)本身,通常利用跨平臺(tái)的Bind軟件或其他DNS軟件中的漏洞,導(dǎo)致DNS服務(wù)器崩潰或拒絕服務(wù);另一種是利用DNS服務(wù)器作為中間的“攻擊放大器”,讓被攻擊者無法正常使用DNS服務(wù)。
由于各DNS服務(wù)器有專人維護(hù),軟件漏洞彌補(bǔ)比較及時(shí),利用軟件漏洞實(shí)施DDoS攻擊的難度越來越大。目前,針對(duì)DNS系統(tǒng)比較常見的DDoS攻擊是將DNS服務(wù)器作為“攻擊放大器”,對(duì)訪問用戶進(jìn)行放大攻擊。
這主要是利用DNS系統(tǒng)的漏洞和DNS系統(tǒng)緩存機(jī)制,攻擊者將錯(cuò)誤的域名記錄放入DNS服務(wù)器緩存之中,從而改變其他用戶訪問域名的結(jié)果,從而將用戶對(duì)正常的域名訪問引導(dǎo)至掛馬網(wǎng)站上,這種方式也主要針對(duì)DNS系統(tǒng)漏洞彌補(bǔ)不及時(shí)和維護(hù)不經(jīng)常的業(yè)務(wù)提供商。
DNS劫持就是將用戶的正常域名解析請(qǐng)求劫持,攻擊者會(huì)監(jiān)聽用戶和DNS服務(wù)器之間的數(shù)據(jù),獲取DNS服務(wù)器反饋給用戶的DNS查詢ID和端口號(hào),攻擊者分析其請(qǐng)求的域名,在DNS服務(wù)器響應(yīng)之前,仿冒DNS服務(wù)器反饋給用戶篡改后的域名,反饋給用戶假的IP地址或者不給予響應(yīng)。其結(jié)果就是用戶無法訪問正確的域名或訪問的是假域名。其實(shí)質(zhì)就是劫持者先封鎖正常DNS服務(wù)器的IP地址或通過技術(shù)手段取得正常DNS服務(wù)器記錄解析控制權(quán)后,將錯(cuò)誤的IP地址替代用戶訪問域名的IP地址,讓用戶訪問錯(cuò)誤的IP地址,以達(dá)到竊取用戶信息資料或破壞用戶正常服務(wù)的目的。
攻擊者利用技術(shù)手段,攻擊ISP或用戶的路由器,將路由器內(nèi)的DNS服務(wù)器IP地址進(jìn)行修改,也就是將正常DNS服務(wù)器重定向到了惡意DNS服務(wù)器,那么所有用戶的上網(wǎng)行為就會(huì)被完全被控制。
ARP欺騙攻擊是局域網(wǎng)內(nèi)部攻擊,是內(nèi)部用戶攻擊內(nèi)部用戶,一般是主動(dòng)攻擊或中了ARP病毒,這種方式就是通過偽造IP地址和MAC地址映射關(guān)系來達(dá)到ARP欺騙,攻擊者向被攻擊者發(fā)送構(gòu)造好的ARP響應(yīng)數(shù)據(jù)包,ARP欺騙成功后,監(jiān)聽被攻擊者發(fā)出的DNS請(qǐng)求數(shù)據(jù)包,在取得隨機(jī)產(chǎn)生的ID和端口號(hào)后,向目標(biāo)反饋一個(gè)惡意DNS響應(yīng)包,這樣被攻擊者就會(huì)在自己的DNS緩存表中,形成錯(cuò)誤的映射關(guān)系,當(dāng)正確的DNS響應(yīng)包返回時(shí),則被丟棄。
這種方式,一般是用戶自己計(jì)算機(jī)感染木馬、DNS病毒或使用了流氓軟件,用戶的DNS服務(wù)器地址被修改,hosts文件被篡改,這樣用戶就會(huì)無法正常訪問掛馬網(wǎng)站,這也是最方便、最容易遭受攻擊的方式。
網(wǎng)絡(luò)上絕大多數(shù)的安全事故未能及時(shí)得到處理,都是管理人員麻痹大意造成的,規(guī)范的管理運(yùn)行機(jī)制是確保DNS系統(tǒng)安全的首要條件,缺少規(guī)范的管理運(yùn)行機(jī)制,即使擁有再好的技術(shù)水平也是不夠的,高素質(zhì)的運(yùn)維技術(shù)人員,符合業(yè)務(wù)需求的安全運(yùn)行和處理機(jī)制是確保DNS系統(tǒng)安全的基礎(chǔ)。這里不僅要有完善的風(fēng)險(xiǎn)評(píng)估機(jī)制、還要有DNS系統(tǒng)的應(yīng)急處置方案、及時(shí)升級(jí)服務(wù)器和各類漏洞補(bǔ)丁方案,同ISP和域名服務(wù)商協(xié)調(diào)流程等。
原有運(yùn)行架構(gòu)為群集服務(wù)模式,DNS系統(tǒng)本身沒有相應(yīng)的安全機(jī)制,運(yùn)行機(jī)制不夠靈活。國內(nèi)外有關(guān)DNS創(chuàng)新架構(gòu)的理論研究很多,目前有很多已經(jīng)投入實(shí)際應(yīng)用階段,這些架構(gòu)都采用了很多關(guān)鍵機(jī)制,從運(yùn)行機(jī)制上確保了DNS的解析安全,這些關(guān)鍵機(jī)制包括一致性檢查、一致性仲裁、負(fù)載均衡和通信協(xié)調(diào)節(jié)點(diǎn)選舉等。
一致性檢查是每個(gè)節(jié)點(diǎn)將自己收到的DNS數(shù)據(jù)發(fā)送給服務(wù)組其他節(jié)點(diǎn)進(jìn)行一致性比對(duì),只有完全一致時(shí),才有通信協(xié)調(diào)節(jié)點(diǎn)發(fā)出指令更改這些節(jié)點(diǎn)的DNS記錄。一致性仲裁是如果發(fā)現(xiàn)新的記錄不完全一致時(shí),按少數(shù)服從多數(shù)的策略決定是否接受記錄的變化。負(fù)載均衡是DNS服務(wù)組在收到DNS請(qǐng)求時(shí),由負(fù)載均衡設(shè)備依據(jù)處理壓力自主選擇由哪個(gè)節(jié)點(diǎn)提供服務(wù)。通信協(xié)調(diào)節(jié)點(diǎn)是指有權(quán)力修改各節(jié)點(diǎn)的DNS記錄的節(jié)點(diǎn),該節(jié)點(diǎn)按特殊算法在各節(jié)點(diǎn)中選舉產(chǎn)生,其主要作用一是修改各節(jié)點(diǎn)的DNS記錄,二是完成與向上一級(jí)DNS域的數(shù)據(jù)交互。
這種架構(gòu)具有良好的擴(kuò)展性、可快速部署,與DNS服務(wù)器之前的黑洞群集防護(hù)設(shè)備聯(lián)動(dòng),并且能有效預(yù)防DNS劫持、DNS緩存感染和針對(duì)DNS的DDoS攻擊等,此外,還能及時(shí)封禁非正常域名和修改策略。
傳統(tǒng)的DNS防護(hù)系統(tǒng)主要通過識(shí)別DNS攻擊的行為特征修改策略,從而保護(hù)DNS系統(tǒng),這種方式配置簡單,對(duì)新的DNS變種攻擊無法有效防御且誤報(bào)率較高,新的DNS防護(hù)系統(tǒng)特征庫一般由三部分組成:第一部分是傳統(tǒng)DNS攻擊行為特征庫,第二部分是由上級(jí)域名服務(wù)器、權(quán)威安全機(jī)構(gòu)或ISP實(shí)時(shí)提供的DNS攻擊行為特征庫,第三部分是由防護(hù)系統(tǒng)自主生成的DNS攻擊行為特征庫。新的防護(hù)系統(tǒng)在過濾掉第一、二種DNS攻擊行為后,對(duì)剩余的可能攻擊行為進(jìn)行仿真模擬運(yùn)行,如果有攻擊行為,則會(huì)生成相應(yīng)特征代碼并將之放入第三部分特征庫,這樣就可以及時(shí)有效防護(hù)DNS系統(tǒng)不受攻擊。
目前,針對(duì)DNS的DDoS攻擊特別是“DNS放大攻擊”急劇增長,這種攻擊類似泛洪攻擊,就是讓網(wǎng)絡(luò)中充斥大量的數(shù)據(jù)包特別是廣播包以阻塞網(wǎng)絡(luò),這種攻擊雖然不產(chǎn)生廣播包,但在響應(yīng)包大且多的情況下,針對(duì)被攻擊者的數(shù)據(jù)流量仍然特別巨大,瞬間流量可以達(dá)到每秒數(shù)GB甚至10GB,在這樣大的數(shù)據(jù)流下,被攻擊者根本無法訪問互聯(lián)網(wǎng),而DNS系統(tǒng)也承受極大壓力。很顯然,如果DNS系統(tǒng)帶寬速率過低,那么即使小規(guī)模的“DNS放大攻擊”,都會(huì)導(dǎo)致DNS系統(tǒng)癱瘓。當(dāng)DNS系統(tǒng)監(jiān)測(cè)到異常時(shí),可以跟ISP聯(lián)系,在入口過濾掉這種數(shù)據(jù)流。此外,帶寬速率高,給用戶的響應(yīng)時(shí)間就短,可以很好地壓縮攻擊者的處理時(shí)間,極大地提高攻擊難度。
目前,針對(duì)DNS系統(tǒng)有很多技術(shù),在提高安全效果方面比較明顯的有CDN技術(shù)、DNSSec技術(shù)和使用DNS轉(zhuǎn)發(fā)器等技術(shù),其中DNSSec是DNS安全擴(kuò)展,是由IETF提供的一系列DNS安全認(rèn)證的機(jī)制,它提供了一種來源鑒定和數(shù)據(jù)完整性的擴(kuò)展,但不去保障可用性、加密性和證實(shí)域名是否存在。其主要目的是通過對(duì)數(shù)據(jù)進(jìn)行數(shù)字“簽名”來抵御此類攻擊,來驗(yàn)證用戶所訪問的網(wǎng)站是否有效。就技術(shù)層次上講,DNSSec應(yīng)該是迄今最完善的域名設(shè)立和解析的辦法,對(duì)防范域名欺騙攻擊等安全事件是非常有效的。使用CDN技術(shù)和DNS轉(zhuǎn)發(fā)器,主要是減輕DNS系統(tǒng)處理的壓力,提高DNS服務(wù)器處理速度。
監(jiān)測(cè)主要有兩種:一種是對(duì)較小的DNS響應(yīng)數(shù)據(jù)包進(jìn)行監(jiān)測(cè),這樣可以有效預(yù)防ARP欺騙攻擊,這是因?yàn)樵贏RP欺騙攻擊中,用戶會(huì)接收到至少兩個(gè)DNS的響應(yīng)數(shù)據(jù)包,一個(gè)是正確數(shù)據(jù)包,另一個(gè)是攻擊數(shù)據(jù)包。ARP欺騙攻擊數(shù)據(jù)包相比正確數(shù)據(jù)包結(jié)構(gòu)比較簡單,只有應(yīng)答域,不包括授權(quán)域和附加域。因此,遵循相應(yīng)的原則和模型算法可以對(duì)正誤兩種響應(yīng)包進(jìn)行分辨,從而避免虛假數(shù)據(jù)包的攻擊。另一種是對(duì)DNS流量進(jìn)行實(shí)時(shí)監(jiān)測(cè),這可以有效預(yù)防DDoS攻擊,通常我們采取DNS流量閾值的方法來判斷是否發(fā)生攻擊。
對(duì)一個(gè)企業(yè)或單位來說,除非必要,否則不必自己搭建和管理DNS服務(wù)器,因?yàn)闊o論從技術(shù)條件、管理方面都會(huì)存在一定的安全風(fēng)險(xiǎn),找個(gè)專業(yè)的ISP或其他專業(yè)的托管機(jī)構(gòu)來負(fù)責(zé)企業(yè)DNS是更理想的方案,雖然無法從根本上杜絕黑客DNS攻擊威脅,起碼可以保證在發(fā)生DNS攻擊時(shí),企業(yè)或單位各種網(wǎng)絡(luò)不受影響。如果必須要搭建DNS服務(wù)器,應(yīng)準(zhǔn)備兩個(gè)以上的域名,一旦遭到DNS攻擊,用戶還可以訪問另一個(gè)域名,此外還應(yīng)對(duì)DNS服務(wù)器進(jìn)行異地備份。
對(duì)普通用戶而言,上網(wǎng)的安全要求一般不高,但對(duì)一些重要用戶而言,安全上網(wǎng)、防護(hù)DNS攻擊是十分必要的。
很多攻擊者的網(wǎng)速和DNS數(shù)據(jù)包分析處理能力遠(yuǎn)達(dá)到不到專業(yè)DNS服務(wù)器的能力,其響應(yīng)時(shí)間也不一定很快,提高網(wǎng)速很大程度上確保正確域名響應(yīng)包比攻擊者提供的錯(cuò)誤域名響應(yīng)包要快,因?yàn)楸O(jiān)測(cè)分析和反饋也是需要一定時(shí)間的。
為避免一些不良ISP,可以手動(dòng)設(shè)置自己的DNS服務(wù)器IP地址。
在國內(nèi)可以利用www.ip138.com等網(wǎng)站來查詢各域名的IP地址,這個(gè)上網(wǎng)方式雖然比較繁瑣,但是可以有效防止DNS攻擊。
將常用網(wǎng)站的IP地址寫入hosts文件(hosts文件位置:windows xp/2003/2008/7系統(tǒng)中c:windowssystem32driversetc),用記事本打開即可進(jìn)行修改。用戶一般上網(wǎng)時(shí),瀏覽器首先會(huì)查詢hosts文件中域名有無相應(yīng)IP地址,有則直接使用該IP地址,否則會(huì)提交DNS服務(wù)器,但這里需要注意的是使用這種方式,不能使用代理服務(wù)器上網(wǎng),如果使用代理服務(wù)器則會(huì)直接跳轉(zhuǎn)至代理服務(wù)器所指定的DNS服務(wù)器。
國內(nèi)比較安全的知名導(dǎo)航網(wǎng)站有:http://www.hao123.com、http://www.2345.com、http://www.265.com、http://hao.qq.com、http://123.sougou.com、http://hao.#、http://site.baidu.com、http://www.155.com等。
如在局域網(wǎng)交換機(jī)內(nèi)將用戶IP地址和MAC地址進(jìn)行綁定,可以有效預(yù)防ARP欺騙攻擊;同時(shí),使用安全性高的瀏覽器上網(wǎng),如360瀏覽器、百度瀏覽器等。
網(wǎng)站一般都會(huì)設(shè)置Connection:keep-alive這個(gè)屬性,其目的是保持用戶長連接,避免多次連接產(chǎn)生網(wǎng)絡(luò)消耗,如果不關(guān)閉瀏覽器,客戶端會(huì)跟服務(wù)器保持長連接,只要長連接不斷開,頁面在請(qǐng)求的時(shí)候就不會(huì)重新解析域名。
遇到DNS攻擊時(shí),有超過一多半都是由于計(jì)算機(jī)感染DNS病毒造成的,所以在發(fā)現(xiàn)計(jì)算機(jī)可能遭受DNS攻擊時(shí),可以使用專殺工具或殺毒軟件進(jìn)行查殺,如360免費(fèi)查殺工具等。
當(dāng)發(fā)現(xiàn)DNS服務(wù)可能出現(xiàn)問題時(shí),應(yīng)對(duì)DNS服務(wù)器進(jìn)行有效驗(yàn)證。對(duì)連接情況進(jìn)行驗(yàn)證的最簡單方法就是登錄到DNS服務(wù)器上,在Windows系統(tǒng)中使用nslookup命令進(jìn)行驗(yàn)證,在Linux系統(tǒng)中使用dig命令進(jìn)行驗(yàn)證。以www.baidu.com域名為例,來驗(yàn)證DNS服務(wù)是否正常。
Windows操作系統(tǒng)中,在運(yùn)行中輸入cmd,在彈出的對(duì)話框中輸入:nslookup www.baidu.com,可 以看到域名和相應(yīng)的IP地址,但這是非權(quán)威應(yīng)答,不一定正確,正常應(yīng)該輸入:nslookup www.baidu.com ns3.360safe.com,這個(gè)命令的意義是使用ns3.360safe.com這個(gè)DNS服務(wù)器來解析www.baidu.com網(wǎng)站的IP地址,再利用www.ip138.com等域名查詢網(wǎng)站查找其IP地址和域名是否一致,三個(gè)結(jié)果進(jìn)行比較就可以對(duì)DNS服務(wù)器進(jìn)行驗(yàn)證。Linux操作系統(tǒng)中,使用Dig命令:dig www.baidu.com +trace,使用trace是強(qiáng)制從根DNS查找,一級(jí)一級(jí)地向上遞歸查找,而不是從當(dāng)前DNS服務(wù)器上進(jìn)行獲取,可以對(duì)DNS服務(wù)器進(jìn)行有效驗(yàn)證。
一般不提倡使用ISP提供的DNS服務(wù)器,可以手動(dòng)設(shè)置計(jì)算機(jī)DNS服務(wù)器IP地址,以更換DNS服務(wù)器。
清除DNS緩存,對(duì)DNS配置進(jìn)行更新,在Windows操作系統(tǒng)中,在運(yùn)行中輸入cmd,在彈出的對(duì)話框中輸入:ipconfig/flushdns,就可以清除DNS緩存。