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