面對 DNS 劫持,只能坐以待斃嗎?
DNS 劫持作為最常見的網絡攻擊方式,是每個站長或者運維團隊最為頭疼的事情。苦心經營的網站受到 DNS 劫持后,不僅會影響網站流量、權重,還會讓用戶置身于危險之中,泄露隱私造成財產損失。
就是這樣一個簡單到不能再簡單的攻擊方式,在 2009 年制造了轟動全球的“銀行劫持案”,導致巴西最大銀行 Banco Bradesco 銀行近 1% 客戶受到攻擊而導致賬戶被盜。黑客利用寬帶路由器缺陷對用戶 DNS 進行篡改——用戶瀏覽黑客所制作的 Web 頁面,其寬帶路由器 DNS 就會被黑客篡改,由于該 Web 頁面設有巧妙設計的惡意代碼,成功躲過安全軟件檢測,導致大量用戶被 DNS 釣魚詐騙。
網站被黑、被歹意鏡像、被植入垃圾代碼,現象屢見不鮮,其危害還包括:
- 釣魚詐騙網上購物,網上支付有可能會被惡意指向別的網站,更加加大了個人賬戶泄密的風險;
- 網站內出現惡意廣告;
- 輕則影響網速,重則不能上網。
但面對DNS劫持時,只能束手就擒嗎?
知己知彼,什么是 DNS?
DNS 即 Domain Name System 的縮寫,域名系統以分布式數據庫的形式將域名和 IP 地址相互映射。簡單的說,DNS 是用來解析域名的,在正常環境下,用戶的每一個上網請求會通過 DNS 解析指向到與之相匹配的 IP 地址,從而完成一次上網行為。DNS 作為應用層協議,主要是為其他應用層協議工作的,包括不限于 HTTP、SMTP、FTP,用于將用戶提供的主機名解析為 IP 地址,具體過程如下:
(1)用戶主機(PC 端或手機端)上運行著 DNS 的客戶端;
(2)瀏覽器將接收到的 URL 中抽取出域名字段,即訪問的主機名,比如 http://www.aliyun.com/ , 并將這個主機名傳送給 DNS 應用的客戶端;
(3)DNS 客戶機端向 DNS 服務器端發送一份查詢報文,報文中包含著要訪問的主機名字段(中間包括一些列緩存查詢以及分布式 DNS 集群的工作);
(4)該 DNS 客戶機最終會收到一份回答報文,其中包含有該主機名對應的 IP 地址;
(5)一旦該瀏覽器收到來自 DNS 的 IP 地址,就可以向該 IP 地址定位的 HTTP 服務器發起 TCP 連接。
( 圖片源自網絡,僅作示意 )
可以看到想要獲取目標網站 IP,除了在本機中查找行為,還需要第三方服務器(DNS)參與。但只要經過第三方服務,網絡就不屬于可控制范圍,那么就有可能產生 DNS 挾持,比如獲取的 IP 并不是實際想要的 IP,從而打開非目標網站。網站在經過本地 DNS 解析時,黑客將本地 DNS 緩存中的目標網站替換成其他網站的 IP 返回,而客戶端并不知情,依舊按照正常流程尋址建并立連接。如果一些黑客想要盜取用戶賬號及密碼時,黑客可以做跟目標網站一模一樣的木馬頁面,讓用戶登錄,當用戶輸入完密碼提交的時候就中招了。
常見 DNS 劫持手段又有哪些?
(1)利用 DNS 服務器進行 DDoS 攻擊
正常 DNS 服務器遞歸詢問過程被利用,變成 DDoS 攻擊。假設黑客知曉被攻擊機器 IP 地址,攻擊者使用該地址作為發送解析命令的源地址。當使用 DNS 服務器遞歸查詢后會響應給最初用戶。如果黑客控制了足夠規模的肉雞進行上述操作。那么,這個最初用戶就會受到來自于 DNS 服務器的響應信息 DDoS 攻擊,成為被攻擊者。
(2)DNS 緩存感染
黑客使用 DNS 請求將數據注入具有漏洞的 DNS 服務器緩存中。這些緩存信息會在客戶進行 DNS 訪問時返回給用戶,把用戶對正常域名的訪問引導到入侵者所設置掛馬、釣魚等頁面上,或通過偽造郵件和其他服務獲取用戶口令信息,導致客戶遭遇進一步侵害。
(3)DNS 信息劫持
原則上 TCP/IP 體系通過序列號等多種方式避免仿冒數據插入,但黑客通過監聽客戶端和 DNS 服務器對話,就可以解析服務器響應給客戶端的 DNS 查詢 ID。每個 DNS 報文包括一個相關聯的 16 位 ID,DNS 服務器根據這個 ID 獲取請求源位置。黑客在 DNS 服務器之前將虛假響應交給用戶,欺騙客戶端去訪問惡意網站。假設當提交給某個域名服務器域名解析請求的數據包被截獲,然后按黑客的意圖將虛假 IP 地址作為應答信息返回給請求者。這時,原始請求者就會把這個虛假 IP 地址作為它所要請求的域名而進行連接,顯然它被引導到了別處而根本連接不上自己想要連接的那個域名。
(4)ARP 欺騙
通過偽造 IP 地址和 MAC 地址實現 ARP 欺騙,在網絡中產生大量 ARP 通信量使網絡阻塞,黑客只要持續不斷發出偽造的 ARP 響應包就能更改目標主機 ARP 緩存中的 IP-MAC 條目,造成網絡中斷或中間人攻擊。ARP 攻擊主要是存在于局域網網絡中,局域網中若有一臺計算機感染 ARP 木馬,則感染該 ARP 木馬的系統將會試圖通過"ARP 欺騙”手段截獲所在網絡內其它計算機的通信信息,并因此造成網內其它計算機的通信故障。ARP 欺騙通常是在用戶局網中,造成用戶訪問域名的錯誤指向,但在 IDC 機房被入侵后,則也可能出現攻擊者采用 ARP 包壓制正常主機、或者壓制 DNS 服務器,以使訪問導向錯誤指向。
DNS 劫持對業務造成哪些影響?
一旦被劫持,相關用戶查詢就沒辦法獲取到正確 IP 解析,這就很容易造成:
(1)很多用戶習慣依賴書簽或者易記域名進入,一旦被劫持會使這類用戶無法打開網站,更換域名又沒辦法及時告知變更情況,導致用戶大量流失。
(2)用戶流量主要是通過搜索引擎 SEO 進入,DNS 被劫持后會導致搜索引擎蜘蛛抓取不到正確 IP,網站就可能會被百度 ban 掉。
(3)一些域名使用在手機應用 APP 調度上,這些域名不需要可以給客戶訪問,但這些域名的解析關系到應用 APP 訪問,如果解析出現劫持就會導致應用 APP 無法訪問。這時候更換域名就可能會導致 APP 的下架,重新上架需要審核并且不一定可以重新上架。這就會導致應用 APP 會有用戶無法訪問或者下載的空窗期。
可以看到,DNS 劫持對業務有著巨大影響,不僅僅是用戶體驗的損失,更是對用戶資產安全、數據安全的造成潛在的巨大風險。
我們該如何監測網站是否被 DNS 劫持?
借助 ARMS-云撥測,我們實時對網站進行監控,實現分鐘級別的監控,及時發現 DNS 劫持以及頁面篡改。
劫持檢測
DNS 劫持監測
利用域名白名單、元素白名單,有效探測域名劫持以及元素篡改情況。在建立撥測任務時,我們可以設置 DNS 劫持白名單。比如,我們配置 DNS 劫持格式的文件內容為 www.aliyun.com:201.1.1.22|250.3.44.67。這代表 www.aliyun.com 域名下,除了 201.1.1.22 和 250.3.44.67 之外的都是被劫持的。
頁面篡改監測
我們把原始頁面的元素類型加入頁面篡改白名單,在進行撥測時將加載元素與白名單對比,判斷頁面是否被篡改。比如,我們配置頁面篡改的文件內容為 www.aliyun.com:|/cc/bb/a.gif|/vv/bb/cc.jpg,這代表著 www.aliyun.com 域名下,除了基礎文檔 、/cc/bb/a.gif 和 /vv/bb/cc.jpg 之外的元素都屬于頁面被篡改。再比如,我們配置頁面篡改的文件內容為 www.aliyun.com:*,代表:www.aliyuyn.com 域名下所有的元素都不認為是被篡改。
劫持告警
在持續監測的同時,及時告警也至關重要。通過靈活配置劫持告警比例,當任務的劫持比例大于閾值,即迅速通知相關運維團隊,對網站進行維護,確保用戶的數據安全以及網站的正常瀏覽。
在提升用戶體驗的同時,確保網站以及用戶資產安全對于企業而言同樣至關重要。云撥測為你的網站安全與用戶體驗保駕護航!