主頁 > 知識庫 > 針對某電商網(wǎng)站流量劫持案例分析與思考

針對某電商網(wǎng)站流量劫持案例分析與思考

熱門標簽:福州公司外呼系統(tǒng)加盟 地圖標注不顯示 周口權(quán)威的不封卡電話外呼系統(tǒng) 河北crm外呼系統(tǒng)平臺 金蘭灣地圖標注app 南京400電話辦理到易號網(wǎng) 百應(yīng)電話機器人價值 河南語音外呼系統(tǒng)平臺 外呼系統(tǒng)2273649Z空間
前言

自騰訊與京東建立了戰(zhàn)略合作關(guān)系之后,筆者網(wǎng)上購物就首選京東了。某天在家里訪問京東首頁的時候突然吃驚地發(fā)現(xiàn)瀏覽器突然跳到了第三方網(wǎng)站再回到京東,心里第一個反應(yīng)就是中木馬了。

竟然有這樣的事,一定要把木馬大卸八塊。

原因排查

首先在重現(xiàn)的情況下抓包,京東官網(wǎng)確實返回了一段JavaScript讓瀏覽器跳轉(zhuǎn)到了yiqifa.com。

下圖是應(yīng)用層的抓包。

服務(wù)器返回的代碼導(dǎo)致跳轉(zhuǎn),基本可以排除本地木馬,推測是網(wǎng)絡(luò)或者服務(wù)器的問題。根據(jù)筆者的經(jīng)驗,這種情況很大可能是鏈路上的流量劫持攻擊。當(dāng)然也不能排除京東服務(wù)器被黑的情況。

繼續(xù)排查。應(yīng)用層已經(jīng)不行了,我們要用Wireshark抓網(wǎng)絡(luò)層的包。

從Wireshark結(jié)果可以看到,網(wǎng)絡(luò)上出現(xiàn)了兩個京東的HTTP響應(yīng)。第一個先到,所以瀏覽器執(zhí)行里面的JavaScript代碼轉(zhuǎn)到了yiqifa.com;第二個HTTP響應(yīng)由于晚到,被系統(tǒng)忽略(Wireshark識別為out-of-order)。

兩個京東的HTTP響應(yīng)包,必然一真一假??旖沂菊嫦嗔?。

再來看看兩個HTTP響應(yīng)的IP頭。

第一個包TTL值是252,第二個包TTL值是56,而之前TCP三次握手時京東服務(wù)器的TTL值是56,故可以判斷先到的包是偽造的,真的包晚到而被系統(tǒng)忽略。

至此,確認是鏈路上的劫持。

攻擊方式

繼續(xù)分析偽造的數(shù)據(jù)包。

偽造包的TTL值是252,也就是說它的原始TTL值應(yīng)該是255(大于252的系統(tǒng)默認TTL值只能是255了,一般不會修改),也就表明攻擊者的設(shè)備離我隔了3個路由;而正常的京東網(wǎng)站的HTTP響應(yīng)TTL值是56,隔了8個路由。物理上假的設(shè)備離我近,所以偽造的HTTP響應(yīng)會先到——比較有意思的是,筆者實際監(jiān)測時候發(fā)現(xiàn)也有偽造包晚到導(dǎo)致劫持失敗的情況。

推測是一個旁路設(shè)備偵聽所有的數(shù)據(jù)包,發(fā)現(xiàn)請求京東首頁的HTTP請求就立即返回一個定制好的HTTP響應(yīng)。大致的攻擊示意圖如下。

當(dāng)時筆者推測攻擊者在鏈路上大動干戈應(yīng)該不會只針對一個網(wǎng)站,于是就訪問了下易迅、淘寶、天貓這些電商網(wǎng)站,結(jié)果發(fā)現(xiàn)易迅也受到同樣的攻擊??雌饋磉@次流量劫持的目的是將電商網(wǎng)站流量導(dǎo)給返利聯(lián)盟,通過返利聯(lián)盟獲得當(dāng)前用戶成交金額的返利。

基本確認運營商有問題,但是無法確認是運營商官方故意的還是遭到黑客攻擊或者是內(nèi)部人士偷偷搞的。

攻擊源定位

來看看當(dāng)時的路由結(jié)果:

如果按初始TTL值為255來算,HTTP包到達本機后為252,推算出經(jīng)過了3(255-252)個路由,出問題的地方就在第4個路由附近,也就是這里的119.145.220.86(屬于深圳電信)。

當(dāng)然了,雖然基本可以確認是第四個路由附近的問題(筆者連續(xù)幾天抓包,偽造的HTTP響應(yīng)包TTL值一直是252),但是不排除設(shè)備故意構(gòu)造一個初始TTL值(比如設(shè)置為254)來增加追查難度,為了嚴謹?shù)闹螌W(xué)態(tài)度及避免被攻擊者迷惑,所以證據(jù)要坐實了。

定位比較簡單,既然攻擊設(shè)備是旁路偵聽數(shù)據(jù)包,可以推測它是基于包而非狀態(tài)的,我們構(gòu)造被偵聽的數(shù)據(jù)包(也就是直接發(fā)出訪問京東首頁的HTTP請求TCP包,不需要三次握手)多次發(fā)送,TTL值從1開始遞增,精確地傳遞數(shù)據(jù)包到每一個路徑上,直到出現(xiàn)偽造響應(yīng)——沒有問題的位置是不會有響應(yīng)的,第一個出現(xiàn)偽造響應(yīng)的位置就是出問題的位置。

