本專利屬于互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體而言涉及一種web站電商劫持檢測方法。
背景技術(shù):
用戶上網(wǎng)的正常情況下,在用戶的客戶端與其要訪問的服務(wù)器經(jīng)過網(wǎng)絡(luò)協(xié)議協(xié)商后,二者之間建立了一條專用的數(shù)據(jù)通道,用戶端程序在系統(tǒng)中開放指定網(wǎng)絡(luò)端口用于接收數(shù)據(jù)報(bào)文,服務(wù)器端將全部數(shù)據(jù)按指定網(wǎng)絡(luò)協(xié)議規(guī)則進(jìn)行分解打包,形成連續(xù)數(shù)據(jù)報(bào)文。用戶端接收到全部報(bào)文后,按照協(xié)議標(biāo)準(zhǔn)來解包組合獲得完整的網(wǎng)絡(luò)數(shù)據(jù)。其中傳輸過程中的每一個(gè)數(shù)據(jù)包都有特定的標(biāo)簽,表示其來源、攜帶的數(shù)據(jù)屬性以及要到何處,所有的數(shù)據(jù)包經(jīng)過網(wǎng)絡(luò)路徑中互聯(lián)網(wǎng)服務(wù)提供商(isp)的路由器傳輸接力后,最終到達(dá)目的地,也就是客戶端。
http劫持是在使用者與其目的網(wǎng)絡(luò)服務(wù)所建立的專用數(shù)據(jù)通道中,監(jiān)視特定數(shù)據(jù)信息,提示當(dāng)滿足設(shè)定的條件時(shí),就會(huì)在正常的數(shù)據(jù)流中插入精心設(shè)計(jì)的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文,目的是讓用戶端程序解釋“錯(cuò)誤”的數(shù)據(jù),并以彈出新窗口的形式在使用者界面展示宣傳性廣告或者直接顯示某網(wǎng)站的內(nèi)容。
http劫持常見的現(xiàn)象為針對(duì)大流量網(wǎng)站的加小尾巴行為,如百度,hao123導(dǎo)航,360導(dǎo)航,百度知道,各大電商網(wǎng)站(淘寶,天貓,當(dāng)當(dāng)?shù)?,http的劫持出現(xiàn)的頻率多變,針對(duì)不同的ip也會(huì)不同(斷網(wǎng)之后再連接,也許劫持就暫時(shí)消失),一定程度會(huì)造成錯(cuò)誤的假象,用戶可能會(huì)忽視該問題,由于其劫持過程非常快,只是經(jīng)過某個(gè)ip后就快速的跳轉(zhuǎn),用戶如果不注意地址欄的變化,根本不會(huì)注意到該問題的出現(xiàn)。
http劫持的原理:http劫持發(fā)生在應(yīng)用層,分為兩大類,一類是涉及http協(xié)議修改的,即“302重定向劫持”,另一類則是非涉及協(xié)議的,即“200ok劫持”,其中“302重定向劫持”又可細(xì)分為兩種。(1)串接情況:即當(dāng)客戶端發(fā)送get請(qǐng)求包到服務(wù)器,劫持方直接進(jìn)行劫持,這時(shí)劫持方會(huì)修改正常的反饋報(bào)文,即在location字段中修改,內(nèi)容為希望被客戶端訪問的鏈接,之后發(fā)送到客戶端,這時(shí)完成302重定向,同時(shí)還會(huì)發(fā)送rst到服務(wù)器端,來斷開客戶端與服務(wù)器的正常連接,從而避免服務(wù)器的二次響應(yīng),即避免客戶端收到重復(fù)的響應(yīng)。(2)并接情況:需要強(qiáng)調(diào)的是,由于劫持方設(shè)備與客戶端設(shè)備在物理距離上一般比較近,所以它與客戶端之間的傳輸速度會(huì)比服務(wù)器與客戶端的傳輸速度快,于是當(dāng)客戶端發(fā)送get請(qǐng)求包時(shí),劫持方會(huì)先于服務(wù)器嗅探到請(qǐng)求包,接下來發(fā)生的302重定向劫持方法與串接情況相同。
所述http200ok劫持:反饋給客戶端的是正常的200ok報(bào)文,但是實(shí)際上已經(jīng)修改了正常網(wǎng)頁的內(nèi)容,方法即在javascript里添加內(nèi)容,如廣告等。
現(xiàn)有技術(shù)中,為了防止http劫持通常采用訪問https加密的方案,例如強(qiáng)制http跳轉(zhuǎn)https。https是以安全為目標(biāo)的http通道,簡單講是http的安全版,用于安全的http數(shù)據(jù)傳輸。通過https的傳輸即在地址欄輸入形如“https://....”可以有效避免用戶上網(wǎng)的http劫持。但是該方案具有如下缺陷:(1)https目前尚未普及,只有百度主頁等少數(shù)網(wǎng)站已部署。(2)https的部署涉及很多業(yè)務(wù)的修改,成本較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明真是基于現(xiàn)有技術(shù)的上述需求而提出的,本發(fā)明要解決的技術(shù)問題是提供一種web站電商劫持檢測方法,所述方法針對(duì)在訪問電商網(wǎng)站的用戶,提供有效的http劫持檢測技術(shù),幫助用戶鑒別真假網(wǎng)頁內(nèi)容,使用戶能夠察覺到自己在瀏覽電商網(wǎng)頁時(shí)是否被http劫持。
為了解決該問題,本專利提供的技術(shù)方案包括:
一種web站電商劫持檢測方法,所述方法包括:步驟一、比較客戶端與服務(wù)器之間的通信的數(shù)據(jù)包獲取其中的ttl值是否一致;步驟二、如果所述ttl值一致則進(jìn)入到步驟三,如果所述ttl數(shù)值不一致則判斷為所述客戶端與服務(wù)器之間的通信被劫持;步驟三、將所述數(shù)據(jù)包中的內(nèi)容與所述被劫持查找表中的內(nèi)容相比對(duì),確定所述數(shù)據(jù)包在所述被劫持查找表中的分級(jí);所述查找表是通過如下方法建立的:s001針對(duì)不同的網(wǎng)站,對(duì)反饋信息進(jìn)行統(tǒng)計(jì)分析,并根據(jù)反饋信息的類型將其分入到不同的組中;s002對(duì)于這些分好的組,按照反饋信息的異常性進(jìn)行優(yōu)先級(jí)的劃分排序,反饋信息越異常,反饋內(nèi)容與訪問的關(guān)聯(lián)度越小,則優(yōu)先級(jí)越大,即越被視為遭遇http劫持;s003按照優(yōu)先級(jí)的從高到低,從每組內(nèi)進(jìn)行取樣,對(duì)于樣本進(jìn)行驗(yàn)證操作,確定被劫持的分級(jí);步驟四、根據(jù)所述分級(jí)來判斷所述客戶端與所述服務(wù)器之間的通信是否被劫持。
優(yōu)選地,在s001中,對(duì)于不同的網(wǎng)站所返回的反饋信息分別進(jìn)行統(tǒng)計(jì)分析,并根據(jù)預(yù)定的規(guī)則對(duì)所述數(shù)據(jù)包進(jìn)行分組;所述預(yù)定的規(guī)則包括統(tǒng)計(jì)所述反饋信息中指向自身網(wǎng)站的鏈接數(shù)量、即對(duì)內(nèi)鏈接數(shù)量,以及指向其他網(wǎng)站的鏈接數(shù)量、即對(duì)外鏈接數(shù)量;根據(jù)反饋信息的中對(duì)內(nèi)、對(duì)外鏈接數(shù)量將反饋信息進(jìn)行分組;在s002中,根據(jù)反饋信息的異常性進(jìn)行排序包括基于統(tǒng)計(jì)的方式可以通過統(tǒng)計(jì)不同分組下的數(shù)量得出,將數(shù)量較大的分組列為小的優(yōu)先級(jí),將數(shù)量較小的分組列為較大的優(yōu)先級(jí);在s003中,對(duì)于每個(gè)分組的取樣采用隨機(jī)的方式來獲得;對(duì)于樣本進(jìn)行驗(yàn)證操作包括首先保證驗(yàn)證環(huán)境沒有被http劫持的前提下,進(jìn)行與客戶端相同的訪問操作,若存在差異則表明該用戶或者該優(yōu)先級(jí)下的分組被http劫持。
本專利通過設(shè)置上述方法首先檢測ttl數(shù)值,對(duì)于利用所述ttl數(shù)值進(jìn)行高效的篩查,當(dāng)ttl數(shù)值檢測正常時(shí),進(jìn)行基于統(tǒng)計(jì)的分析,保證了全面的劫持檢測。因此兼顧了檢測的速度和準(zhǔn)確性。
具體實(shí)施方式
下面對(duì)本專利的具體實(shí)施方式進(jìn)行詳細(xì)說明,需要指出的是,該具體實(shí)施方式僅僅是對(duì)本專利保護(hù)范圍的舉例,并不能理解為對(duì)本專利保護(hù)范圍的限制。
本具體實(shí)施方式中提供了一種web站電商劫持檢測方法,所述方法包括如下步驟:
步驟一、比較客戶端與服務(wù)器之間的通信的數(shù)據(jù)包獲取其中的ttl值是否一致
ttl是ip包中的一個(gè)字段,為timetolive的縮寫,是指其所屬的ip包被路由器丟棄之前允許通過的最大網(wǎng)段數(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è)路由器,路由器都會(huì)修改這個(gè)ttl字段值。例如,把該ttl的值減1,然后再將ip包轉(zhuǎn)發(fā)出去。如果在ip包到達(dá)目的ip之前,ttl減少為0,路由器將會(huì)丟棄收到的ttl=0的ip包并向ip包的發(fā)送者發(fā)送icmptimeexceeded消息。
在正常的訪問連接中,客戶端發(fā)給服務(wù)器的ip包與服務(wù)器返回的ip包的信息應(yīng)該是一致的,即其中的ttl的值是一樣的,而在http劫持發(fā)生的情況下,ttl的值就會(huì)改變,即ip包就會(huì)不同,基于此道理,我們通過技術(shù)手段,對(duì)于客戶端與服務(wù)器之間的連接進(jìn)行單獨(dú)的分析比較,通過判斷ttl值是否異常來檢測用戶上網(wǎng)是否遭遇http劫持。
步驟二、如果所述ttl值一致則進(jìn)入到步驟三,如果所述ttl數(shù)值不一致則判斷為所述客戶端與服務(wù)器之間的通信被劫持。
如步驟一中所分析的,當(dāng)所述ttl數(shù)值不一致時(shí),則代表所述客戶端與服務(wù)器之間的通信被劫持了,因此在此情況下可直接判定所述通信被劫持。但是并非所有的劫持都會(huì)導(dǎo)致ttl數(shù)值不一致,在一些特意留意了ttl數(shù)值的劫持中,劫持方會(huì)刻意對(duì)ttl數(shù)值進(jìn)行處理,因而ttl數(shù)值的一致與否只能是判斷客戶端與服務(wù)器之間通信被劫持的充分非必要條件。因此,在這種情況下,還需要進(jìn)行其它的判斷方法,來進(jìn)一步判斷客戶端與服務(wù)器之間的通信是否被劫持。
步驟三、將所述數(shù)據(jù)包中的內(nèi)容與所述被劫持查找表中的內(nèi)容相比對(duì),確定所述數(shù)據(jù)包在所述被劫持查找表中的分級(jí)。
在本步驟中,基于統(tǒng)計(jì)的方式來進(jìn)行劫持判斷。因?yàn)椋诨ヂ?lián)網(wǎng)的海量訪問中,被劫持的內(nèi)容往往只能是少數(shù),而大多數(shù)訪問的內(nèi)容是未被劫持的。所述查找表是通過如下方法建立的查找表:
s001針對(duì)不同的網(wǎng)站,對(duì)反饋信息進(jìn)行統(tǒng)計(jì)分析,并根據(jù)反饋信息的類型將其分入到不同的組中。
在s001中,例如對(duì)于淘寶和京東兩個(gè)網(wǎng)站所返回的反饋信息分別進(jìn)行統(tǒng)計(jì)分析。例如在淘寶網(wǎng)站中,分析所有能夠采集到的淘寶網(wǎng)所返回給用戶的反饋信息的數(shù)據(jù)包,并根據(jù)預(yù)定的規(guī)則對(duì)所述數(shù)據(jù)包進(jìn)行分組。所述預(yù)定的規(guī)則可以包括統(tǒng)計(jì)所述反饋信息中指向自身網(wǎng)站的鏈接數(shù)量,即對(duì)內(nèi)鏈接數(shù)量;以及指向其他網(wǎng)站的鏈接數(shù)量,即對(duì)外鏈接數(shù)量。根據(jù)反饋信息的中對(duì)內(nèi)、對(duì)外鏈接數(shù)量將反饋信息進(jìn)行分組。由于最大量反饋信息都是沒有被劫持的而只有少量的連接數(shù)量是被劫持的,因此,可以基于統(tǒng)計(jì)的方式來設(shè)置不同組中的鏈接數(shù)量。當(dāng)然還可以根據(jù)其他信息來確定分組的規(guī)則,只要分組的規(guī)則和被劫持所反映的特征相關(guān)即可。
s002對(duì)于這些分好的組,按照反饋信息的異常性進(jìn)行優(yōu)先級(jí)的劃分排序,反饋信息越異常,反饋內(nèi)容與訪問的關(guān)聯(lián)度越小,則優(yōu)先級(jí)越大,即越被視為遭遇http劫持。
在本步驟中,對(duì)于已經(jīng)分好的組,可以根據(jù)反饋信息的異常性進(jìn)行排序。這種排序可以基于分析后的經(jīng)驗(yàn)得出,也可以是基于統(tǒng)計(jì)的方式得出?;诮y(tǒng)計(jì)的方式可以通過統(tǒng)計(jì)不同分組下的數(shù)量得出,因?yàn)樵诰W(wǎng)絡(luò)中,被劫持的反饋信息數(shù)量始終只占很小一部分,因此將數(shù)量較大的分組列為小的優(yōu)先級(jí),將數(shù)量較小的分組列為較大的優(yōu)先級(jí)。
s003按照優(yōu)先級(jí)的從高到低,從每組內(nèi)進(jìn)行取樣,對(duì)于樣本進(jìn)行驗(yàn)證操作,確定被劫持的分級(jí)。
在本步驟中,對(duì)于每個(gè)分組的取樣可以采用隨機(jī)的方式來獲得,對(duì)于樣本進(jìn)行實(shí)際的驗(yàn)證操作,在該驗(yàn)證操作中首先保證驗(yàn)證環(huán)境沒有被http劫持的前提下,進(jìn)行與客戶端相同的訪問操作,看得出的反饋信息與樣本的信息是否存在差異,若存在差異則表明該用戶或者該組被http劫持了。
步驟四、根據(jù)所述分級(jí)來判斷所述客戶端與所述服務(wù)器之間的通信是否被劫持。
確定所述分級(jí)之后,根據(jù)所述查找表中對(duì)于不同分級(jí)下http被劫持的界定,判斷所述客戶端與所述服務(wù)器之間的通信是否被劫持。
以上僅僅是本專利優(yōu)選的具體實(shí)施方式而已,本專利的保護(hù)范圍應(yīng)當(dāng)不限于此。凡是在本專利發(fā)明構(gòu)思下對(duì)于本專利應(yīng)用環(huán)境的轉(zhuǎn)換,以及對(duì)于其中具體技術(shù)手段的替代、增加和省略都應(yīng)當(dāng)納入到本專利的保護(hù)范圍之內(nèi)。