什麼是DNS汙染及該如何預防

什麼是DNS汙染及該如何預防

如果說好萊塢電影教會我們一件事的話,那就是黑客很聰明,他們有各種各樣的伎倆來繞過我們的安全。在現實世界中,安全問題往往歸結為機會,而不是發展技能。“DNS中毒”攻擊符合這一描述,事實上,您需要具備防止域被欺騙的技能。

這個概念很簡單:訪問者看到的是你的網站,但它是欺詐和有害的,而這個假網站看起來很相似。因此,您需要採用多種技術來確保使用者的安全,並且您的站點不會受到攻擊。

在這篇文章中,我們將深入探討DNS汙染(英文DNS Poisoning),又或者稱作DNS中毒和域欺騙的概念。我們還將討論一些相關概念,以幫助您理解為什麼您的最終響應是最佳方法。

  1. 域名系統(DNS)入門
  2. DNS查詢的過程
  3. 什麼是DNS汙染
  4. 如何預防DNS汙染

域名系統(DNS)入門

在我們進入DNS汙染的細節之前,讓我們先談談域名系統。雖然瀏覽一個網站似乎是一項簡單的任務,但在伺服器的引擎蓋下有很多事情在進行。

從“A”到“B”涉及很多因素:

  • IP地址。這是一個數字串,是你的實際網址。把它們當作你房子的座標。例如,127.0.0.1:8080是標準的“本地主機”地址(即您的計算機)。
  • 域名。如果IP地址代表座標,則域名就是信封上顯示的地址。當然,“wbolt.com”就是其中的一個例子。
  • DNS請求。這是一個高階前端任務和複雜的低階流程的極好例子。現在,考慮一個請求是瀏覽器請求一個專用伺服器地址是一組座標。
  • DNS伺服器。這與您網站的伺服器不同,它是四臺伺服器合一的。它的工作是處理DNS請求。我們將在後面的章節中更詳細地討論這一點。
  • 遞迴伺服器。您還將看到這些名為“解析名稱伺服器”的伺服器。它是DNS查詢過程的一部分,負責在伺服器上查詢與IP地址相關的域名。

總的來說,DNS使終端使用者獲取域名變得簡單。它是Web的核心部分,因此,它有許多活動部分。

接下來我們將介紹查詢過程本身,儘管您已經看到DNS如何完成一項重要任務。

DNS查詢的過程

請容忍我們,我們提供的是一個抽象的類比。

把人們帶到偏遠地區的活動,如登山或航海,都有一個共同的危險:迷路和不能及時找到。定位被困人員的傳統方法是使用座標。它們是明確的,並提供精確的準確性。

然而,這個過程也有缺點。首先,你需要知道如何計算你在任何地點的座標——如果你在世界的偏遠地區,那就很棘手了。第二,你必須向救援隊清楚說明這些座標。一個錯誤的數字和後果是可怕的。

what3words應用程式需要計算和傳遞座標的複雜過程,並將其轉換為一個三個單詞的大致位置摘要。例如,以Automatic的總部為例:

Apple地圖中的自動化辦公室

Apple地圖中的自動化辦公室

該位置的座標為37.744159, -122.421555。不過,除非你是一名專業的航海家,否則你不太可能知道這一點。即使你這樣做了,把它交給能幫助你的人也是一個渺茫的提議。

簡言之,What3單詞需要一組抽象的座標,並將它們翻譯成三個值得記憶的單詞。就Automatic的辦公室而言,就是decent.transfers.sleeps

what3words網站,展示Automatic的辦公室

what3words網站,展示Automatic的辦公室

這使得幾乎所有能夠訪問該應用程式的人都能掌握複雜的全球定位。它已經拯救了很多平民的生命。

這與DNS查詢相關聯,因為過程類似。在what3words的情況下,救援者嚮應用程式詢問字串的座標。請求通過伺服器傳送,以查詢座標,並在找到座標後返回給終端使用者。

