網際網路上每一臺裝置都會有一個 IP 地址,我們在存取網站或傳送資訊時,其實都是通過 IP 地址達成準確請求的。但是這個 IP 地址由很長一串數位組成,記憶起來相當困難,所以我們創造了更實用的域名來代替 IP 地址。而如何將域名和 IP 地址聯絡起來,就是域名系統(DNS)發揮作用的地方。它由各種名稱伺服器(即 DNS 伺服器)組成,負責域名解析,幫助使用者端建立聯絡,是網路中最重要的服務之一。
名稱伺服器和使用者端之間的通訊存在一定的安全風險,部分心懷不軌的人可以通過很多方法篡改 Internet 上的名稱解析。本文要講的 DNS 欺騙,就是通過虛假的 IP 地址發起欺騙攻擊。
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 欺騙會影響使用者端建立的每一個連線。無論是存取網站還是傳送電子郵件,若相關伺服器的 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 欺騙。加密方法通常具有兩個關鍵優勢:
保護資料免受第三方未經授權的存取
保證了通訊雙方的真實性
針對網站管理員的方式來說,可用的加密方式有網站域名開啟強制 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 欺騙相關的暫時就講到這了,看完這篇文章希望能幫助大家更好地保護自己的資訊保安。