聊一聊DNS劫持那些事

2019-10-23   科技百分百

作者 | 阿里云云棲社區

轉自 | CSDN企業博客

責編 | 阿禿

作為《DNS攻擊防範科普系列》的最後一篇,今天我們來好好聊聊DNS劫持。先回顧一下DNS劫持的概念?DNS劫持即通過某種技術手段,篡改正確域名和IP位址的映射關係,使得域名映射到了錯誤的IP位址,因此可以認為DNS劫持是一種DNS重定向攻擊。DNS劫持通常可被用作域名欺詐,如在用戶訪問網頁時顯示額外的信息來賺取收入等;也可被用作網絡釣魚,如顯示用戶訪問的虛假網站版本並非法竊取用戶的個人信息。

那DNS劫持到底有多大的危害呢?我們來看兩個真實的大事件:

DNS劫持大事記

事件1、《AWS route53 BGP路由泄漏事件》

 事件危害:據不完全統計,DNS劫持導致兩個小時內有多個用戶的以太坊錢包被轉帳清空,共計至少13000美元的資產被黑客盜取。

 事件還原:事件發生在2018年4月24日。黑客針對四段分配給AWS,本應作為AWS route53 DNS伺服器服務地址的IP空間(205.251.192.0/23, 205.251.194.0/23, 205.251.196.0/23, 205.251.198.0/23)發布了虛假的BGP路由,導致在BGP泄漏的兩個小時期間,本應該AWS route53 DNS伺服器的DNS查詢都被重定向到了黑客的惡意DNS伺服器。且黑客DNS劫持的目標十分明確,惡意DNS伺服器只響應對myetherwallet.com的查詢,其他域名的查詢均返回SERVFAIL。一旦用戶沒有注意「網站不安全」的提示而訪問myetherwallet.com登錄自己的以太坊錢包,黑客就可以輕易獲取用戶的私鑰進而竊取用戶的數字貨幣資產。正常情況的DNS,和劫持後的DNS的情況,請參考如下攻擊示意圖(來自cloudflare博客):

正常情況:

BGP泄漏後:

事件2、《巴西銀行釣魚事件》

 事件危害:黑客誘導原本想訪問正常銀行網站的受害者訪問到釣魚網站,並惡意竊取受害者的銀行帳目密碼信息。

 事件還原:事件發生在2018年。黑客利用D-Link路由器的漏洞,入侵了至少500個家用路由器。黑客入侵後更改受害者路由器上的DNS配置,將受害者的DNS請求重定向到黑客自己搭建的惡意DNS伺服器上。黑客入侵後更改受害者路由器上的DNS配置,將受害者的DNS請求重定向到黑客自己搭建的惡意DNS伺服器上,最終誘導原本想訪問正常銀行網站的受害者訪問到釣魚網站,並惡意竊取受害者的銀行帳目密碼信息。

上面兩個案例都是觸目驚心啊。接下來我們來介紹一下黑客們是怎麼做到DNS劫持的?

DNS解析原理

介紹劫持原理前,你需要先了解典型的DNS解析流程。

客戶端發起遞歸DNS請求,本地遞歸DNS(大多數情況下為運營商DNS)或者公共DNS通過疊代查詢請求多級的DNS權威伺服器,並最終將查詢結果返回給客戶端。可以看到,一次完整的DNS查詢:

• 鏈路長。查詢過程包含多次,多級的網絡通信。

• 參與角色多。查詢過程涉及客戶端,DNS遞歸伺服器,權威伺服器等角色。在一次完整DNS查詢鏈路的各個環節,其實都有可能被DNS劫持,下面的章節會逐一分析各種類型的DNS劫持。

DNS劫持分類

我們按照客戶端側--遞歸DNS伺服器--權威DNS伺服器的路徑,將DNS劫持做如下分類:

【一、本地DNS劫持】