DNS查詢具有類似的流程:

  • 您的瀏覽器請求域名的IP地址。
  • 您的作業系統(OS)要求遞迴伺服器查詢域名,並開始執行其伺服器集合。
  • 當它找到域名時,它將返回到瀏覽器。

what3words的缺點之一是一個單詞字串不如一組座標精確。這意味著您可以快速確定一個大致位置,但可能需要花費更長的時間才能找到被困人員。

DNS查詢也有缺點,惡意攻擊者可以利用這些缺點進行攻擊。不過,在我們看這個之前,讓我們先簡單地繞道討論一下快取,以及它如何加快查詢速度。

DNS快取

與Web快取非常相似,DNS快取可以幫助您向伺服器呼叫常規查詢。這將使每次新訪問獲取IP地址的過程更快。

簡而言之,快取位於DNS伺服器系統內,並減少了到遞迴伺服器的額外行程。這意味著瀏覽器可以直接從DNS伺服器獲取IP地址,並更快地完成GET請求。

您將在整個系統中找到DNS快取。例如,您的計算機將具有DNS快取,路由器和internet服務提供商(ISP)也將具有DNS快取。你通常不會意識到你的瀏覽體驗有多依賴DNS快取,直到你成為DNS中毒的受害者。

什麼是DNS汙染

現在,您已經瞭解了DNS查詢的概念和獲取IP地址的整個過程,我們可以瞭解如何利用它。

你經常會看到DNS汙染(DNS Poisoning)也被稱為“欺騙”或者“中毒”,因為鏈中有一個欺詐性的“相似”網站是攻擊的一部分。

我們將更詳細地討論所有這些方面,但要知道DNS中毒或欺騙是一種有害的攻擊,可能會給使用者和網際網路帶來精神、金錢和資源方面的問題。

首先,讓我們進入快取中毒的過程。

DNS汙染的工作原理

鑑於整個汙染過程非常複雜,攻擊者創造了許多不同的方法來實現其目標:

  • 機器在中間。這是攻擊者在瀏覽器和DNS伺服器之間進行攻擊、毒害兩者並將使用者重定向到其自己伺服器上的欺詐站點的地方。
  • 伺服器劫持。如果攻擊者進入DNS伺服器,他們可以重新配置該伺服器,將所有請求傳送到自己的站點。
  • 通過垃圾郵件中毒。與伺服器劫持不同,這種方法會毒害客戶端(即瀏覽器)。訪問許可權通常通過垃圾郵件連結、電子郵件和欺詐性廣告授予。
  • “Birthday attacks.”。這是一種複雜的加密攻擊,需要進一步解釋。

Birthday attacks基於“生日問題”。這是一個概率場景,即(簡而言之)如果一個房間裡有23個人,兩個人共享同一個生日的概率為50%。如果房間裡有更多的人,機會就會增加。

顯示生日問題的圖表(圖片來源:維基百科)

顯示生日問題的圖表(圖片來源:維基百科)

這將轉換為基於將DNS查詢請求連線到GET響應的識別符號的DNS中毒。如果攻擊者傳送一定數量的隨機請求和響應,則很有可能匹配導致中毒嘗試成功。從大約450個請求中,概率約為75%,在700個請求中,攻擊者幾乎可以保證破解伺服器。

簡而言之,在大多數情況下都會發生對DNS伺服器的攻擊,因為這使惡意使用者能夠更靈活地操縱您的站點和使用者資料。DNS資料也沒有驗證,因為請求和響應不使用傳輸控制協議(TCP)。

鏈中的弱點是DNS快取,因為它充當DNS條目的儲存庫。如果攻擊者可以將偽造條目注入快取,則訪問該快取的每個使用者都會發現自己處於欺詐站點,直到快取過期。

攻擊者通常會尋找一些訊號、弱點和資料點來攻擊目標。它們用於發現尚未快取的DNS查詢,因為遞迴伺服器必須在某個時候執行查詢。通過擴充套件,攻擊者還將查詢查詢將轉到的名稱伺服器。一旦他們有了這個,解析程式使用的埠和請求ID號是至關重要的。