這個時候就需要一個數(shù)據(jù)包構(gòu)造工具了,基于Python的Scapy或者Windows下的XCAP都行。

于是一路發(fā)過去,TTL值等于4的時候偽造的響應(yīng)包出現(xiàn)了——確認就是第四跳路由出問題了,同時119.145.55.14回復(fù)了Time-to-live Exceeded的ICMP包。

有了充分證據(jù),于是整理了一個圖文并茂的文檔通過騰訊安全應(yīng)急響應(yīng)中心向深圳電信報障。

一天后得到運營商答復(fù):“經(jīng)核查,深圳本地沒有進行推送,經(jīng)網(wǎng)上查詢有木馬或病毒會導(dǎo)致此現(xiàn)象,非電信網(wǎng)內(nèi)問題,請進行殺毒后再測試,謝謝”。

不過從當(dāng)天晚上起,我再在ADSL環(huán)境測試,就沒有發(fā)現(xiàn)這種流量劫持現(xiàn)象了。

攻防之道

鏈路劫持對企業(yè)和用戶都是很麻煩的,影響用戶體驗,還泄漏敏感信息,而且還是分地域的,檢測和防御起來也相對困難。 

鏈路劫持已經(jīng)被某些人運用的爐火純青。比如近期業(yè)界發(fā)現(xiàn)部分區(qū)域的百度聯(lián)盟廣告腳本被植入惡意JavaScript去DDoS攻擊GitHub。

騰訊歷史上也遇到過多起鏈路劫持攻擊,目的性很強,大部分是插廣告(少部分是釣魚和掛馬),攻擊手法各種各樣,有運營商的區(qū)域DNS劫持和鏈路劫持、運營商區(qū)域DNS Server遭到緩存投毒攻擊(利用CVE-2007-2926,非常經(jīng)典)、開發(fā)商在路由軟件中植入劫持代碼、CDN與源通信遭到ARP攻擊、用戶PC本地木馬。當(dāng)然,這些目前都已經(jīng)解決了,也在持續(xù)監(jiān)測中。   

為了對抗鏈路劫持,很多騰訊業(yè)務(wù)也都使用了HTTPS或者私有協(xié)議,比如QQ Web登錄、QQ郵箱、理財通、Web微信、微信公眾平臺等。

DNS劫持攻擊相對容易檢測和防護。

檢測方面,用分布的點去進行DNS查詢即可,發(fā)現(xiàn)運營商DNS結(jié)果不對就可以推動修復(fù)。

防護方面,一種方案是使用DNSSEC(DNS Security Extensions);騰訊、114DNS還研發(fā)了自己的方案——HttpDNS。HttpDNS不使用DNS協(xié)議而是通過HTTP協(xié)議從HttpDNS后端服務(wù)器獲取域名對應(yīng)的IP。當(dāng)然,類似的思路我們可以實現(xiàn)一堆了:HTTPSDNS、TCPDNS、UDPDNS、ICMPDNS……

鏈路劫持相對復(fù)雜。    

檢測方面,如有客戶端,可以依靠客戶端進行檢測;如果沒有客戶端,就具體情況具體分析了,可以在網(wǎng)頁里用JavaScript檢測頁面元素,甚至可以在全國重要城市租用ADSL探測。

另外,在機房的流量監(jiān)控設(shè)備里會發(fā)現(xiàn)異常:比如這個案例就會出現(xiàn)用戶接收了HTTP響應(yīng)后沒有回應(yīng),然后URL中又帶了yiqifa.com的關(guān)鍵字重新訪問主頁的情況;再比如某些設(shè)備的HTTP阻斷會向服務(wù)器發(fā)特定的RST包(我見過發(fā)IP Id為8888的案例)。

防護方面,這個案例只是偽造數(shù)據(jù)包,并沒有實施阻斷,所以只要客戶端的安全軟件把疑似出問題的包(一次TCP會話中TTL值相差很大或者IPId突然跳變)攔截就可以防御。為了避免誤殺,可以攔截并休眠1秒,如果沒有同樣的數(shù)據(jù)包過來再放行。

有自己客戶端的可以走自己的私有協(xié)議,網(wǎng)站類就困難一些,部署HTTPS吧。百度主頁近期就使用了HTTPS,不過大部分用戶還是不習(xí)慣在瀏覽器里輸“https://”,所以還是存在被劫持的風(fēng)險(類似的工具有SSLStrip)。當(dāng)然了,對抗也會隨之升級的,比如這次發(fā)現(xiàn)的GMail證書偽造事件。    

在HTTPS尚不能大規(guī)模普及的情況下,是否可以給用戶或者終端軟件提供一個規(guī)避鏈路劫持的安全服務(wù)呢?似乎是可以的。下圖是筆者構(gòu)想的一個簡單的通過本地代理軟件加云服務(wù)的方式規(guī)避不安全ADSL鏈路的解決方案。

一些瀏覽器的云加速也客觀上實現(xiàn)了這個功能。對于安全性不確定的公共WiFi,也可以用類似的方法來規(guī)避風(fēng)險。

后記

希望本文對你有幫助。

標簽:呼和浩特 長治 自貢 臺州 南京 瀘州 贛州 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《針對某電商網(wǎng)站流量劫持案例分析與思考》,本文關(guān)鍵詞  針對,某,電商,網(wǎng)站,流量,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《針對某電商網(wǎng)站流量劫持案例分析與思考》相關(guān)的同類信息!
  • 本頁收集關(guān)于針對某電商網(wǎng)站流量劫持案例分析與思考的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章