中文名 | 鏈路層劫持 | 所屬學(xué)科 | 計(jì)算機(jī) |
---|
隨著應(yīng)用安全的發(fā)展,大家都比較關(guān)注應(yīng)用安全漏洞,其實(shí)在應(yīng)用層之下的傳輸層也有很多安全風(fēng)險(xiǎn),而且這些安全風(fēng)險(xiǎn)正在被廣泛利用。比如今天要給大家介紹的TCP鏈路劫持攻擊。
TCP鏈路劫持其實(shí)就是指網(wǎng)絡(luò)鏈路上偵聽(tīng)、偽造TCP包,達(dá)到控制目標(biāo)網(wǎng)絡(luò)鏈路的行為。最常見(jiàn)的就是某些設(shè)備實(shí)現(xiàn)的對(duì)非法站點(diǎn)的訪(fǎng)問(wèn)攔截,以及一些地區(qū)運(yùn)營(yíng)商的網(wǎng)頁(yè)植入廣告行為。
因?yàn)閺V域網(wǎng)的鏈路劫持影響面大,一般會(huì)影響一個(gè)地區(qū)甚至是全國(guó),所以本文重點(diǎn)討論廣域網(wǎng)的TCP鏈路劫持,局域網(wǎng)的劫持如ARP攻擊不在討論范圍。
發(fā)現(xiàn)的TCP鏈路劫持攻擊一般有兩種形式:中斷訪(fǎng)問(wèn)型(分為單向發(fā)包和雙向發(fā)包)和替換頁(yè)面型。
中斷訪(fǎng)問(wèn)型常見(jiàn)于阻止用戶(hù)訪(fǎng)問(wèn)某些網(wǎng)站,如某些設(shè)備禁止用戶(hù)訪(fǎng)問(wèn)某些站點(diǎn)、某地運(yùn)營(yíng)商的禁止ADSL多終端上網(wǎng)功能。其原理就是偽造服務(wù)端給用戶(hù)發(fā)RST包阻止TCP連接的建立(單向發(fā)包)。某些設(shè)備做得比較狠,在冒充服務(wù)端給用戶(hù)發(fā)RST包的同時(shí)也冒充用戶(hù)給服務(wù)端發(fā)RST包(雙向發(fā)包)。
替換頁(yè)面型常見(jiàn)于運(yùn)營(yíng)商植入廣告,也有篡改正常網(wǎng)頁(yè)進(jìn)行SEO、騙流量的。筆者見(jiàn)過(guò)最?lèi)毫拥哪^(guò)于釣魚(yú),如2011年出現(xiàn)過(guò)的Gmail釣魚(yú)事件以及一些不能告訴你的釣魚(yú)事件。原理也簡(jiǎn)單,就是在一個(gè)HTTP請(qǐng)求后偽造服務(wù)端的HTTP響應(yīng)給客戶(hù)端。
一次典型的TCP鏈路劫持替換頁(yè)面,我們可以看到,TCP三次握手完成后,HTTP請(qǐng)求包發(fā)送后,客戶(hù)端收到兩個(gè)HTTP響應(yīng)包,因?yàn)閭卧斓牡谝粋€(gè)包(10號(hào))先到,所以第二個(gè)正常的HTTP響應(yīng)包(13號(hào))被客戶(hù)端忽略了。很明顯,在網(wǎng)絡(luò)上有一個(gè)設(shè)備,偵聽(tīng)整個(gè)會(huì)話(huà),當(dāng)匹配某個(gè)特征就搶先發(fā)包劫持會(huì)話(huà)。
這些利用鏈路劫持進(jìn)行的彈窗廣告、“技術(shù)問(wèn)題”產(chǎn)生的誤攔截、植入代碼不慎將頁(yè)面弄亂、甚至是釣魚(yú)等將會(huì)損害用戶(hù)利益。筆者跟鏈路劫持的“不解之緣”就因此而起。
要解決鏈路劫持先要搞清楚是否是鏈路劫持,如是則出問(wèn)題的大概位置在哪里。鏈路劫持是區(qū)域性的,一般來(lái)講某地區(qū)用戶(hù)集中投訴,就可以聯(lián)系用戶(hù)調(diào)查了。用戶(hù)往往不懂Wireshark抓包,還要遠(yuǎn)程協(xié)助,如果網(wǎng)速慢就是悲劇……各種心酸且按下不表。
抓到可疑包之后關(guān)注兩個(gè)關(guān)鍵點(diǎn):TTL值和IP Id(Identification)。根據(jù)實(shí)際觀(guān)測(cè),偽造的TCP包的TTL值和Id是不符合邏輯的。
真實(shí)包的TTL是53,Id是按順序自增的,而偽造的包的TTL是64,Id始終是0。還有,筆者也見(jiàn)過(guò)某地運(yùn)營(yíng)商禁止ADSL多終端上網(wǎng)功能會(huì)偽造Id值恒為8888的RST包。
通過(guò)偽造的TTL值就可以大致定位偵聽(tīng)設(shè)備的位置。利用偽造的數(shù)據(jù)包的TTL值加上當(dāng)時(shí)用戶(hù)的路由即可定位:數(shù)據(jù)包每經(jīng)過(guò)一個(gè)路由TTL值就會(huì)減一,我們找到假的包,看他的TTL(一般初始發(fā)出的TTL是256或128或64)減了多少,反推回去就找到出問(wèn)題的位置了。
剛剛那個(gè)截圖,偽造的的TCP包TTL值是64,也就是可以推測(cè)出鏈路劫持就發(fā)生在局域網(wǎng)內(nèi)。的確如此,這個(gè)case是一個(gè)路由器軟件進(jìn)行鏈路劫持的案例。
有個(gè)問(wèn)題,如果攻擊者聰明一些,偽造包定制一個(gè)TTL值,就會(huì)導(dǎo)致我們難以精確定位。比如某些設(shè)備會(huì)發(fā)三次RST包,每次的TTL都不一樣。注意,我說(shuō)的“難以定位”并非“不能定位”,還是有辦法的,需要?jiǎng)觿?dòng)腦子。
壞人是很多的,不能每次都被動(dòng)等待用戶(hù)投訴,如何主動(dòng)發(fā)現(xiàn)鏈路劫持呢?
客戶(hù)端訪(fǎng)問(wèn)目標(biāo)站點(diǎn)的時(shí)候,同一個(gè)TCP會(huì)話(huà)的TTL值發(fā)生較大變動(dòng),就可以判定為疑似劫持。以下python代碼就是一個(gè)利用Scapy檢測(cè)TCP鏈路劫持的示例:
#!/bin/python# # import sysfrom scapy.all import * conf.verb=0print "TCP Hijacking Delector by lake2"print "[ ] Sniffing ...."ip_arr = {}while 1: a=sniff( filter="tcp and src host not 10.26.234.44", count=50) for b in a: ip_src = b.sprintf(r"%IP.src%") ip_ttl = b.sprintf(r"%IP.ttl%") if ip_arr.has_key(ip_src): c = int(ip_ttl) - int(ip_arr[ip_src]) if abs(c) > 4: print ip_src " has been hijacking !!! debug info : " str(ip_ttl) " <-> " str(ip_arr[ip_src]) else: ip_arr[ip_src] = ip_ttl print "=>"
檢測(cè)到某些設(shè)備攔截筆者在Google搜索敏感關(guān)鍵字的鏈路劫持:
雙向RST的情況,部署在機(jī)房的IDS也可以發(fā)現(xiàn)端倪。
如果是替換頁(yè)面型攻擊,頁(yè)面hash或者HTML元素個(gè)數(shù)會(huì)有異常,這里也可以作為一個(gè)檢測(cè)點(diǎn)。
防范鏈路劫持就比較困難,畢竟攻擊者控制著網(wǎng)絡(luò)鏈路。不過(guò)并非不可能。
一是網(wǎng)站全程使用SSL。
再一個(gè)就是在客戶(hù)端或(和)服務(wù)器丟棄偽造的TCP包。比如前面說(shuō)到的單向中斷訪(fǎng)問(wèn)型攻擊,就可以丟棄包含偽造特征的TCP包(如Id為0或8888)。某些項(xiàng)目就是利用客戶(hù)端、服務(wù)端同時(shí)丟棄的方式來(lái)翻墻的。
最后,我們可以看到廣域網(wǎng)一點(diǎn)都不安全,所以敏感信息傳輸一定要加密,還要高強(qiáng)度加密;高端網(wǎng)頁(yè)最好有個(gè)校驗(yàn)機(jī)制;自動(dòng)升級(jí)的程序也一定要校驗(yàn)文件簽名。
從鏈路層劫持的原理來(lái)看,我們發(fā)現(xiàn)核心的問(wèn)題是:客戶(hù)端沒(méi)有辦法識(shí)別返回的應(yīng)答是否真的是服務(wù)器返回的,還是第三方返回的,所以簡(jiǎn)單的信任了第三方的應(yīng)答,丟棄了真正的應(yīng)答。所以只要對(duì)服務(wù)器本身進(jìn)行身份驗(yàn)證,就可以防止“誤接受”惡意應(yīng)答。
HTTPS技術(shù)就是為此種場(chǎng)景而生,通過(guò)一個(gè)權(quán)威機(jī)構(gòu),派發(fā)證明服務(wù)器合法身份的證書(shū),用戶(hù)的電腦通過(guò)檢查證書(shū)的合法性,來(lái)辨別服務(wù)器的真假(因?yàn)榈谌胶诳筒豢赡軅卧熳C書(shū))。
因此,HTTPS網(wǎng)站能有效防御鏈路層劫持。騰訊統(tǒng)一安全登錄就是用采用了HTTPS技術(shù),來(lái)防止鏈路層劫持。
光纖鏈路測(cè)試測(cè)的是一條主干光纖鏈路從起點(diǎn)(機(jī)房或前端)到小區(qū)拉入端的光纖的距離、鏈路衰減等指標(biāo),主要測(cè)試儀器以O(shè)TDR(光時(shí)域反射儀)為主。用戶(hù)光纜測(cè)試主要是測(cè)試進(jìn)入用戶(hù)的光終端的接收光功率,測(cè)試儀器...
請(qǐng)問(wèn):光纖鏈路系統(tǒng)測(cè)試 光纖測(cè)試的鏈路怎么計(jì)算
光纖測(cè)試的鏈路計(jì)算:有多少終端用戶(hù),算多少個(gè)鏈路測(cè)試。
光纖鏈路怎么計(jì)算?那些地方需要用光纖鏈路測(cè)試?
光纖鏈路就是光纖的每條通路。鏈路測(cè)試就是在兩端追根進(jìn)行收發(fā)測(cè)試,你的理解是對(duì)的。好多都是抽查測(cè)試的,不需要每根都測(cè)試哦 親
格式:pdf
大?。?span id="nkmiolk" class="single-tag-height">4.6MB
頁(yè)數(shù): 47頁(yè)
評(píng)分: 4.7
CH3-5ed數(shù)據(jù)鏈路層3-問(wèn)題與控制-3ed
格式:pdf
大?。?span id="qbx3jds" class="single-tag-height">4.6MB
頁(yè)數(shù): 未知
評(píng)分: 4.7
計(jì)算機(jī)網(wǎng)絡(luò)中交換機(jī)是在核心層、匯聚層、接入層起關(guān)鍵作用的設(shè)備,起到數(shù)據(jù)流量的承載運(yùn)輸任務(wù),在二層和三層協(xié)議上運(yùn)行,網(wǎng)絡(luò)安全離不開(kāi)交換機(jī)安全的設(shè)計(jì),本文著重討論了交換機(jī)在鏈路層的安全設(shè)計(jì),有效地將風(fēng)險(xiǎn)抵御在二層網(wǎng)絡(luò)邊界外,保護(hù)系統(tǒng)不受侵入。
當(dāng)上層協(xié)議請(qǐng)求組建FIS時(shí),傳輸層完成以下功能:
(1)根據(jù)FIS請(qǐng)求類(lèi)型收集FIS內(nèi)容;
(2)按照正確的順序存放FIS內(nèi)容;
(3)通知鏈路層需要傳輸?shù)膸?,并將FIS發(fā)往鏈路層;
(4)管理緩存/FIFO,通知鏈路進(jìn)行流控;
(5)接收來(lái)自鏈路層的幀接收應(yīng)答;
(6)對(duì)于上層請(qǐng)求,返回完成發(fā)送或錯(cuò)誤狀態(tài)。
當(dāng)從鏈路層接收到FIS時(shí),傳輸層提供以下功能:
(1)接收來(lái)自鏈路層的FIS;
(2)檢測(cè)FIS類(lèi)型;
(3)根據(jù)FIS類(lèi)型將FIS內(nèi)容分發(fā)到不同位置;
(4)對(duì)于主機(jī)端傳輸層,接收到FIS后可能需要組建一個(gè)FIS返回到設(shè)備端。
(5)對(duì)于上層請(qǐng)求,返回完成或錯(cuò)誤狀態(tài)。
3)鏈路層
鏈路層負(fù)責(zé)發(fā)送和接收幀,根據(jù)傳輸層的控制信號(hào)發(fā)送原語(yǔ),從物理層接收已經(jīng)轉(zhuǎn)換成控制信號(hào)的原語(yǔ)發(fā)送給傳輸層。鏈路層并不關(guān)注所傳輸幀的內(nèi)容。主機(jī)端和設(shè)備端的鏈路層狀態(tài)機(jī)相似,但如果兩端同時(shí)進(jìn)行發(fā)送,則設(shè)備端具有較高的優(yōu)先級(jí)。
當(dāng)傳輸層請(qǐng)求發(fā)送幀時(shí),鏈路層實(shí)現(xiàn)如下功能:
(1)與對(duì)等鏈路層進(jìn)行協(xié)商,避免主機(jī)和設(shè)備同時(shí)請(qǐng)求發(fā)送數(shù)據(jù)而造成沖突;
(2)向傳輸層數(shù)據(jù)(如SOFp、CRC、EOFp等)插入幀頭、幀尾和校驗(yàn)等信息;
(3)從傳輸層以雙字為單位接收數(shù)據(jù),并計(jì)算數(shù)據(jù)的CRC校驗(yàn),進(jìn)行8b/10b編碼、擾碼;
(4)傳輸幀,并根據(jù)對(duì)等鏈路層或者FIFO的請(qǐng)求數(shù)量進(jìn)行流量控制;
(5)接收對(duì)等鏈路層的幀接收信息,并向傳輸層報(bào)告?zhèn)鬏斖瓿苫蜴溌穼?、物理層傳輸錯(cuò)誤。
根據(jù)關(guān)于制止和防范非法劫持航空器行為的國(guó)際公約的規(guī)定,凡締約國(guó)都應(yīng)根據(jù)國(guó)際法和國(guó)內(nèi)法,采取一切必要和可能的措施,有效地防止危害航空安全的非法行為的發(fā)生,嚴(yán)厲懲罰和打擊犯罪行為。所以對(duì)旅客進(jìn)行安全檢查,是為了保障旅客本身的安全,防止非法劫持航空器事件的發(fā)生。
1)對(duì)各種讀卡機(jī)在使用不同類(lèi)型的卡(如通用卡、定時(shí)卡、失效卡、黑名單卡、加密卡、防劫持卡等)時(shí),調(diào)試其開(kāi)門(mén)、關(guān)門(mén)、提示、記憶、統(tǒng)計(jì)、打印等判別與處理功能。
2)調(diào)試出入口控制系統(tǒng)與報(bào)警、電子巡查等系統(tǒng)間的聯(lián)動(dòng)或集成功能。
3)對(duì)采用各種生物識(shí)別技術(shù)裝置(如指紋、掌形、視網(wǎng)膜、聲控及其復(fù)合技術(shù))的出入口控制系統(tǒng)的調(diào)試,應(yīng)按系統(tǒng)設(shè)計(jì)文件及產(chǎn)品說(shuō)明書(shū)進(jìn)行。