雖然滿足所有這些要求並不是必需的——畢竟,攻擊者可以通過多種方法訪問伺服器——但勾選這些框可以使他們的工作更輕鬆。

DNS汙染的真實世界示例

在過去的幾年裡,DNS中毒已經有了一些引人注目的例子。在某些情況下,這是一種故意的行為。例如,一些國家或者地區大規模執行防火牆,以控制網際網路使用者接收的資訊。

簡言之,他們通過將訪問者重定向到Twitter和Facebook等未經批准的網站,汙染自己的伺服器。

瑞典ISP從這些國家或者地區伺服器提供根DNS資訊時出現網路錯誤。這意味著智利和美國的使用者在訪問某些社交媒體網站時會被重定向到其他地方。

另一個例子中,抗議馬來西亞虐待的孟加拉國黑客毒害了許多與微軟、谷歌、YouTube和其他知名網站相關的域名。這似乎是伺服器劫持事件,而不是客戶端問題或垃圾郵件。

即使是維基解密也不能免疫DNS中毒攻擊。幾年前,一次潛在的伺服器劫持導致該網站的訪問者被重定向到一個專門針對黑客的頁面。

DNS汙染不一定是一個複雜的過程。所謂的“道德黑客”——即那些希望暴露安全缺陷而不是造成損害的人——有在自己的計算機上測試欺騙的簡單方法。

不過,除了被重定向之外,DNS中毒表面上似乎沒有任何長期影響。事實上,有——我們將在下一步討論它們。

為什麼DNS汙染有害

攻擊者希望在伺服器上執行DNS中毒有三個主要目標:

  • 傳播惡意軟體。
  • 將你轉到另一個網站,這將在某種程度上使他們受益。
  • 從您或其他實體竊取資訊。

當然,要理解為什麼DNS中毒或欺騙對ISP、伺服器運營商和終端使用者來說是一個問題並沒有超出想象。

正如我們所指出的,欺騙對ISP來說是一個巨大的問題,以至於有像CAIDA Spoofer這樣的工具可以提供幫助。

CAIDA網站

CAIDA網站

幾年前,統計數字顯示每天大約有30000起襲擊。自報告發表以來,這一數字幾乎肯定會增加。更重要的是,正如前一節中的示例一樣,通過網路交付偽造的站點會帶來使用者信任問題以及隱私問題。

無論你是誰,當你成為中毒和欺騙的受害者時,都有一些風險:

  • 就像某些國家防火牆一樣,你可能會受到審查。這意味著你得到的資訊將不準確,這會對許多社會和政治領域產生連鎖反應。
  • 資料盜竊是人們最關心的問題,對於那些想要獲取使用者銀行資訊和其他敏感資料的人來說,這是一項有利可圖的冒險。
  • 您可能容易感染系統上的惡意軟體和其他特洛伊木馬病毒。例如,攻擊者可以通過偽造的站點在您的系統上注入鍵盤記錄器或其他形式的間諜軟體。

DNS汙染還有其他相關影響。例如,在恢復過程全面展開時,您可能無法對系統應用任何安全更新。這會使您的計算機更長時間處於易受攻擊狀態。

此外,考慮這個清理過程的成本和複雜性,因為它會影響到每個人在鏈條上。所有聯網服務的更高價格只是負面因素之一。

消除DNS汙染的努力是巨大的。鑑於欺騙同時影響客戶端和伺服器端設定,將其從一個設定中刪除並不意味著它從所有設定中消失。

如何預防DNS汙染

有兩個區域受到DNS汙染的影響-客戶端和伺服器端。我們將看看你能做些什麼來防止這種對硬幣兩面的破壞性攻擊。

讓我們從網際網路作為一個整體在伺服器端做什麼開始。

網際網路如何防止DNS汙染和伺服器端欺騙

儘管在本文中我們已經討論了很多關於DNS的內容,但我們還沒有注意到這項技術有多麼過時。簡而言之,由於一些因素,DNS並不是最適合現代網路瀏覽體驗的。首先,它是未加密的,並且沒有一些重要的驗證考慮,這將阻止許多DNS中毒攻擊的繼續。

