DNS 系列(三):如何免受 DNS 欺騙的侵害

2022-07-13 12:00:25

網際網路上每一臺裝置都會有一個 IP 地址,我們在存取網站或傳送資訊時,其實都是通過 IP 地址達成準確請求的。但是這個 IP 地址由很長一串數位組成,記憶起來相當困難,所以我們創造了更實用的域名來代替 IP 地址。而如何將域名和 IP 地址聯絡起來,就是域名系統(DNS)發揮作用的地方。它由各種名稱伺服器(即 DNS 伺服器)組成,負責域名解析,幫助使用者端建立聯絡,是網路中最重要的服務之一。

名稱伺服器和使用者端之間的通訊存在一定的安全風險,部分心懷不軌的人可以通過很多方法篡改 Internet 上的名稱解析。本文要講的 DNS 欺騙,就是通過虛假的 IP 地址發起欺騙攻擊。

什麼是 DNS 欺騙?

DNS 欺騙是指 DNS 名稱解析被篡改,特別容易出現的 DNS 欺騙是偽造域名的 IP 地址。這是因為 DNS 解析主要在內部系統進行,而瀏覽器中顯示的是正確的域名,所以使用者通常不會注意到被篡改。具體操作為,惡意者讓 DNS 請求會返回一個虛假的 IP 地址,當用戶端與假 IP 地址建立連線時,使用者就會被重定向到假的伺服器。簡單舉個例子:

DNS 伺服器請求 返回的 IP 地址
正常狀態 example.com 93.184.216.34
DNS 欺騙 example.com 192.0.2.34(例子)

下圖是使用者端在連線到網站 example.com 過程中被欺騙的案例示意圖:

(圖片來源於網際網路,如有侵權請聯絡我們刪除)

  • d1:使用者端首先從 DNS 伺服器請求主機名 example.com 的 IP 地址。

  • d2:使用者端收到了請求的響應,但它返回了一個虛假的 IP 地址。未與 example.com 真正的伺服器建立連線。

  • h1:使用者端將請求傳送到偽造 IP 地址後面的惡意主機。

  • h2:惡意主機將看似合法的網站頁面返回給使用者端。但是,惡意主機上缺少該域名的安全證書。

  • A、B、C:這些是 DNS 欺騙的不同攻擊點:在使用者端或本地路由器上、在網路連線上以及在 DNS 伺服器上。

DNS 欺騙會帶來哪些威脅?

攻擊者使用 DNS 欺騙進行網路釣魚和域名欺騙攻擊,目的是攔截網際網路上的使用者資料。因為 DNS 欺騙會影響使用者端建立的每一個連線。無論是存取網站還是傳送電子郵件,若相關伺服器的 IP 地址被篡改,目的都是讓受害者相信他們最終存取了一個合法的地址,並利用受害者的信任引誘下載惡意軟體並感染系統,進而竊取敏感的使用者資料。

DNS 欺騙會帶來以下風險:

  • 機密資料盜竊:網路釣魚用於竊取密碼等敏感資料。這些方法通常用於入侵計算機系統或進行各種詐騙。

  • 系統惡意軟體感染:受害者被誘騙在自己的系統上安裝惡意軟體,為進一步的攻擊開啟了大門。

  • 收集使用者資料:在此過程中收集個人資料,進行出售或用於其他有針對性的網路釣魚攻擊。

  • 可構成持續威脅:遭遇 DNS 欺騙,被篡改的 DNS 響應資訊可能會保留在快取中,在較長時間內進行欺騙。

在 2020 年春季 COVID-19 流行期間,國外就發生過 DNS 欺騙攻擊。攻擊者劫持了路由器的 DNS,篡改成了惡意的 IP 地址。受害者的瀏覽器會自行開啟並顯示一條訊息,提示他們下載據稱來自世界衛生組織 (WHO) 的「COVID-19 通知應用程式」。但其實,該軟體是木馬軟體。如果受害者安裝了木馬軟體,它會搜尋本地系統並嘗試存取敏感資料,用於針對受害者的網路釣魚攻擊。

△ 宣傳虛假 COVID-19 資訊應用程式的 Msftconnecttest 頁面

不過 DNS 欺騙並不都是惡意攻擊,一些網際網路服務提供者(ISP) 偶爾也會通過 DNS 欺騙的手段來審查或投放廣告。例如,ISP 可以故意操縱其 DNS 表以實施國家審查的要求。這樣做可以禁止使用者存取違規網站,當用戶存取被禁止的域名時,將會被重定向到警告頁面。DNS 欺騙也可以幫助收集使用者資料,或通過重定向的方式來投放廣告。比如使用者進入不存在或拼寫錯誤的域名時,ISP 使用 DNS 欺騙將使用者重定向到特定頁面,此頁面可能會播放廣告或建立使用者組態檔。

如何免受 DNS 欺騙?

DNS 作為影響資訊保安的一類威脅,我們需要對 DNS 欺騙保持戒心。我們可以採取加密措施的手段有效地防止 DNS 欺騙。加密方法通常具有兩個關鍵優勢:

  • 保護資料免受第三方未經授權的存取

  • 保證了通訊雙方的真實性

針對網站管理員的方式來說,可用的加密方式有網站域名開啟強制 HTTPS,電子郵件使用者端中設定的連線(例如 IMAP、POP3 和 SMTP )使用安全協定TLS 和 SSL。這類加密可以保護請求中的資料傳輸,如果攻擊者試圖冒充正常的主機,使用者端就會出現證書錯誤的提示,減少受到 DNS 欺騙的可能。

DNS 伺服器間的連線還可以通過DNSCrypt、DNS over HTTPS(DoH)和 DNS over TLS(DoT)這些技術,減少危險的中間人攻擊。但需要注意的是,這三種解決方案的應用不是很普遍,DNS 伺服器必須支援相應的安全技術,才能使用這三種方式進行加密工作。

上面提到的是管理員可以做的加密方式,對於使用者來說,我們可以使用公共 DNS 來避免 DNS 欺騙。設定非常簡單,直接在系統的 「網路設定」 中更改 DNS 地址即可。公用的 DNS 除了可以應對 DNS 欺騙,還可以加快解析響應速度。同時大型的公共 DNS 通常會使用先進的安全技術,例如 DNSSEC(DNS 安全擴充套件)、DoH、DoT 和 DNSCrypt。常見的公共 DNS 有 114DNS 的 114.114.114.114,純淨無劫持;Google 的 8.8.8.8 、Quad9 的 9.9.9.9,均支援 DNSSEC。

關於 DNS 欺騙相關的暫時就講到這了,看完這篇文章希望能幫助大家更好地保護自己的資訊保安。

推薦閱讀

DNS 系列(一):為什麼更新了 DNS 記錄不生效?

DNS 系列(二):DNS 記錄及工作方式,你瞭解嗎?