日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
流量劫持攻擊之鏈路劫持剖析

0x00 前言

為青州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及青州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、青州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

鏈路劫持屬于流量劫持攻擊的一種,在電商領(lǐng)域較為常見,網(wǎng)絡(luò)上也有不少案例。本文作者將會結(jié)合公司實(shí)際發(fā)生的案例來簡要剖析鏈路劫持有關(guān)技術(shù)。由于作者水平有限,見解淺顯在所難免,望大牛勿噴,如有描述不當(dāng)之處望各路看官批評指正。

0x01 劫持案例分析

案例現(xiàn)象描述:

有用戶反饋訪問公司部分業(yè)務(wù)的URL時(shí)被重定向至公司其他業(yè)務(wù)的URL,導(dǎo)致用戶無法請求所需的服務(wù),嚴(yán)重影響了用戶體驗(yàn)以及用戶利益。我們第一時(shí)間通過遠(yuǎn)控的方式復(fù)現(xiàn)了上述現(xiàn)象,并及時(shí)抓取了相關(guān)數(shù)據(jù)包以供分析,當(dāng)然前期也采取了用戶電腦殺毒、開發(fā)者工具分析等方式排除了用戶端個(gè)人原因的可能性。從圖1來看,初步判斷是運(yùn)營商某員工所為,意欲通過流量重定向來獲取非法的流量分成,啥意思呢,被劫持的該業(yè)務(wù)的流量要經(jīng)過聯(lián)盟的該賬戶spm,使得公司再付費(fèi)給聯(lián)盟,歸根結(jié)底還是為了盈利。

圖1

案例問題追蹤:

通過分析抓取的樣本數(shù)據(jù)發(fā)現(xiàn),數(shù)據(jù)包在傳輸過程中出現(xiàn)異常TTL,目標(biāo)機(jī)的正常TTL為51如圖2。

圖2

這里出現(xiàn)異常TTL值116和114,并且兩個(gè)包的ID(Identification)值相同,均為25576,如圖3和圖4,明顯是偽造的包。

圖3

圖4

另外服務(wù)器banner信息也發(fā)現(xiàn)了異常情況,公司提供的Server是Tengine的,網(wǎng)站編寫語言是Asp.Net的,在響應(yīng)頭中應(yīng)該能看到,而異常響應(yīng)頭部無此信息,如圖5所示:

圖5

綜上判斷,中間鏈路發(fā)生了劫持。劫持者應(yīng)該是利用在運(yùn)營商內(nèi)部的便利條件,在網(wǎng)關(guān)路由器上添加嗅探程序,嗅探明文HTTP請求數(shù)據(jù)包,拿到要劫持的數(shù)據(jù)包之后,馬上給請求者返回HTTP response(302 到其他 url),導(dǎo)致用戶無法訪問正常URL。

劫持意圖分析:

通過tcp流跟蹤,發(fā)現(xiàn)劫持行為指向了一個(gè)spm=s-32528773787910-pe-f-801.psy_**2的聯(lián)盟賬戶,如圖6、圖7所示,目的在于通過付費(fèi)流量來獲取利潤,這也驗(yàn)證了剛開始的初步判斷。

spm可以理解為跟蹤引導(dǎo)成交效果數(shù)據(jù)的解決方案,可以用來評估某一個(gè)站點(diǎn)上某一頻道的訪問和點(diǎn)擊效果,以及后續(xù)引導(dǎo)和成交情況。

圖6

圖7

劫持影響:

用戶無法正常訪問所需業(yè)務(wù),且致公司流量及利益損失。

解決措施:

簡單粗暴的應(yīng)對措施:封賬號,相關(guān)部門投訴,當(dāng)然投訴的效果不能抱太大希望。

鏈路劫持其他案例

京東:http://www.freebuf.com/vuls/62561.html

唯品會:http://www.jianshu.com/p/0397a89057a9

