淺談網絡劫持的原理及影響
無處不在的劫持
利用餓了么2塊錢的補差價就能劃走用戶支付寶的2000元、利用訂購的機票信息,就能獲取到用戶信任,騙取財產、總是被跳轉到一些自己不想訪問的頁面上、為什么總有那么多自己跳出來的廣告?為什么一個正常的鏈接點進去之后會出現下載界面?我們的數據信息怎么就這么不安全?
對于普通用戶來說,你的請求數據發出去以后,會經過哪里,最終去到哪里,怎么處理響應,這后面的一切都是黑洞。而對于想利用你的信息做壞事的人來說,每一個環節都是他們的機會。
先不說壞人通過爬蟲、撞庫等手段獲取用戶信息。最直接的我們數據接入的運營商都可能會對我們的數據分析監控。比如敏感信息信息的監控、涉黃涉恐信息的過濾,而我們能夠感受到影響的可能就是網絡劫持了。那么運營商為什么要做網絡劫持,通過什么手段來做劫持,網絡劫持的利弊在哪呢?
劫持的產生
近年來隨著網上購物、直播、物聯網、共享經濟、人工智能等不斷深入我們的生活,互聯網行業取得飛速的發展。根據***的第40期《中國互聯網發展統計報告》顯示,截止2017年6月,中國互聯網用戶已經達到7.51億,占全球網民的1/5。隨之而來的是網絡流量的不斷增加,目前中國的國際網絡出口的帶寬已經高達8T,而國內用戶產生的網絡流量要遠遠大于這個數字。與之相對應的是中國復雜的網絡環境。除了電信、聯通、移動是比較大的網絡接入廠商,此外包含長城寬帶、鵬博士、教育網、科技網、廣電等等不少于20多家的小運營商。而且各個省市是相互獨立運營。這就會導致網絡出現跨網、跨運營商的情況會特別多,基本上很難避免。而各個運營商之間的出口帶寬不盡相同,這很能是成為網絡高峰的瓶頸。同時這種大量跨網訪問的流量,在運營商之間會產生一筆很大的結算費用。也就是說運營商之間的互通是需要收費的。
作為運營商,面對這么大的帶寬流量。該如何保障用戶體驗,減小自身成本呢。于是,他們找到了網絡劫持的方案。
劫持的原理
運營商劫持大致分為兩種方式:
- DNS強制解析的方式
- 訪問請求的302跳轉。
DNS強制解析是通過修改運營商的本地DNS記錄,來引導用戶流量到緩存服務器。工作的方式如下:
- 用戶通過域名發起訪問請求;
- 請求通過本地DNS進行解析;
- 運營商DNS設置強制解析策略;即所有該域名的請求都解析到事先寫好的服務器上;
- 終端用戶到劫持服務器交互訪問;
- 劫持服務器如果有需要的訪問內容,則直接返回響應給用戶;如果沒有,則去源站同步內容。
302跳轉的方式和DNS強制解析的方式主要在引流的方式上有所區別。內容緩存是通過監控網絡出口的流量,分析判斷哪些內容是可以進行劫持處理的。再對劫持的內存發起302跳轉的回復,引導用戶獲取內容。其需要對上行的請求流量進行端口鏡像或者分光處理。可以理解成復制一份上行的流量信息 。工作的方式如下:
- 終端用戶發起訪問請求;
- 流量通過網絡出口對外發起訪問;
- 訪問流量被鏡像一份給劫持系統的DPI設備;
- 4.DPI對流量進行分析判斷,比如http get、80端口等數據
- 緩存系統判斷是否熱點資源,比如連續請求5次的相同內容;
- 給用戶發送響應請求,告訴客戶本地即是客戶需要訪問的內容;
- 由于本地的緩存系統離客戶更近,所以客戶更早收到緩存系統的響應;
- 用戶和本地的緩存系統建立網絡交互,源站的響應回來的晚,會自動斷開;
- 如果本地有緩存內容,則給用戶響應內容,如果本地沒有,會計算訪問次數。當達到響應的內容時。
劫持的影響
從兩種運營商緩存的特點來看,二者都是通過獲取用戶的數據流量,引導用戶訪問內容緩存的服務器。區別在于引導用戶的方式,DNS強制解析是通過修改域名解析記錄,強制將域名下的所有請求引導到劫持服務器上。這種方式簡單粗暴,也容易造成很多問題。比如域名下有動態內容,也會被緩存下來。這樣會造成登錄的串號的問題。緩存的內容更新不及時,訪問的都是老內容。這也是很多用戶所不能接受的地方。一些冷門資源的緩存,會造成存儲的浪費。流量劫持的方式需要鏡像用戶流量,進行分析判斷。緩存一些系統判斷是可以緩存的熱點內容。DNS強制解析主要針對圖片,302跳轉主要針對下載文件,音視頻等大文件。
運營商應用劫持系統可以帶來的好處是:
- 減少跨網傳輸的訪問,減少運營商之間的網間費用結算。國內各個地區、運營商都是獨立運營的,日常互聯產生的流量是需要進行費用結算的。而這筆費用其實是一筆龐大的開銷,而且需要持續結算。
- 大多數運營商之間的網絡出口都在幾十至幾百G不等,內容緩存系統可以有效減小網絡高峰時出口帶寬的壓力,這樣既可減少對互通網絡的擴容。減少網絡建設的費用。
- 由于緩存系統可以支持本地化服務,在一定程度上也可以達到加快網絡訪問的目的,提升用戶體驗。
由于運維系統的人員不可能及時獲取到劫持內容的更新,或者對劫持的內容做其他的,壞處是:
- 經常訪問到過期的內容,文件更新緩慢。導致獲取不到自己想要的信息。
- 跳轉到其他網站頁面,或者被插入牛皮癬廣告。
為了減少運營商緩存和劫持帶來的影響,目前很多企業開始使用HTTPS的方式。包括蘋果公司之前要求所有的域名必須是HTTPS的,那么HTTPS能從根本上解決這類的問題嗎?通過上面的分析,很顯然并不能有效的得到解決。https因為使用了加解密的手段,保證內容被篡改的可能性被降低,但是從運營商劫持的原理上來說,并不能有效的降低被劫持的可能性。
【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】