登錄

DNS欺騙

1.什么是DNS欺騙

  DNS欺騙是指攻擊者冒充域名服務器的一種欺騙行為。攻擊者通過入侵DNS服務器、控制路由器等方法把受害者要訪問的目標機器域名對應的IP解析為攻擊者所控制的機器,這樣受害者原本要發(fā)送給目標機器的數(shù)據(jù)就發(fā)到了攻擊者的機器上,這時攻擊者就可以監(jiān)聽甚至修改數(shù)據(jù),從而收集到大量的信息。如果攻擊者只是想監(jiān)聽雙方會話的數(shù)據(jù),他會轉發(fā)所有的數(shù)據(jù)到真正的目標機器上,讓目標機器進行處理,再把處理結果發(fā)回到原來的受害者機器;如果攻擊者要進行徹底的破壞,他會偽裝目標機器返回數(shù)據(jù),這樣受害者接收處理的就不再是原來期望的數(shù)據(jù),而是攻擊者所期望的了。例如讓DNS服務器解析銀行網(wǎng)站的IP為自己機器IP,同時在自己機器上偽造銀行登錄頁面,那么受害者的真實賬號和密碼就暴露給入侵者了。

2.DNS欺騙原理[1]

  盡管DNS互聯(lián)網(wǎng)中扮演著如此重要的角色,但是在設計DNS協(xié)議時,設計者沒有考慮到一些安全問題,導致了DNS的安全隱患與缺陷。

  DNS欺騙就是利用了DNS協(xié)議設計時的一個非常嚴重的安全缺陷。

  首先欺騙者向目標機器發(fā)送構造好的ARP應答數(shù)據(jù)包,ARP欺騙成功后,嗅探到對方發(fā)出的DNS請求數(shù)據(jù)包,分析數(shù)據(jù)包取得ID和端口號后,向目標發(fā)送自己構造好的一個DNS返回包,對方收到DNS應答包后,發(fā)現(xiàn)ID和端口號全部正確,即把返回數(shù)據(jù)包中的域名和對應的IP地址保存進DNS緩存表中,而后來的當真實的DNS應答包返回時則被丟棄。

  假設嗅探到目標靶機發(fā)出的DNS請求包有以下內容:

  Source address?: 192.168.1.57

  Destination address?: ns.baidu.com

  Source port?: 1234

  Destination port?: 53 (DNS port)

  Data?: www.baidu.com

  我們偽造的DNS應答包如下:

  Source address?: ns.baidu.com

  Destination address?: 192.168.1.57

  Source port?: 53 (DNS port)

  Destination port?: 1234

  Data?: www.baidu.com 192.168.1.59

  目標靶機收到應答包后把域名以及對應IP保存在了DNS緩存表中,這樣www.baidu.com的地址就被指向到了192.168.1.59上。

3.DNS欺騙的主要形式

4.DNS欺騙的防范

  DNS欺騙攻擊是很難防御的,因為這種攻擊大多數(shù)本質都是被動的。通常情況下,除非發(fā)生欺騙攻擊,否則你不可能知道你的DNS已經被欺騙,只是你打開的網(wǎng)頁與你想要看到的網(wǎng)頁有所不同。在很多針對性的攻擊中,用戶都無法知道自己已經將網(wǎng)上銀行帳號信息輸入到錯誤的網(wǎng)址,直到接到銀行的電話告知其帳號已購買某某高價商品時用戶才會知道。這就是說,在抵御這種類型攻擊方面還是有跡可循。

  保護內部設備:像這樣的攻擊大多數(shù)都是從網(wǎng)絡內部執(zhí)行攻擊的,如果你的網(wǎng)絡設備很安全,那么那些感染的主機就很難向你的設備發(fā)動欺騙攻擊。

  不要依賴DNS:在高度敏感和安全的系統(tǒng),你通常不會在這些系統(tǒng)上瀏覽網(wǎng)頁,最后不要使用DNS。如果你有軟件依賴于主機名來運行,那么可以在設備主機文件里手動指定。

  使用入侵檢測系統(tǒng):只要正確部署和配置,使用入侵檢測系統(tǒng)就可以檢測出大部分形式的ARP緩存中毒攻擊和DNS欺騙攻擊。

  使用DNSSEC: DNSSEC是替代DNS的更好選擇,它使用的是數(shù)字前面DNS記錄來確保查詢響應的有效性,DNSSEC還沒有廣泛運用,但是已被公認為是DNS的未來方向,也正是如此,美國國防部已經要求所有MIL和GOV域名都必須開始使用DNSSEC。

評論  |   0條評論