Github:http://www.360doc.com/content/16/0208/02/6427260_533236263.shtml

新浪:WooYun: 新浪博客疑似被流量劫持攻擊Github(目標(biāo)紐約時(shí)報(bào)和某墻倉庫) ">WooYun: 新浪博客疑似被流量劫持攻擊Github(目標(biāo)紐約時(shí)報(bào)和某墻倉庫)

搜狐:WooYun: 搜狐視頻疑似流量劫持攻擊Github "> WooYun: 搜狐視頻疑似流量劫持攻擊Github

百度:http://cn.nytimes.com/china/20150331/c31hack/(需翻墻)

0x02 鏈路劫持概述

鏈路層劫持是指第三方(可能是運(yùn)營商、黑客)通過在用戶至服務(wù)器之間,植入惡意設(shè)備或者控制網(wǎng)絡(luò)設(shè)備的手段,偵聽或篡改用戶和服務(wù)器之間的數(shù)據(jù),達(dá)到竊取用戶重要數(shù)據(jù)(包括用戶密碼,用戶身份數(shù)據(jù)等等)的目的。鏈路層劫持最明顯的危害就是帳號、密碼被竊取。最常見的就是某些設(shè)備實(shí)現(xiàn)的對非法站點(diǎn)的訪問攔截,以及一些地區(qū)運(yùn)營商的網(wǎng)頁植入廣告行為。

鏈路劫持的原理就是運(yùn)營商(也可能是黑客)在用戶訪問網(wǎng)站的時(shí)候進(jìn)行竊聽,獲取用戶訪問的目的ip后,然后以這個(gè)ip為source-ip冒充網(wǎng)站給用戶響應(yīng),通常響應(yīng)中會插入一段JS代碼,這段代碼可能會讓用戶去get一些非真實(shí)網(wǎng)站資源,最終可能造成真實(shí)頁面被插入廣告,被蒙層,甚至整頁面被替換,嚴(yán)重影響用戶體驗(yàn)以及企業(yè)形象。由于鏈路劫持可能通常發(fā)生在last-mile,而last-mile被運(yùn)營商牢牢控住,所以這對監(jiān)測以及解決問題帶來了巨大的挑戰(zhàn)。劫持原理大概如圖8所示。

圖8

目前發(fā)現(xiàn)的TCP鏈路劫持攻擊一般有兩種形式:中斷訪問型(分為單向發(fā)包和雙向發(fā)包)和替換頁面型。

中斷訪問型常見于阻止用戶訪問某些網(wǎng)站,如某些設(shè)備禁止用戶訪問某些站點(diǎn)、某地運(yùn)營商的禁止ADSL多終端上網(wǎng)功能。其原理就是偽造服務(wù)端給用戶發(fā)RST包阻止TCP連接的建立(單向發(fā)包)。某些設(shè)備做得比較狠,在冒充服務(wù)端給用戶發(fā)RST包的同時(shí)也冒充用戶給服務(wù)端發(fā)RST包(雙向發(fā)包)。

替換頁面型常見于運(yùn)營商植入廣告,也有篡改正常網(wǎng)頁進(jìn)行SEO、騙流量的。最惡劣的莫過于釣魚,如2011年出現(xiàn)過的Gmail釣魚事件以及一些不為人知的釣魚事件。原理也簡單,就是在一個(gè)HTTP請求后偽造服務(wù)端的HTTP響應(yīng)給客戶端。

0x03 鏈路劫持判斷依據(jù)

TTL:表現(xiàn)為TCP 報(bào)的 TTL 不一致甚至抖動很大。一種情況是跟正常包的ttl相差明顯,就像以上本案例中的那樣;另一種情況是通過ttl來判斷操作系統(tǒng)類型,進(jìn)而間接判斷數(shù)據(jù)包是否有異常。