客戶端側發生的DNS劫持統稱為本地DNS劫持。本地DNS劫持可能是:

  • 黑客通過木馬病毒或者惡意程序入侵PC,篡改DNS配置(hosts文件,DNS伺服器地址,DNS緩存等)。

  • 黑客利用路由器漏洞或者破擊路由器管理帳號入侵路由器並且篡改DNS配置。

  • 一些企業代理設備(如Cisco Umbrella intelligent proxy)針對企業內部場景對一些特定的域名做DNS劫持解析為指定的結果。

【二、DNS解析路徑劫持】

DNS解析過程中發生在客戶端和DNS伺服器網絡通信時的DNS劫持統一歸類為DNS解析路徑劫持。通過對DNS解析報文在查詢階段的劫持路徑進行劃分,又可以將DNS解析路徑劫持劃分為如下三類:

• DNS請求轉發

通過技術手段(中間盒子,軟體等)將DNS流量重定向到其他DNS伺服器。

案例:

圖片來自《巫俊峰, 沈瀚. 基於旁路搶答機制的異網DNS管控實踐. 電信技術[J]》

• DNS請求複製

利用分光等設備將DNS查詢複製到網絡設備,並先於正常應答返回DNS劫持的結果。

案例:一個DNS查詢抓包返回兩個不同的應答。

• DNS請求代答

網絡設備或者軟體直接代替DNS伺服器對DNS查詢進行應答。

案例:一些DNS伺服器實現了SERVFAIL重寫和NXDOMAIN重寫的功能。

【三、篡改DNS權威記錄】

篡改DNS權威記錄 我們這裡指的黑客非法入侵DNS權威記錄管理帳號,直接修改DNS記錄的行為。

案例:

黑客黑入域名的管理帳戶,篡改DNS權威記錄指向自己的惡意伺服器以實現DNS劫持。

黑客黑入域名的上級註冊局管理帳戶,篡改域名的NS授權記錄,將域名授權給黑客自己搭建的惡意DNS伺服器以實現DNS劫持。

黑客黑入域名的上級註冊局管理帳戶,篡改域名的NS授權記錄,將域名授權給黑客自己搭建的惡意DNS伺服器以實現DNS劫持。(以上參考fireeye博客)

DNS劫持應對策略

DNS劫持在網際網路中似乎已經變成了家常便飯,那麼該如何應對各種層出不窮的DNS劫持呢?如果懷疑自己遇到了DNS劫持,首先要做的事情就是要確認問題。

如何確認DNS劫持

查看路由器DNS配置是否被篡改。

可以使用一些全網撥測的工具確認DNS劫持和其影響範圍。在此隆重介紹一下,阿里的DNS域名檢測工具於國慶後已經正式上線,地址是:https://zijian.aliyun.com/#/domainDetect

通過工具查看回復DNS應答的DNS伺服器,確認DNS解析是否被重定向。

• whatismydnsresolver http://whatismydnsresolver.com/

移動端可以安裝一些DNS相關的測試工具進行排查:

• 安卓 ping & dns

• IOS IOS iNetTools

DNS劫持防範

• 安裝殺毒軟體,防禦木馬病毒和惡意軟體;定期修改路由器管理帳號密碼和更新固件。

• 選擇安全技術實力過硬的域名註冊商,並且給自己的域名權威數據上鎖,防止域名權威數據被篡改。

• 選擇支持DNSSEC的域名解析服務商,並且給自己的域名實施DNSSEC。DNSSEC能夠保證遞歸DNS伺服器和權威DNS伺服器之間的通信不被篡改。阿里雲DNS作為一家專業的DNS解析服務廠商,一直在不斷完善打磨產品功能,DNSSEC功能已經在開發中,不日就會上線發布。

• 在客戶端和遞歸DNS伺服器通信的最後一英里使用DNS加密技術,如DNS-over-TLS,DNS-over-HTTPS等。

在此《DNS攻擊防範科普系列》已經完結,歡迎大家給我們留意反饋自己對DNS攻擊防範對看法。

福利