防止攻擊變得更強的一種快速方法是通過簡單的日誌策略。這將在請求和響應之間進行簡單的比較,以檢視它們是否匹配。

然而,長期的答案(根據專家的說法)是使用域名系統安全擴充套件(DNSSEC)。這是一項旨在對抗DNS中毒的技術,簡單來說,它提供了不同級別的驗證。

更深入地說,DNSSEC使用“公鑰加密”作為驗證。這是一種將資料視為真實可信的方式。它與您的其他DNS資訊一起儲存,遞迴伺服器使用它來檢查它接收到的資訊是否未被更改。

與其他網際網路協議和技術相比,DNSSEC是一個相對的嬰兒,但它已經足夠成熟,可以在網際網路的根級別實現,儘管它還不是主流。谷歌的公共DNS是一項完全支援DNSSEC的服務,而且隨時都會有更多的服務出現。

即便如此,DNSSEC仍存在一些值得注意的缺點:

  • 該協議不編碼響應。這意味著攻擊者仍然可以“監聽”流量,儘管要繞過DNSSEC,攻擊必須更加複雜。
  • 由於DNSSEC使用額外的記錄來收集DNS資料,因此存在另一個稱為“區域列舉”的漏洞。該漏洞使用一條記錄來“遍歷”並收集特定“區域”內的所有DNS記錄。此記錄的某些版本會加密資料,但其他版本尚未加密。
  • DNSSEC是一個複雜的協議,因為它也是新的,所以有時可能會配置錯誤。當然,這會削弱使用它的好處,並帶來進一步的問題。

即便如此,DNSSEC至少在伺服器端是未來的趨勢。作為終端使用者,您還可以採取一些預防措施。

如何防止客戶端的DNS汙染

有更多的方法可以在客戶端防止DNS中毒,儘管沒有一種方法能夠像專家實現的伺服器端DNSSEC那樣強大。不過,作為網站所有者,您可以勾選一些簡單的框:

  • 對任何請求和回覆使用端到端加密。安全套接字層(SSL)證書在這裡做得很好。
  • 使用欺騙檢測工具,如Xarp。這些掃描程式在傳送資料包之前掃描接收到的資料包。這可以減輕任何惡意資料傳輸。
  • 增加DNS快取的生存時間(TTL)值將有助於在惡意條目到達終端使用者之前清除它們。
  • 您應該有一個好的DNS、DHCP和IPAM(DDI)策略。這包括DNS策略、動態主機配置協議和IP地址管理。這是一個由系統管理員和伺服器安全專家處理的複雜但必要的過程。

作為終端使用者,您還可以做一些事情來幫助防止中毒和欺騙:

  • 使用虛擬專用網路(VPN),因為您的資料將被端到端加密。您還可以使用私有DNS伺服器,同樣使用端到端加密。
  • 採取簡單的預防措施,例如不要單擊無法識別的連結並定期進行安全掃描。
  • 定期重新整理DNS快取也會清除系統中的惡意資料。這需要幾秒鐘,而且很容易實現。

雖然不能完全消除DNS汙染,但可以防止最壞的情況發生。作為終端使用者,您無法控制伺服器如何處理攻擊。同樣,系統管理員無法控制瀏覽器中發生的事情。因此,團隊努力阻止這種最有害的攻擊影響整個鏈。

小結

網際網路攻擊是司空見慣的。DNS汙染(中毒或欺騙)是一種常見的攻擊,如果不加以制止,可能會影響數百萬使用者。這是因為DNS協議很舊,不適合現代網路瀏覽——儘管新技術即將問世。

簡而言之,DNS汙染將終端使用者重定向到現有網站的欺詐版本。這是一種竊取資料並用惡意軟體感染系統的方法。沒有萬無一失的方法可以完全防止它,但是你可以通過一些簡單的措施來控制它。

您是否曾經是DNS汙染的受害者,如果是,原因是什麼?請在下面的評論部分與我們分享您的經驗!

評論留言