Identification:出現(xiàn)不符合 RFC 標(biāo)準(zhǔn)的情況。對于給定地址和協(xié)議的ip包來說,它的identification應(yīng)該是公差為1的單調(diào)遞增數(shù)列。每一個(gè)IP封包都有一個(gè)16位的唯一識別碼?當(dāng)程序產(chǎn)生的數(shù)據(jù)要通過網(wǎng)絡(luò)傳送時(shí)都會被拆散成封包形式發(fā)送,當(dāng)封包要進(jìn)行重組的時(shí)候這個(gè)ID就是依據(jù)了?標(biāo)識字段唯一地標(biāo)識主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)?通常每發(fā)送一份消息它的值就會加1?

Banner信息:與已知信息矛盾,如本案例中。

TTL:TTL是 Time To Live的縮寫,該字段指定IP包被路由器丟棄之前允許通過的最大網(wǎng)段數(shù)量。TTL是IPv4包頭的一個(gè)8 bit字段。

雖然TTL從字面上翻譯,是可以存活的時(shí)間,但實(shí)際上TTL是IP數(shù)據(jù)包在計(jì)算機(jī)網(wǎng)絡(luò)中可以轉(zhuǎn)發(fā)的最大跳數(shù)。TTL字段由IP數(shù)據(jù)包的發(fā)送者設(shè)置,在IP數(shù)據(jù)包從源到目的的整個(gè)轉(zhuǎn)發(fā)路徑上,每經(jīng)過一個(gè)路由器,路由器都會修改這個(gè)TTL字段值,具體的做法是把該TTL的值減1,然后再將IP包轉(zhuǎn)發(fā)出去。如果在IP包到達(dá)目的IP之前,TTL減少為0,路由器將會丟棄收到的TTL=0的IP包并向IP包的發(fā)送者發(fā)送 ICMP time exceeded消息。

TTL的主要作用是避免IP包在網(wǎng)絡(luò)中的無限循環(huán)和收發(fā),節(jié)省了網(wǎng)絡(luò)資源,并能使IP包的發(fā)送者能收到告警消息。

 
 
 
 
  1. //IP部首定義  
  2. typedef struct _ip_hdr  
  3. {  
  4.     unsigned char version : 4; //版本  
  5.     unsigned char ihl : 4;     //首部長度  
  6.     unsigned char tos;       //服務(wù)類型  
  7.     unsigned short tot_len;  //總長度  
  8.     unsigned short id;       //標(biāo)志  
  9.     unsigned short frag_off; //分片偏移  
  10.     unsigned char ttl;       //生存時(shí)間  
  11.     unsigned char protocol;  //協(xié)議  
  12.     unsigned short chk_sum;  //檢驗(yàn)和  
  13.     in_addr src_addr;  //源IP地址  
  14.     in_addr dst_addr;  //目的IP地址  
  15. }ip_hdr; 

不同的操作系統(tǒng)環(huán)境TTL值一般是固定的一個(gè)數(shù),常見的是16的倍數(shù),然后每經(jīng)過一個(gè)節(jié)點(diǎn)減1。一般來說服務(wù)器不會修改默認(rèn)的TTL值,例如Linux默認(rèn)的TTL為64,Windows默認(rèn)的TTL為128。

下面是默認(rèn)操作系統(tǒng)的TTL:

WINDOWS NT/2000 TTL:128
WINDOWS 95/98 TTL:32
UNIX TTL:255
LINUX TTL:64
WIN7 TTL:64

0x04 解決方案

(1)HTTPS

https是目前應(yīng)對鏈路劫持用的較多的解決方案。https是加密協(xié)議,我們隨便抓個(gè)http包,發(fā)現(xiàn)http包里面的所有東西都是明文的,這樣就會被監(jiān)聽,而https協(xié)議是加密的。

