本發(fā)明屬于互聯(lián)網(wǎng)被動流量分析和NAT檢測
技術(shù)領(lǐng)域:
,涉及一種基于融合用戶行為和迅雷ID的NAT檢測方法。
背景技術(shù):
:NAT(NetworkAddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)應用減緩了IP地址空間的枯竭,實現(xiàn)了私有網(wǎng)絡(luò)IP地址與公共網(wǎng)絡(luò)IP地址間的映射關(guān)系,使得內(nèi)外網(wǎng)隔離開來,從而將局域網(wǎng)中的所有計算機隱藏并保護起來,無法通過公共網(wǎng)絡(luò)訪問,有效地防范了來自公共網(wǎng)絡(luò)的各種非法攻擊。因此,NAT技術(shù)也為防火墻技術(shù)的發(fā)展提供了新的思路。如今,絕大多數(shù)路由器中都集成了NAT技術(shù),這為私有網(wǎng)絡(luò)安全提供了一定的保障。然而,與歷史上許多其他技術(shù)一樣,NAT技術(shù)同樣也有負面性。一方面,多用戶共享上網(wǎng)的方式占據(jù)了大量的網(wǎng)絡(luò)資源,運營商成本增加;另一方面,NAT技術(shù)增加了使用被動流量進行個性化網(wǎng)絡(luò)服務及非法用戶追蹤的難度?,F(xiàn)有的NAT流量識別方法一般都是采用被動檢測方法,被動檢測方法是通過被動地監(jiān)聽網(wǎng)絡(luò)中的數(shù)據(jù)流量,檢測數(shù)據(jù)包的首部或內(nèi)容信息,來進行數(shù)據(jù)包的源IP地址的身份判斷。根據(jù)各種識別方法的不同特點,大致上可以把現(xiàn)有的NAT被動檢測方法分為兩個大的類別,分別為:基于TCP/IP協(xié)議特征字段的識別方法、基于應用層信息的識別方法。1)與本發(fā)明相關(guān)的現(xiàn)有技術(shù)方案一:User-Agent識別法User-Agent是用戶瀏覽器使用的一個特殊的只讀字符串頭,每當用戶瀏覽某個網(wǎng)站時,瀏覽器發(fā)送的HTTP請求數(shù)據(jù)包的用戶代理頭中就包含該User-Agent值。Web服務器通過該User-Agent值,便可以知道用戶使用的操作系統(tǒng)及版本是什么、瀏覽器及版本是什么、CPU類型是什么等。又由于同一個網(wǎng)絡(luò)中的不同主機的操作系統(tǒng)及版本、瀏覽器及版本、甚至于打的補丁都不盡相同,因此通過統(tǒng)計分析同一個IP地址發(fā)出的所有HTTP請求數(shù)據(jù)包中的User-Agent字段,便可以確定是普通主機還是NAT設(shè)備,如果是NAT設(shè)備,還可以用來分別標識NAT。2)與本發(fā)明相關(guān)的現(xiàn)有技術(shù)方案二:CookieID識別法在HTTP協(xié)議中,為了在User-Agent(一般為瀏覽器)與Web服務器之間有效的傳輸狀態(tài)信息,便于網(wǎng)站辨別用戶的身份,定義了一個Cookie數(shù)據(jù)值。當用戶瀏覽某個網(wǎng)站時,Web服務器將生成一個包含有用戶ID、時間日期等信息的Cookie值,并將該Cookie值連同用戶訪問的相應內(nèi)容一并返回給請求訪問的瀏覽器,瀏覽器則將其存儲于用戶本地的終端中。當下次該用戶再次瀏覽同一個網(wǎng)站時,用戶會將上次保存在本地的Cookie值一并發(fā)送,網(wǎng)站通過該Cookie值便可以得到用戶信息了。一般情況下,對于首次訪問該網(wǎng)站的用戶,Web服務器會在Cookie值中設(shè)置一個有效期。在有效期內(nèi),同一個網(wǎng)站下不同的用戶的Cookie值中的用戶ID是不同的。運營商經(jīng)常利用一些知名網(wǎng)站的CookieID來對動態(tài)主機、NAT主機進行標識,進而做一些與網(wǎng)絡(luò)測量、優(yōu)化服務等相關(guān)的工作。然而,User-Agent識別法很大程度上受到用戶上網(wǎng)習慣的制約,一些操作系統(tǒng)、瀏覽器的使用情況,如同一臺主機打開兩個不同的瀏覽器都會使其產(chǎn)生誤判,而且由于User-Agent字段可以輕易地被用戶修改,該方法的檢測效果沒有保障。CookieID識別法很大程度上受到用戶上網(wǎng)習慣的制約,很難保證在同一段檢測的時間內(nèi)不同的用戶都訪問相同的網(wǎng)站。而且,有些用戶會隨時清理本機上的Cookie信息,這些因素都將使得CookieID識別法的檢測誤差相對較大。為了解決上述問題,本發(fā)明從已知的NAT檢測方法出發(fā),通過融合用戶網(wǎng)絡(luò)行為和迅雷ID特征識別NAT主機,同基于User-Agent、CookieID識別方法相比,可提高NAT判斷的準確率,使得不僅能對NAT屬性進行識別而且能夠?qū)AT規(guī)模進行判定。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明的目的在于提供一種基于融合用戶行為和迅雷ID的NAT檢測方法。本發(fā)明的技術(shù)方案為:一種基于融合用戶行為和迅雷ID的NAT檢測方法,其步驟為:1)流量處理平臺從捕獲的網(wǎng)絡(luò)流量中提取User-Agent、CookieID、和迅雷ID信息,并將提取出的信息拼接成JSON串;2)根據(jù)網(wǎng)絡(luò)流量的五元組將JSON串負載均衡到流量處理平臺中相應的服務器進行處理;該五元組包括源IP、源端口、目的IP、目的端口和協(xié)議;3)所述服務器根據(jù)五元組對數(shù)據(jù)進行分類,當判斷某一五元組對應的TCP流結(jié)束時;對該TCP流進行在線處理;其中,在線處理方法為:根據(jù)五元組計算客戶端IP的主機出度、主機入度,判定該客戶端IP的NAT屬性,并計算該客戶端IP的主機規(guī)模。進一步的,所述主機出度為:主機向其他主機發(fā)出的TCP連接數(shù);所述主機入度為:主機接收其他主機的TCP連接數(shù)。進一步的,判定該客戶端IP的NAT屬性的方法為:當主機連續(xù)活躍程度>4小時,且從所述流量處理平臺檢測到該主機開始的連續(xù)24小時之內(nèi)該主機總活躍程度>8小時,并且該主機出度/入度的比值>1.4時,將該主機標記為NAT主機。進一步的,計算該客戶端IP的主機規(guī)模的方法為:根據(jù)該客戶端IP的JSON串計算以User-Agent和CookieID組合鍵的數(shù)據(jù)量大小N1;將具有相同User-Agent的JSON串放入同一CookieID集合E,遍歷集合E,找出不同User-Agent下具有相同的CookieID的User-Agent規(guī)模N2;以迅雷ID為Key計算Json串中去重的迅雷ID數(shù)量N3;主機規(guī)模計算為N1-N2+N3。進一步的,步驟3)中,所述服務器對收到的數(shù)據(jù)進行清洗,過濾掉沒有User-Agent、CookieID、和迅雷ID特征的TCP連接數(shù)據(jù),將屬于同一五元組的數(shù)據(jù)進行集中。進一步的,所述流量處理平臺為每一五元組對應的TCP流數(shù)據(jù)設(shè)置一個超時時間,當某一五元組在該超時時間內(nèi)沒有得到更新,則判定該五元組對應的TCP流結(jié)束。進一步的,根據(jù)網(wǎng)絡(luò)流量的五元組將JSON串負載均衡到流量處理平臺中相應的服務器進行處理的方法為:將五元組作為hash函數(shù)的key進行計算得到一索引值index,每一索引值index對應一不同的服務器;根據(jù)索引值index將JSON串負載均衡到相應的服務器,實現(xiàn)負載均衡。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:通過對現(xiàn)有識別方法的介紹可以看到,基于應用層協(xié)議特征字段的幾種識別方法比較類似,都是完全依賴于應用層協(xié)議的某個特殊字段,會普遍受到該特殊字段的制約,識別效果的好壞完全取決于該字段,一旦該字段的數(shù)據(jù)不能滿足要求,或者該字段本身被修改了,這些方法就將完全失效。并且這類方法還普遍受到來自于不同的操作系統(tǒng)的制約,而基于應用層信息的識別方法則普遍受到了用戶上網(wǎng)習慣的制約,其檢測效果充滿了不確定性,如表1所示。表1為不同條件下對檢測特征影響。類別|效果|方法基于User-Agent基于CookieID融合迅雷ID是否依賴于協(xié)議層是是否操作系統(tǒng)制約是是否用戶上網(wǎng)習慣是是否現(xiàn)在,隨著越來越多的NAT設(shè)備都具備了修改數(shù)據(jù)包中特殊字段的功能,現(xiàn)有的方法的使用范圍變得越來越窄,已經(jīng)遠遠無法滿足需求。因此,找到一種不會過分依賴某一特征字段,不依賴于操作系統(tǒng),用戶操作習慣也對其影響較小的方法就顯得迫在眉睫。本發(fā)明基于網(wǎng)絡(luò)行為與網(wǎng)絡(luò)內(nèi)容挖掘相結(jié)合的方法,主要對應用層信息進行大范圍流量檢測,能夠?qū)Υ罅縄P屬性進行標定并對NAT規(guī)模進行精準判斷。附圖說明圖1為前端流量處理流程圖;圖2為后端融合計算平臺處理流程圖。具體實施方式下面結(jié)合附圖對本發(fā)明進行進一步詳細描述?!裥g(shù)語解釋NAT(NetworkAddressTranslation):網(wǎng)絡(luò)地址轉(zhuǎn)換;主機出度:指主機向其他主機發(fā)出的四元組連接的數(shù)量;四元組連接指:源IP+源端口+目的IP+目的端口,等價于“TCP的連接數(shù)”。主機入度:指主機接收其他主機的四元組連接的數(shù)量;ISP(InternetServiceProvider):互聯(lián)網(wǎng)服務提供商;●一種基于融合用戶行為和迅雷ID的NAT檢測方法基于單一的User-Agent識別方法或CookieID識別方法不能保證NAT檢測的準確率,本發(fā)明在這兩種方法的基礎(chǔ)上提出了一種基于用戶行為和迅雷P2PID識別的混合檢測方法。這四種方法相互佐證,保證識別出的NAT以及判定NAT規(guī)模的準確性。下面對這兩種方法進行介紹:1)主機出入度識別法為了更好的敘述和理解,下面給出“度”、“入度”和“出度”定義:度:TCP的連接數(shù):源IP地址-源端口-目的端IP-目的端端口號;出度:主機向其他主機發(fā)出的TCP連接數(shù);入度:主機接收其他主機的TCP連接數(shù)。計算機網(wǎng)絡(luò)異常行為與主機的出、入度存在某種數(shù)學規(guī)律。通過實驗發(fā)現(xiàn),某些網(wǎng)絡(luò)異常與出、入度之間確實存在某種數(shù)學規(guī)律,如表2所示:表2為網(wǎng)絡(luò)異常與出、入度之間數(shù)學規(guī)律當主機連續(xù)活躍程度>4小時、前端流量平臺上檢測到這個主機開始算起的連續(xù)24小時之內(nèi)總活躍程度>8小時,并且主機出度/入度的比值>1.4時,滿足上述三個條件可以將該主機標記為NAT。該方法通過對NAT網(wǎng)絡(luò)行為分析,能夠較準確的對大規(guī)模NAT進行屬性判定。2)迅雷ID識別法迅雷主要使用P2P協(xié)議進行文件下載,處于NAT設(shè)備之后的擁有私有IP地址的主機之間建立P2P連接,就必須想辦法穿過NAT。迅雷自定義傳輸協(xié)議穿過NAT設(shè)備,通過對迅雷協(xié)議的識別,發(fā)現(xiàn)在傳輸?shù)牧髁恐袝咐譏D號和內(nèi)網(wǎng)IP地址等信息,如下所示:通過前端平臺,從流量中提取出迅雷相關(guān)信息。在分析中發(fā)現(xiàn),迅雷ID是唯一的,一個ID對應一個用戶賬號信息,同時也對應著NAT網(wǎng)絡(luò)中一臺NAT主機的內(nèi)網(wǎng)IP。通過對主機關(guān)聯(lián)的迅雷P2PID特征的識別能夠較準確的識別NAT規(guī)模以及對NAT主機進行精確的定位。迅雷ID號與NAT主機為一一對應關(guān)系。NAT檢測系統(tǒng)處理流程分為前端流量平臺處理和后端融合計算平臺處理兩個流程,前端流量處理流程如圖1所示,后端融合計算平臺處理流程如圖2所示。NAT檢測系統(tǒng)處理處理流程描述為:1)流量處理平臺的前端服務器從網(wǎng)關(guān)處捕獲網(wǎng)絡(luò)流量,應用層插件從捕獲的網(wǎng)絡(luò)流量中提取User-Agent、CookieID、和迅雷ID等信息;2)將提取出的信息拼接成JSON串,將五元組源IP+源端口+目的IP+目的端口+協(xié)議作為hash函數(shù)的key進行計算得到一索引值index(每個index做對應不同的服務器)、將JSON串負載均衡到相應的后端服務器進行處理,實現(xiàn)負載均衡,處理流程以UDP包的形式或通過第三方的activeMQ消息中間件形式對數(shù)據(jù)中轉(zhuǎn)發(fā)送給后端程序處理;3)日志接收程序以異步方式接收UDP包,一級Redis數(shù)據(jù)庫完成數(shù)據(jù)清洗,清洗沒有User-Agent、CookieID、和迅雷ID特征的TCP連接數(shù)據(jù),將屬于同一五元組的數(shù)據(jù)進行集中,并發(fā)布超時的key;本發(fā)明對于每個以五元組為key的TCP流數(shù)據(jù),都設(shè)置為一個超時時間,當某一key在設(shè)定超時時間內(nèi)沒有得到更新表示對應的TCP流結(jié)束;4)日志回收程序接收超時的key,把單條流量完整信息進行在線處理,發(fā)送給二級Redis進行計算;其中,在線處理方法為:通過以五元組key信息計算客戶端IP的主機出、入度判定主機的NAT屬性;對同一客戶端IP所對應的JSON串信息,包括:ser-Agent,CookieID,迅雷ID等信息:2-1)計算以User-Agent和CookieID組合鍵的數(shù)據(jù)量大小N1;2-2)以User-Agent為Key,將Json串中相同的User-Agent對應的CookieID放入同一集合,不同的User-Agent對應的CookieID形成一個集合E;2-3)遍歷集合E,找出不同User-Agent下具有相同的CookieID的User-Agent規(guī)模N2;2-4)以迅雷ID為Key計算Json串中去重的xunlei_uid數(shù)量N3;2-5)主機規(guī)模計算為N1-N2+N3。5)二級Redis主要計算客戶端IP的主機出入度、OS、CookieID以及迅雷ID數(shù)量,完成NAT屬性識別及規(guī)模判定。當前第1頁1 2 3