本發(fā)明屬于計算機網(wǎng)絡(luò)的用戶行為分析技術(shù)領(lǐng)域,具體的涉及一種基于用戶連接圖的深度行為關(guān)聯(lián)方法。
背景技術(shù):
互聯(lián)網(wǎng)作為人們交互的綜合性服務(wù)平臺,已經(jīng)集成了語音、視頻、圖像、文本等異構(gòu)多源數(shù)據(jù)。網(wǎng)民規(guī)模也迅速膨脹,并廣泛參與互聯(lián)網(wǎng)交易、互聯(lián)網(wǎng)醫(yī)療、互聯(lián)網(wǎng)教育等,業(yè)務(wù)行為呈現(xiàn)差異化、規(guī)?;陌l(fā)現(xiàn)趨勢。
一般采用基于機器學(xué)習(xí)方法進(jìn)行用戶行為分析,例如:樸素貝葉斯、支持向量機和C4.5等?;跈C器學(xué)習(xí)的方法是基于數(shù)據(jù)流的樣本集和統(tǒng)計信息(如流字節(jié)數(shù)、報文數(shù)、報文平均間隔等)構(gòu)建訓(xùn)練模型,對用戶行為進(jìn)行分類識別。但是大量的流量測量報告表明:網(wǎng)絡(luò)的在線用戶數(shù)量與用戶的作息時間之間具有明顯的相關(guān)性,由此會引發(fā)網(wǎng)絡(luò)流量的時移特性。隨著網(wǎng)絡(luò)時空環(huán)境和業(yè)務(wù)分布的變化,傳統(tǒng)基于機器學(xué)習(xí)的方法會產(chǎn)生“模型失配”問題:時刻t得到的學(xué)習(xí)模型Mt,與前一時刻t-1得到的學(xué)習(xí)模型Mt-1不一致的現(xiàn)象。導(dǎo)致這種現(xiàn)象的原因是網(wǎng)絡(luò)流量的突發(fā)性、網(wǎng)絡(luò)時空環(huán)境發(fā)生變化、網(wǎng)絡(luò)應(yīng)用分布發(fā)生變化等。
為了獨立于流量統(tǒng)計特性,不再關(guān)注應(yīng)用層負(fù)載、流量特征的提取和統(tǒng)計,而應(yīng)從用戶相互連接和關(guān)聯(lián)通信的角度進(jìn)行研究,為互聯(lián)網(wǎng)用戶行為分析開辟了新的研究思路。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)在面對網(wǎng)絡(luò)流量的突發(fā)性、網(wǎng)絡(luò)時空環(huán)境發(fā)生變化、網(wǎng)絡(luò)應(yīng)用分布發(fā)生變化的情況下,采用基于機器學(xué)習(xí)的分析方法會產(chǎn)生“模型失配”的問題,提出一種基于用戶連接圖的深度行為關(guān)聯(lián)方法。
本發(fā)明的技術(shù)方案是:一種基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述方法包括:
根據(jù)網(wǎng)絡(luò)中報文的IP地址、端口號和協(xié)議號,構(gòu)造用戶連接圖;
根據(jù)用戶連接圖,基于用戶的相鄰?fù)ㄐ抨P(guān)系,構(gòu)造行為關(guān)聯(lián)矩陣;
根據(jù)行為關(guān)聯(lián)矩陣,利用K-means聚簇方法,劃分用戶社團(tuán);
根據(jù)用戶社團(tuán),基于熟知端口號和常用端口號,計算用戶社團(tuán)內(nèi)任意用戶結(jié)點行為標(biāo)識;
根據(jù)用戶社團(tuán)內(nèi)任意用戶結(jié)點行為標(biāo)識,采用多數(shù)投票表決方法,計算整個用戶社團(tuán)的行為標(biāo)識。
所述的基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述構(gòu)造用戶連接圖的具體方法為:
根據(jù){IP地址、端口號、協(xié)議號}構(gòu)造用戶連接圖的點;
根據(jù)報文間的傳遞關(guān)系,從行為學(xué)角度確定建立邊的基本原則;
根據(jù){源IP地址,源端口、目的IP地址、目的端口、協(xié)議號}五元組信息,構(gòu)造用戶連接圖中任意兩點的邊。
所述的基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述構(gòu)造行為關(guān)聯(lián)矩陣的具體方法為:
根據(jù)用戶是否直接通信,構(gòu)造用戶連接圖中相鄰用戶集合;
根據(jù)相鄰用戶間具有共同的業(yè)務(wù)應(yīng)用,計算相鄰用戶的行為距離;
根據(jù)非相鄰用戶間具有相似的業(yè)務(wù)應(yīng)用,計算非相鄰用戶的行為距離。
所述的基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述劃分用戶社團(tuán)的方法為:
輸入行為關(guān)聯(lián)矩陣,初始化選擇K個聚簇中心,K為自然數(shù);
利用K-means聚類方法,找到最佳的K個聚簇中心;
任意用戶結(jié)點歸并到相應(yīng)的聚簇,形成K個用戶社團(tuán)。
所述的基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述的用戶結(jié)點行為標(biāo)識包括:
按照用戶結(jié)點度數(shù),尋求用戶社團(tuán)中度數(shù)最大的用戶結(jié)點,用戶結(jié)點度是指與該用戶結(jié)點相關(guān)聯(lián)的邊的條數(shù);
根據(jù)用戶結(jié)點的熟知端口號和協(xié)議號,確定用戶結(jié)點行為標(biāo)識,熟知端口號是指使用網(wǎng)絡(luò)通訊時常常會用到的端口;
根據(jù)用戶結(jié)點的常用端口號和協(xié)議號,確定用戶結(jié)點行為標(biāo)識,常用端口號是運營商提供公共服務(wù)注冊使用的端口。
所述的基于用戶連接圖的深度行為關(guān)聯(lián)方法,所述計算用戶社團(tuán)行為標(biāo)識的方法為:根據(jù)用戶社團(tuán)內(nèi)任意用戶結(jié)點行為標(biāo)識,將數(shù)量比例最大的用戶行為標(biāo)識確定為該用戶社團(tuán)的行為類別;若沒有滿足上述條件的行為標(biāo)識,則重新進(jìn)行用戶社團(tuán)劃分和確定用戶結(jié)點行為標(biāo)識。本發(fā)明的有益效果是:與現(xiàn)有技術(shù)相比,本發(fā)明不依賴于負(fù)載信息和基于流的統(tǒng)計信息,克服了“模型失配”現(xiàn)象,提高了用戶行為深度關(guān)聯(lián)分析的準(zhǔn)確性;無需提取基于流的統(tǒng)計信息和基于樣本集的學(xué)習(xí)訓(xùn)練,降低了用戶行為深度關(guān)聯(lián)分析的時間復(fù)雜度;從用戶連接和關(guān)聯(lián)通信的角度出發(fā),構(gòu)建和劃分用戶連接圖,最終實現(xiàn)“物以類聚、人以群分”的目標(biāo);本發(fā)明還可用于分析用戶行為分析、用戶行為偏好分析、用戶群活動規(guī)律分析,對于商業(yè)增值業(yè)務(wù)挖掘、業(yè)務(wù)趨勢預(yù)測以及網(wǎng)絡(luò)安全管控具有重要意義。
附圖說明
圖1為本發(fā)明基于用戶連接圖的深度行為關(guān)聯(lián)步驟流程示意圖;
圖2為構(gòu)建用戶連接圖步驟流程示意圖;
圖3為計算行為關(guān)聯(lián)矩陣步驟流程示意圖;
圖4為用戶社團(tuán)劃分步驟流程示意圖;
圖5為計算用戶結(jié)點行為標(biāo)識步驟流程示意圖;
圖6為計算用戶社團(tuán)行為標(biāo)識步驟流程示意圖;
圖7為部分熟知端口列表示意圖;
圖8為行為距離等于3的示意圖;
圖9為行為距離等于5的示意圖。
具體實施方式
實施例1:結(jié)合圖1-圖9,用戶結(jié)點度數(shù):用戶結(jié)點度是指與該用戶結(jié)點相關(guān)聯(lián)的邊的條數(shù)。
K-means聚類:K-means聚類算法是最為經(jīng)典的基于劃分的聚類方法,是十大經(jīng)典數(shù)據(jù)挖掘算法之一,其核心思想是:以K個點為中心進(jìn)行聚類,對最靠近中心點的對象歸類;通過迭代的方法,逐次更新各聚類中心點,直到找到最好的聚類效果。
熟知端口號:使用網(wǎng)絡(luò)通訊時常常會用到的端口,每個端口對應(yīng)一種網(wǎng)絡(luò)服務(wù),范圍在0-1023,參考圖7。
常用端口號:是運營商提供公共服務(wù)注冊使用的端口,如游戲類服務(wù)“魔獸世界”對應(yīng)端口3424、數(shù)據(jù)庫類服務(wù)Mysql對應(yīng)端口3306等。
一種基于用戶連接圖的深度行為關(guān)聯(lián)方法,如圖1所示,首先對該方法的如下流程進(jìn)行簡單介紹:
步驟101、根據(jù)網(wǎng)絡(luò)中報文的IP地址、端口號和協(xié)議號等信息,構(gòu)造用戶連接圖;
步驟102、根據(jù)用戶連接圖,基于用戶的相鄰?fù)ㄐ抨P(guān)系,構(gòu)造行為關(guān)聯(lián)矩陣;
步驟103、根據(jù)行為關(guān)聯(lián)矩陣,利用K-means聚簇方法,劃分得到用戶社團(tuán);
步驟104、根據(jù)用戶社團(tuán),基于熟知端口號和常用端口號,計算用戶社團(tuán)內(nèi)任意用戶結(jié)點行為標(biāo)識;
步驟105、根據(jù)用戶社團(tuán)內(nèi)任意用戶結(jié)點行為標(biāo)識,采用多數(shù)投票方法,得到整個用戶社團(tuán)的行為標(biāo)識。
進(jìn)一步的,建立用戶連接圖,具體包括,參照圖2,步驟201、依據(jù){IP地址、端口號、協(xié)議號}構(gòu)造用戶連接圖的點,如用戶A對應(yīng)192.168.1.1、6890、6,用戶B對應(yīng)為192.168.1.2、4611、6,用戶C對應(yīng)為10.10.1.1、80、6。
步驟202、根據(jù)報文間的傳遞關(guān)系,確定建立邊的基本原則;連接圖的邊表征了用戶之間的交互,從行為學(xué)的角度,只要用戶A向用戶B發(fā)送了報文,則A必然存在向B索取某種信息或資源的意圖,可以根據(jù)以下原則,對用戶A和B構(gòu)建一條邊:(1)對于UDP流,若A向B傳送了第一個報文;(2)對于TCP流,若A向B發(fā)送了第一個SYN報文;(3)若A、B之間通信的字節(jié)總數(shù)或者報文總數(shù)大于某一閾值;(4)若A和B三次握手成功,TCP連接建立;(5)根據(jù)A和B之間的傳輸層協(xié)議(TCP、UDP、ICMP等)。
步驟203、依據(jù){源IP地址,源端口、目的IP地址、目的端口、協(xié)議號}五元組信息,建立用戶連接圖中任意兩點的邊。若A和B分別與C進(jìn)行了TCP三次握手,則將A和C(五元組信息對應(yīng)為{192.168.1.1、6890、10.10.1.1、80、6}),B和C(五元組信息對應(yīng)為{192.168.1.2、4611、10.10.1.1、80、6})分別建立一條邊。
步驟204、根據(jù)用戶連接圖的點和邊,進(jìn)行用戶行為的直觀分析;若大量用戶和C建立邊,則說明C可能是服務(wù)提供者,也可能是DDoS攻擊的目標(biāo)主機。
進(jìn)一步的,計算行為關(guān)聯(lián)矩陣,具體發(fā)過程包括,參照圖3:步驟301、根據(jù)用戶是否直接通信,構(gòu)造用戶連接圖相鄰用戶集合。若用戶vi與用戶vj直接相連,則稱vi和vj為相鄰用戶;若vi與用戶v1、v2、v3相連,則用戶vi的相鄰用戶集合為Ui={v1,v2,v3}。
步驟302、根據(jù)相鄰用戶間具有共同的業(yè)務(wù)應(yīng)用,計算相鄰用戶的行為距離。若用戶vi和vj為直連通信用戶,則定義vi和vj的用戶行為距離為0(即兩個用戶具有共同的業(yè)務(wù)應(yīng)用)。
步驟303、根據(jù)非相鄰用戶間具有相似的業(yè)務(wù)應(yīng)用,計算非相鄰用戶的行為距離。若vi和vj不相鄰,且vi和vj對應(yīng)的相鄰用戶集合為Ui和Uj,則vi和vj的用戶行為距離等于兩個相鄰集合相同用戶的個數(shù)|Ui∩Uj|。例如:UA={C,D,E,F},UB={C,D,E,G},則用戶A和用戶B的行為距離為3。
進(jìn)一步的,結(jié)合圖8,若用戶A和用戶C、D、E直接相連(即相鄰用戶),并且用戶B也和用戶C、D、E直接相連,則用戶A和B都與C、D、E等3個用戶相鄰,則A和B的行為距離等于3。
進(jìn)一步的,結(jié)合圖9,若用戶A和用戶C、D、E、F、G直接相連(即相鄰用戶),并且用戶B也和用戶C、D、E、F、G直接相連,則用戶A和B都與C、D、E、F、G等5個用戶相鄰,則A和B的行為距離等于5。
步驟304、構(gòu)造行為關(guān)聯(lián)矩陣,矩陣中各個元素為步驟302和步驟303計算得到的用戶行為距離。
進(jìn)一步的,劃分用戶社團(tuán),具體包括,結(jié)合圖4,步驟401、輸入行為關(guān)聯(lián)矩陣,初始化選擇K個聚簇中心,K為自然數(shù);步驟402、利用K-means聚類方法,直到找到最佳的K個聚簇中心;步驟403、任意用戶結(jié)點歸并到相應(yīng)的聚簇,形成K個用戶社團(tuán)。
進(jìn)一步的,計算用戶結(jié)點行為標(biāo)識,具體方法包括,結(jié)合圖5,步驟501、按照用戶結(jié)點度數(shù)進(jìn)行行為標(biāo)注。首先,尋求用戶社團(tuán)中度數(shù)最大的用戶結(jié)點:一方面,在用戶連接圖中,用戶結(jié)點度數(shù)越大表明其相鄰用戶越多;另一方面,若連接度數(shù)最大的用戶結(jié)點被標(biāo)注,則與其直接相連的用戶也相應(yīng)地得到了識別,從而能有效降低計算復(fù)雜度;步驟502、根據(jù)用戶結(jié)點的熟知端口號和協(xié)議號,確定用戶結(jié)點行為標(biāo)識;步驟503、根據(jù)用戶結(jié)點的常用端口號和協(xié)議號,確定用戶結(jié)點行為標(biāo)識。
進(jìn)一步的:計算用戶社團(tuán)的行為標(biāo)識,具體方法包括,結(jié)合圖6,步驟601、針對任意用戶社團(tuán),將數(shù)量比例最大的用戶結(jié)點行為標(biāo)識,確定為該用戶社團(tuán)的行為類別;步驟602、若沒有滿足上述條件的行為標(biāo)識,則重新進(jìn)行用戶社團(tuán)劃分和確定用戶結(jié)點行為標(biāo)識。