但是光加密還不夠,因?yàn)橹皇莂pplication data被加密了,網(wǎng)絡(luò)層的信息都沒有被加密,邪惡勢力依然可以用數(shù)據(jù)包的目的ip作為源ip響應(yīng)用戶。https還有另一大特點(diǎn)是要驗(yàn)證數(shù)字證書,為了確??蛻舳嗽L問的網(wǎng)站是經(jīng)過CA驗(yàn)證的可信任的網(wǎng)站。所以這就幾乎徹底杜絕了鏈路劫持的可能。

但是https也不是如此完美,雖然https解決了諸多安全問題,但是對性能也有著比較大的影響。一是用戶要從http跳轉(zhuǎn)到https,并且要多幾次 TLS的握手,這會消耗一定的時(shí)間;二是服務(wù)器的壓力也會增加。除此之外如果使用全站的https,所有頁面里面的嵌入資源都要改成https,APP的程序也要進(jìn)行相應(yīng)的修改,CDN的所有節(jié)點(diǎn)也必須都支持https并且導(dǎo)入證書。所以全站https并不是一件容易的事情,國外的Google、 Facebook、Twitter早已支持全站https,但目前國內(nèi)大多數(shù)公司都沒有采用全站https的方式。全站https應(yīng)該是未來互聯(lián)網(wǎng)的趨勢,關(guān)于全站https請參考資料【5】,這里不詳細(xì)闡述了。

(2)加強(qiáng)監(jiān)控與檢測

目前網(wǎng)上也有一些鏈路劫持檢測方法,如使用libpcap判斷鏈路層劫持,其原理是在鏈路層劫持的設(shè)備缺少仿造協(xié)議頭中ttl值的程序(或者說,偽造流量要優(yōu)先真實(shí)流量到達(dá)客戶電腦,所以沒有機(jī)會去偽造ttl值)。電腦每收到一個(gè)數(shù)據(jù)包,便交給程序,如果判斷某一IP地址流量的ttl值與該IP前一次流量的ttl值不同且相差5以上,便判定此次流量為在鏈路層中偽造的。有關(guān)代碼請參考【6】。

(3)其他/產(chǎn)品

目前騰訊做的比較領(lǐng)先,有鏈路劫持檢測的相關(guān)發(fā)明專利。

0x05總結(jié)

鏈路層劫持較為底層,而且很多涉及運(yùn)營商行為,所以不可能從根本上來防止(或者找到運(yùn)營商,或者抓住黑客,當(dāng)然運(yùn)營商你是戰(zhàn)勝不了的你懂得)。個(gè)人認(rèn)為應(yīng)對鏈路劫持一般可以考慮幾個(gè)維度:業(yè)務(wù)層面、技術(shù)層面。所有的安全都是為業(yè)務(wù)服務(wù)的,在確保業(yè)務(wù)的前提下,做好安全防護(hù)措施。最重要的是技術(shù)層面加強(qiáng)有效檢測、監(jiān)控,包括對有關(guān)攻擊技術(shù)的研究、對日志流量等數(shù)據(jù)的分析。當(dāng)然,對企業(yè)來講,我們只能夠盡量做好自身,對于我們不可控的因素往往無能為力??傊?,廣域網(wǎng)一點(diǎn)都不安全,所以敏感信息傳輸一定要加密,還要高強(qiáng)度加密。

就到這里,請各位看官批評指正。

0x06 參考文獻(xiàn)

【1】:http://security.tencent.com/index.php/blog/msg/10

【2】:http://www.freebuf.com/vuls/62561.html

【3】:http://drops.wooyun.org/tips/11682

【4】:http://drops.wooyun.org/tips/127

【5】:http://blog.jobbole.com/78042/

【6】:http://3.1415926.science/%E7%BC%96%E7%A8%8B%E7%AE%97%E6%B3%95/2015/08/02/libpcap%E6%A3%80%E6%B5%8B%E9%93%BE%E8%B7%AF%E5%B1%82%E5%8A%AB%E6%8C%81/


新聞名稱:流量劫持攻擊之鏈路劫持剖析
本文網(wǎng)址:http://m.5511xx.com/article/cccjhdj.html