本發(fā)明涉及網(wǎng)絡(luò)安全與云計(jì)算技術(shù)領(lǐng)域,特別是涉及一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法及系統(tǒng)。
背景技術(shù):
近年來(lái),以網(wǎng)絡(luò)入侵為代表的信息安全事件層出不窮,入侵者以互聯(lián)網(wǎng)為工具竊取信息、散播木馬和病毒、惡意消耗資源,給用戶造成了巨大的損失,也極大得影響和破壞了互聯(lián)網(wǎng)的進(jìn)一步推廣和使用。設(shè)計(jì)和使用入侵檢測(cè)(IDS)方法對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行監(jiān)控,及時(shí)發(fā)現(xiàn)和控制惡意網(wǎng)絡(luò)入侵,成為網(wǎng)絡(luò)安全的一個(gè)重要屏障。
在當(dāng)前的網(wǎng)絡(luò)入侵檢測(cè)技術(shù)中,基于決策樹(shù)分類算法的IDS以其結(jié)構(gòu)簡(jiǎn)單、結(jié)果易于理解而且區(qū)分檢測(cè)精度較高等優(yōu)勢(shì),一直以來(lái)都受到了普遍的關(guān)注。但是,獨(dú)立的決策樹(shù)忽略了屬性之間的相互關(guān)系,具有組合屬性的入侵事件在這類IDS中常常被漏掉。另外,一般決策樹(shù)并未考慮到所選屬性對(duì)后繼分支及整棵樹(shù)的影響,容易陷入局部最優(yōu),從而對(duì)網(wǎng)絡(luò)正常的數(shù)據(jù)流產(chǎn)生誤判。梯度提升決策樹(shù)(GBDT)采用迭代的方法累加多棵決策樹(shù)的判別結(jié)果求取最終答案,可以有效的解決一般決策樹(shù)應(yīng)用于IDS產(chǎn)生的上述問(wèn)題。GBDT對(duì)于有不同的特征組合的情況擁有不同的判別式,與數(shù)據(jù)包多特征組合形成攻擊的網(wǎng)絡(luò)安全問(wèn)題相符合。GBDT應(yīng)用于IDS中可以智能的綜合處理用戶的網(wǎng)絡(luò)行為,甚至可以根據(jù)用戶的特征分析判斷出訓(xùn)練數(shù)據(jù)集中沒(méi)有出現(xiàn)的入侵事件,大大提升了決策樹(shù)算法的入侵檢測(cè)能力。
梯度提升決策樹(shù)GBDT雖然在網(wǎng)絡(luò)入侵行為判別方面優(yōu)勢(shì)明顯,但是它根據(jù)數(shù)據(jù)集訓(xùn)練生成的過(guò)程是通過(guò)迭代方式完成的,更新運(yùn)算的過(guò)程難以在云計(jì)算的環(huán)境下并行實(shí)現(xiàn)。為了最后的決策樹(shù)集成,采樣運(yùn)算需要不斷根據(jù)前一次的迭代錯(cuò)誤來(lái)修正本次的數(shù)據(jù)采樣比例,每一輪的決策樹(shù)生成運(yùn)算都依賴于上一輪的關(guān)鍵信息。這種迭代方式應(yīng)用于訓(xùn)練問(wèn)題比較單一的IDS系統(tǒng)時(shí),分布式云計(jì)算的優(yōu)勢(shì)不能得到發(fā)揮。另外,IDS系統(tǒng)需要需要訓(xùn)練的GBDT數(shù)量巨大,抽樣數(shù)據(jù)集的中需要抽樣的數(shù)據(jù)也要盡可能大,在分布式云計(jì)算環(huán)境下,GBDT算法的這種迭代抽樣方式會(huì)增加處理的時(shí)間。隨著云計(jì)算在網(wǎng)絡(luò)安全領(lǐng)域的逐步推廣,設(shè)計(jì)一種在并行分布式的環(huán)境下可以實(shí)施入侵檢測(cè)判別的GBDT算法是必要的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種網(wǎng)絡(luò)入侵檢測(cè)方法及系統(tǒng),以解決現(xiàn)有入侵檢測(cè)技術(shù)誤判率高、運(yùn)算速度較低的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種網(wǎng)絡(luò)入侵檢測(cè)方法,包括:
生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;
根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各所述偽梯度提升決策樹(shù)的權(quán)重信息;
分別采用所述偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;
將各所述獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷所述網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。
可選地,所述生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合包括:
采用并行的方式抽取多個(gè)訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集包含多個(gè)在網(wǎng)絡(luò)行為日志中抽取的記錄;
采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)。
可選地,所述采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)包括:
計(jì)算所述訓(xùn)練數(shù)據(jù)集的經(jīng)驗(yàn)熵;
計(jì)算所述訓(xùn)練數(shù)據(jù)集相對(duì)于特征的經(jīng)驗(yàn)條件熵;
計(jì)算所述訓(xùn)練數(shù)據(jù)集基于所述特征的信息增益,所述信息增益為使用所述特征分類時(shí)的所述經(jīng)驗(yàn)條件熵與所述經(jīng)驗(yàn)熵的偏離程度;
根據(jù)所述信息增益對(duì)所述訓(xùn)練數(shù)據(jù)集進(jìn)行分類;
計(jì)算所述訓(xùn)練數(shù)據(jù)集中判別為攻擊的記錄數(shù)量;
根據(jù)所述記錄數(shù)量與預(yù)設(shè)規(guī)則,確定各節(jié)點(diǎn)的賦值,將節(jié)點(diǎn)與所述賦值作為決策樹(shù)的一個(gè)葉子節(jié)點(diǎn)。
可選地,所述計(jì)算所述訓(xùn)練數(shù)據(jù)集的經(jīng)驗(yàn)熵包括:
采用計(jì)算所述訓(xùn)練數(shù)據(jù)集的經(jīng)驗(yàn)熵;其中,K為訓(xùn)練集D(t)的種類,第k類Dc(t,k)的樣本數(shù)量為|Dc(t,k)|,|D(t)|為訓(xùn)練集D(t)的樣本數(shù)量。
可選地,所述計(jì)算所述訓(xùn)練數(shù)據(jù)集相對(duì)于特征的經(jīng)驗(yàn)條件熵包括:
采用
計(jì)算所述訓(xùn)練數(shù)據(jù)集相對(duì)于特征的經(jīng)驗(yàn)條件熵H(D(t)|S(j));
其中,J為特征集S中特征的數(shù)量,I為第j個(gè)特征S(j)的取值的數(shù)量;|Ds(t,i,j)|為依據(jù)I取值將訓(xùn)練集D(t)劃分為I個(gè)子集后,第i個(gè)子集Ds(t,i,j)的樣本數(shù)量。
可選地,所述計(jì)算所述訓(xùn)練數(shù)據(jù)集基于所述特征的信息增益包括:
采用計(jì)算所述訓(xùn)練數(shù)據(jù)集基于所述特征的信息增益ΔH(D(t)|S(j))。
可選地,所述根據(jù)所述信息增益對(duì)所述訓(xùn)練數(shù)據(jù)集進(jìn)行分類包括:
根據(jù)所述訓(xùn)練數(shù)據(jù)集基于特征集所有特征的信息增益,確定信息增益值最大的一個(gè)特征S(b);
如果所述信息增益ΔH(D(t)|S(b))小于預(yù)設(shè)閾值δ,則D(t)不可以基于特征S(b)進(jìn)行分類,將該集合作為偽梯度提升決策樹(shù)G(t)一個(gè)葉子節(jié)點(diǎn);
如果ΔH(D(t)|S(b))大于或等于所述預(yù)設(shè)閾值δ,則D(t)可以基于特征S(b)進(jìn)行分類;根據(jù)S(b)的I個(gè)取值將所述訓(xùn)練數(shù)據(jù)集D(t)劃分為I個(gè)子集。
可選地,所述根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各所述偽梯度提升決策樹(shù)的權(quán)重信息包括:
采用對(duì)各所述偽梯度提升決策樹(shù)的權(quán)重信息α(t)進(jìn)行確定;
其中,S(t)為G(t)分裂屬性的特征集合,|S(t)|為S(t)內(nèi)特征的數(shù)量,F(xiàn)s(t,u)為S(t)內(nèi)的一個(gè)特征S(t,u)在T個(gè)決策樹(shù)上作為分裂屬性出現(xiàn)的次數(shù),Ds(t,u)為特征S(t,u)作為G(t)的分裂屬性所在的深度。
本發(fā)明還提供了一種網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),包括:
決策樹(shù)集合生成模塊,用于生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;
權(quán)值確定模塊,用于根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各所述偽梯度提升決策樹(shù)的權(quán)重信息;
判斷模塊,用于分別采用所述偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;
結(jié)果生成模塊,用于將各所述獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷所述網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。
可選地,所述決策樹(shù)集合生成模塊包括:
并行抽取單元,用于采用并行的方式抽取多個(gè)訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集包含多個(gè)在網(wǎng)絡(luò)行為日志中抽取的記錄;
并行計(jì)算單元,用于采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)。
本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法及系統(tǒng),通過(guò)生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各偽梯度提升決策樹(shù)的權(quán)重信息;分別采用偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;將各獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。本申請(qǐng)具有簡(jiǎn)單易解、區(qū)分精度高、智能綜合處理能力強(qiáng)的特點(diǎn);同時(shí),還可以在云計(jì)算環(huán)境下分布式并行生成偽梯度提升決策樹(shù),提高了決策樹(shù)的動(dòng)態(tài)更新運(yùn)算速度,增加了IDS檢測(cè)新型入侵事件實(shí)時(shí)性與準(zhǔn)確性。
附圖說(shuō)明
為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法的一種具體實(shí)施方式的流程圖;
圖2為本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法的另一種具體實(shí)施方式中采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)的過(guò)程示意圖;
圖3為本發(fā)明實(shí)施例的整體構(gòu)架示意圖;
圖4為本發(fā)明實(shí)施例依據(jù)訓(xùn)練數(shù)據(jù)集D(t)生成一個(gè)偽梯度提升決策樹(shù)G(t)的流程圖;
圖5為本發(fā)明實(shí)施例訓(xùn)練集D(t)經(jīng)驗(yàn)熵H(D(t))的計(jì)算流程圖;
圖6為本發(fā)明實(shí)施例訓(xùn)練集D(t)相對(duì)于特征S(j)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))的計(jì)算流程圖;
圖7為本發(fā)明實(shí)施例偽梯度提升決策樹(shù)G(t)權(quán)重α(t)的計(jì)算流程圖;
圖8為本發(fā)明實(shí)施例各個(gè)偽梯度提升決策樹(shù)G(t)綜合檢測(cè)網(wǎng)絡(luò)攻擊的流程圖;
圖9為本發(fā)明實(shí)施例在云計(jì)算SPARK平臺(tái)上與隨機(jī)森林方法進(jìn)行的測(cè)試與比較圖;
圖10為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法的一種具體實(shí)施方式的流程圖如圖1所示,該方法包括:
步驟S101:生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;
具體地,可以采用并行的方式生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合G。
在云平臺(tái)的網(wǎng)絡(luò)行為日志D中,采用并行方式抽取T個(gè)訓(xùn)練數(shù)據(jù)集D(t)。抽取方法采用Bootstrapping方式,每個(gè)訓(xùn)練數(shù)據(jù)集合包含N條在網(wǎng)絡(luò)行為日志中抽取的記錄。依據(jù)這T個(gè)訓(xùn)練數(shù)據(jù)集D(t),使用云計(jì)算方式并行獨(dú)立地求取T個(gè)偽梯度提升決策樹(shù)G(t)。其中,以一個(gè)訓(xùn)練數(shù)據(jù)集為基礎(chǔ),按照如下方法求取一個(gè)偽梯度提升決策樹(shù)G(t)。
假設(shè)訓(xùn)練集D(t)可以分為K類,其中第k類Dc(t,k)的樣本數(shù)量為|Dc(t,k)|。訓(xùn)練集D(t)的樣本數(shù)量表示為|D(t)|,則D(t)的經(jīng)驗(yàn)熵H(D(t))可以按照公式計(jì)算。
特征集S有J個(gè)特征,其中的第j個(gè)特征S(j)有I個(gè)可能的取值。依據(jù)I取值可以將訓(xùn)練集D(t)劃分為I個(gè)子集,其中的第i個(gè)子集Ds(t,i,j)的樣本數(shù)量為|Ds(t,i,j)|。則特征S(j)相對(duì)于訓(xùn)練集D(t)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))可以按照公式
計(jì)算。
這樣可以按照公式
得到訓(xùn)練集D(t)基于特征S(j)的信息增益ΔH(D(t)|S(j))。
按照上述方法,求取D(t)基于特征集S中所有J個(gè)特征的信息增益,得到信息增益值最大的一個(gè)特征為S(b),D(t)基于S(b)的信息增益滿足公式給出的條件。
如果ΔH(D(t)|S(b))小于等于給定的閾值δ,則表示D(t)不可以基于特征S(b)分類,而S(b)是特征集S中信息增益值最大的一個(gè)特征,所以D(t)不可以基于S進(jìn)行分類。D(t)為同一類,將該集合為偽梯度提升決策樹(shù)G(t)一個(gè)葉子節(jié)點(diǎn),返回。
如果ΔH(D(t)|S(b))大于或者等于給定的閾值δ,則表示D(t)可以基于特征S(b)分類。根據(jù)S(b)的I個(gè)取值再將訓(xùn)練集D(t)劃分為I個(gè)子集,計(jì)算其中樣本數(shù)量最大的子集為Ds(t,a,b),即Ds(t,a,b)滿足公式:
將Ds(t,a,b)作為訓(xùn)練集D(t),{S-S(b)}作為特征集S,按照上述相同的方法進(jìn)行分類。用遞歸的方式重復(fù)上述步驟,得到一個(gè)偽梯度提升決策樹(shù)G(t)。
采用云計(jì)算并行方式對(duì)其他T-1個(gè)訓(xùn)練數(shù)據(jù)集D(t)使用上述相同的方法,獨(dú)立生成T-1個(gè)偽梯度提升決策樹(shù)G(t)。這樣,用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合G內(nèi)的所有決策樹(shù)G(t)并行生成完畢。
步驟S102:根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各所述偽梯度提升決策樹(shù)的權(quán)重信息;
決策樹(shù)集合G內(nèi)的T個(gè)決策樹(shù)G(t)將共同使用,來(lái)判別一條網(wǎng)絡(luò)行為是否為攻擊。各個(gè)G(t)的判別結(jié)果可能不同,當(dāng)它們的判別結(jié)果互相沖突時(shí)候,需要設(shè)定各個(gè)樹(shù)G(t)的權(quán)重α(t)。依據(jù)樹(shù)G(t)的不同權(quán)重綜合計(jì)算不同的判別結(jié)果,確定網(wǎng)絡(luò)行為是否為攻擊。
非葉子節(jié)點(diǎn)是數(shù)據(jù)集進(jìn)行分裂的節(jié)點(diǎn),該節(jié)點(diǎn)分類所使用的特征即為該節(jié)點(diǎn)的分裂屬性,決策樹(shù)的權(quán)重α(t)由整個(gè)樹(shù)的分裂屬性決定。假定作為G(t)分裂屬性的特征為集合為S(t),則S(t)為特征集S的子集,即S(t)內(nèi)特征的數(shù)量為|S(t)|,S(t)內(nèi)的某一個(gè)特征S(t,u)在T個(gè)決策樹(shù)上作為分裂屬性出現(xiàn)的次數(shù)為Fs(t,u)。S(t,u)對(duì)G(t)分裂屬性的影響還與它所在的位置有關(guān),不同深度的分裂屬性提供的信息熵增益不同,越靠近根節(jié)點(diǎn)分裂屬性權(quán)重越大。若特征S(t,u)作為G(t)的分裂屬性所在的深度為Ds(t,u),則決策樹(shù)G(t)的權(quán)重α(t)可以用公式進(jìn)行求解。
各決策樹(shù)權(quán)重α(t)的計(jì)算過(guò)程相互對(duì)立,也采用云計(jì)算的方式并行求解。
步驟S103:分別采用所述偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;
步驟S104:將各所述獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷所述網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。
決策樹(shù)集合G內(nèi)的T個(gè)決策樹(shù)G(t)及其權(quán)重,分別駐守在云平臺(tái)的T個(gè)虛擬計(jì)算設(shè)備上,對(duì)接收的網(wǎng)絡(luò)行為記錄進(jìn)行并行獨(dú)立的判斷,然后將判斷結(jié)果乘以權(quán)重α(t)后交給中心虛擬設(shè)備綜合判斷,得出最終判斷結(jié)果。若x為一條網(wǎng)絡(luò)行為記錄,通過(guò)決策樹(shù)G(t)后的判別結(jié)果為R(t,x),則R(t,x)的可能取值有三個(gè):+1(表示判別為網(wǎng)絡(luò)攻擊)、-1(表示判別為不是網(wǎng)絡(luò)攻擊)、0(表示不能判別)。所有決策樹(shù)G(t)并行獨(dú)立判斷完畢后,使用公式綜合判斷該條網(wǎng)絡(luò)行為記錄x是否為網(wǎng)絡(luò)攻擊。
本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法,通過(guò)生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各偽梯度提升決策樹(shù)的權(quán)重信息;分別采用偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;將各獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。本申請(qǐng)具有簡(jiǎn)單易解、區(qū)分精度高、智能綜合處理能力強(qiáng)的特點(diǎn);同時(shí),還可以在云計(jì)算環(huán)境下分布式并行生成偽梯度提升決策樹(shù),提高了決策樹(shù)的動(dòng)態(tài)更新運(yùn)算速度,增加了IDS檢測(cè)新型入侵事件實(shí)時(shí)性與準(zhǔn)確性。
在上述實(shí)施例的基礎(chǔ)上,本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合可以具體包括:
采用并行的方式抽取多個(gè)訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集包含多個(gè)在網(wǎng)絡(luò)行為日志中抽取的記錄;
采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)。
具體地,參照?qǐng)D2,采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)的過(guò)程又可以進(jìn)一步包括:
步驟S201:計(jì)算所述訓(xùn)練數(shù)據(jù)集的經(jīng)驗(yàn)熵;
作為一種具體實(shí)施方式,可以采用計(jì)算所述訓(xùn)練數(shù)據(jù)集的經(jīng)驗(yàn)熵;其中,K為訓(xùn)練集D(t)的種類,第k類Dc(t,k)的樣本數(shù)量為|Dc(t,k)|,|D(t)|為訓(xùn)練集D(t)的樣本數(shù)量。
步驟S202:計(jì)算所述訓(xùn)練數(shù)據(jù)集相對(duì)于特征的經(jīng)驗(yàn)條件熵;
具體地,可以采用
計(jì)算所述訓(xùn)練數(shù)據(jù)集相對(duì)于特征的經(jīng)驗(yàn)條件熵H(D(t)|S(j));
其中,J為特征集S中特征的數(shù)量,I為第j個(gè)特征S(j)的取值的數(shù)量;|Ds(t,i,j)|為依據(jù)I取值將訓(xùn)練集D(t)劃分為I個(gè)子集后,第i個(gè)子集Ds(t,i,j)的樣本數(shù)量。
步驟S203:計(jì)算所述訓(xùn)練數(shù)據(jù)集基于所述特征的信息增益,所述信息增益為使用所述特征分類時(shí)的所述經(jīng)驗(yàn)條件熵與所述經(jīng)驗(yàn)熵的偏離程度;
采用計(jì)算所述訓(xùn)練數(shù)據(jù)集基于所述特征的信息增益ΔH(D(t)|S(j))。
步驟S204:根據(jù)所述信息增益對(duì)所述訓(xùn)練數(shù)據(jù)集進(jìn)行分類;
根據(jù)所述訓(xùn)練數(shù)據(jù)集基于特征集所有特征的信息增益,確定信息增益值最大的一個(gè)特征S(b);
如果所述信息增益ΔH(D(t)|S(b))小于預(yù)設(shè)閾值δ,則D(t)不可以基于特征S(b)進(jìn)行分類,將該集合作為偽梯度提升決策樹(shù)G(t)一個(gè)葉子節(jié)點(diǎn);
如果ΔH(D(t)|S(b))大于或等于所述預(yù)設(shè)閾值δ,則D(t)可以基于特征S(b)進(jìn)行分類;根據(jù)S(b)的I個(gè)取值將所述訓(xùn)練數(shù)據(jù)集D(t)劃分為I個(gè)子集。
步驟S205:計(jì)算所述訓(xùn)練數(shù)據(jù)集中判別為攻擊的記錄數(shù)量;
步驟S206:根據(jù)所述記錄數(shù)量與預(yù)設(shè)規(guī)則,確定各節(jié)點(diǎn)的賦值,將節(jié)點(diǎn)與所述賦值作為決策樹(shù)的一個(gè)葉子節(jié)點(diǎn)。
圖3是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法的系統(tǒng)構(gòu)架,該構(gòu)架基于PaaS云計(jì)算平臺(tái)設(shè)計(jì)。下面基于該系統(tǒng)架構(gòu),對(duì)本發(fā)明實(shí)施例所提供的網(wǎng)絡(luò)入侵檢測(cè)方法進(jìn)行進(jìn)一步詳細(xì)闡述。各個(gè)虛擬節(jié)點(diǎn)使用并行方式在網(wǎng)絡(luò)行為日志D中獨(dú)立抽取N條記錄,組成訓(xùn)練數(shù)據(jù)集D(t),抽取方法采用Bootstrapping方式。每個(gè)虛擬節(jié)點(diǎn)以自己的訓(xùn)練數(shù)據(jù)集合為依據(jù),在云平臺(tái)上并行獨(dú)立的生成一個(gè)偽梯度提升決策樹(shù)G(t)。綜合判定節(jié)點(diǎn)依據(jù)各個(gè)決策樹(shù)的分裂屬性的頻率與層次,計(jì)算各個(gè)偽梯度提升決策樹(shù)G(t)的權(quán)重α(t)。決策樹(shù)集合G生成完畢后,就可以對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行實(shí)時(shí)判定。各個(gè)決策樹(shù)G(t)將并行判定后的結(jié)果乘以權(quán)重α(t),提交給綜合判定節(jié)點(diǎn),確定該網(wǎng)絡(luò)行為是否為網(wǎng)絡(luò)入侵。
圖4是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法中,任意虛擬節(jié)點(diǎn)t依據(jù)一個(gè)訓(xùn)練數(shù)據(jù)集D(t)生成一個(gè)偽梯度提升決策樹(shù)G(t)的方法示意圖,以下通過(guò)具體步驟進(jìn)行詳細(xì)說(shuō)明:
步驟S301,完成一系列參數(shù)的初始化。主要包括:給訓(xùn)練數(shù)據(jù)集D(t)、特征集S中的所有元素賦值,指定閾值δ、λ0、λ1的值,將循環(huán)變量j的初始值置為1、信息增益最大值Δ的初始值置為0。
步驟S302,計(jì)算訓(xùn)練集D(t)的經(jīng)驗(yàn)熵H(D(t))。H(D(t))反應(yīng)了訓(xùn)練樣本集最終分類結(jié)果的信息熵,它是經(jīng)驗(yàn)熵計(jì)算的參考依據(jù),圖5給出了它的詳細(xì)計(jì)算過(guò)程。
步驟S303,計(jì)算訓(xùn)練集D(t)相對(duì)于特征S(j)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))。H(D(t)|S(j))反應(yīng)了訓(xùn)練樣本集使用特征S(j)進(jìn)行分類時(shí),所得結(jié)果的信息熵,圖6給出了它的詳細(xì)計(jì)算過(guò)程。
步驟S304,計(jì)算訓(xùn)練集D(t)基于特征S(j)的信息增益ΔH(D(t)|S(j))。ΔH(D(t)|S(j))反應(yīng)了使用特征S(j)分類時(shí)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))與經(jīng)驗(yàn)熵H(D(t))的偏離程度。它的值越大,說(shuō)明使用S(j)分類后各個(gè)樣本之間的差別越大,再進(jìn)行分類的必要性越大。ΔH(D(t)|S(j))是H(D(t)|S(j))與H(D(t))之差,使用公式進(jìn)行計(jì)算。
步驟S305,判別ΔH(D(t)|S(j))是否大于當(dāng)前的信息增益最大值Δ。如果成立,則將Δ取ΔH(D(t)|S(j))的值,并將j的值記錄到變量b中,然后轉(zhuǎn)到步驟S306;否則,直接轉(zhuǎn)到步驟S306。
步驟S306,判斷特征集S中的J個(gè)特征是否使用完畢。如果成立,則轉(zhuǎn)到步驟S307;否則,j=j(luò)+1,取下一個(gè)特征,轉(zhuǎn)到步驟S303循環(huán)執(zhí)行。
步驟S307,判斷信息增益最大值ΔH(D(t)|S(b))是否小于等于給定的閾值δ。如果成立,則說(shuō)明該訓(xùn)練集D(t)各個(gè)樣本之間的差別不大了,沒(méi)有必要進(jìn)行分類,轉(zhuǎn)到步驟S312;否則,說(shuō)明D(t)需要進(jìn)行分類,轉(zhuǎn)到步驟S308。
步驟S308,將S(b)作為決策樹(shù)G(t)的一個(gè)非葉子節(jié)點(diǎn)值存儲(chǔ)。決策樹(shù)非葉子節(jié)點(diǎn)的值就是該節(jié)點(diǎn)進(jìn)行分支所使用的判斷依據(jù),即進(jìn)行分類所使用的特征S(b)。
步驟S309,將D(t)使用增益最大的特征S(b)劃分成多個(gè)子集。若特征S(b)的可選值數(shù)量是I,則子集的數(shù)量也為I,其中的第i個(gè)子集表述為Ds(t,i,b)。將相關(guān)參數(shù)初始化i=1,|Ds(t,a,b)|=0。
步驟S310,求D(t)的所有I個(gè)子集中樣本數(shù)量最大的子集為Ds(t,a,b)。判斷第i個(gè)子集的樣本數(shù)量|Ds(t,i,b)|是否大于|Ds(t,a,b)|。如果成立,則|Ds(t,a,b)|=|Ds(t,i,b)|,并將i的值記錄到變量a中,然后循環(huán)本步驟,計(jì)算下一個(gè)子集的樣本數(shù)量;否則直接循環(huán)本步驟。所有I個(gè)子集循環(huán)完畢后,得到樣本數(shù)量最大的子集為Ds(t,a,b),轉(zhuǎn)到步驟310。
步驟S311,將Ds(t,a,b)作為訓(xùn)練集D(t),將{S-S(b)}作為特征集S,重復(fù)上述步驟,用遞歸的方式G(t)的下一級(jí)子樹(shù)。首先,重新進(jìn)行參數(shù)初始化,即令D(t)=Ds(t,a,b),S={S-S(b)},J=J-1,j=1,Δ=0。然后,再轉(zhuǎn)到步驟S302。
步驟S312,計(jì)算D(t)中判別為攻擊的記錄數(shù)量h。判斷訓(xùn)練集D(t)中的每一條網(wǎng)絡(luò)行為記錄,將其中是網(wǎng)絡(luò)攻擊的記錄進(jìn)行統(tǒng)計(jì),得到網(wǎng)絡(luò)攻擊的數(shù)量h。
步驟S313,判斷h/|D(t)|的值。若該值大于λ1,表明訓(xùn)練集D(t)中攻擊記錄比較多,節(jié)點(diǎn)賦值為+1,判別為網(wǎng)絡(luò)攻擊行為;若該值小于λ0,表明訓(xùn)練集D(t)中攻擊記錄比較少,節(jié)點(diǎn)賦值為-1,判別為非網(wǎng)絡(luò)攻擊行為;若該值大于λ0且小于λ1,表明訓(xùn)練集D(t)中攻擊記錄難以歸類,節(jié)點(diǎn)賦值為0,該特征進(jìn)行網(wǎng)絡(luò)行為判斷的依據(jù)時(shí)結(jié)果不明確,為疑似攻擊。
步驟S314,將節(jié)點(diǎn)連同其所賦的值作為決策樹(shù)G(t)的一個(gè)葉子節(jié)點(diǎn)直接返回。
圖5是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法與系統(tǒng)中,訓(xùn)練集D(t)的經(jīng)驗(yàn)熵H(D(t))的計(jì)算方法示意圖(即圖4的步驟S302),以下通過(guò)具體步驟進(jìn)行詳細(xì)說(shuō)明:
步驟S3021,統(tǒng)計(jì)訓(xùn)練集D(t)的樣本數(shù)量|D(t)|。訓(xùn)練數(shù)據(jù)集D(t)在步驟S301中已經(jīng)賦值,記錄D(t)中的元素?cái)?shù)量到|D(t)|即可。
步驟S3022,獲取D(t)分出的K個(gè)類別,得到其K個(gè)子集Dc。各個(gè)子集Dc(t,k)是樣本訓(xùn)練集D(t)的最終分類結(jié)果,本發(fā)明所得的分類結(jié)果就是以Dc為標(biāo)準(zhǔn)進(jìn)行衡量和訓(xùn)練的。
步驟S3023,參數(shù)初始化。將信息熵初值sum置為0,將k值置為1,為接下來(lái)的運(yùn)算做好準(zhǔn)備。
步驟S3024,計(jì)算屬于第k類子集的樣本在訓(xùn)練集D(t)中的比例r(k)。先統(tǒng)計(jì)第k類子訓(xùn)練集Dc(t,k)的樣本數(shù)量|Dc(t,k)|,然后計(jì)算|Dc(t,k)|與|D(t)|的比例,即:r(k)=|Dc(t,k)|/|D(t)|。
步驟S3025,計(jì)算累加系數(shù)的相反數(shù)-u。根據(jù)公式(1),這里的累加系數(shù)u相反數(shù)可以根據(jù)上一步驟中的r(k)求得,即:-u=r(k)*log r(k)。
步驟S3026,將系數(shù)u累加到sum中。為了進(jìn)行累加求和,令sum=sum+u。然后將循環(huán)系數(shù)再累加1次,即:k=k+1。
步驟S3027,檢查k是否大于K。如果成立,表示K個(gè)子集Dc已經(jīng)全部計(jì)算完畢,直接轉(zhuǎn)到步驟S1028;否則,轉(zhuǎn)到步驟S3024。
步驟S3028,將sum作為訓(xùn)練集D(t)的經(jīng)驗(yàn)熵值H(D(t))返回。
圖6是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法與系統(tǒng)中,訓(xùn)練集D(t)相對(duì)于特征S(j)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))的計(jì)算方法(即圖4的步驟S303),以下通過(guò)具體步驟進(jìn)行詳細(xì)說(shuō)明:
步驟S3031,參數(shù)初始化。這里S(j)可能的取值有I個(gè),則先準(zhǔn)備I個(gè)訓(xùn)練集的子集Ds,并每個(gè)子集Ds(t,i,j)都置為空;還要將循環(huán)系數(shù)i、e等的初值都設(shè)置為1。
步驟S3032,判斷訓(xùn)練集D(t)中的第e個(gè)元素的特征S(j)值d(e)|s(j)=s(i,j)是否成立。d(e)表示訓(xùn)練集D(t)中的第e個(gè)元素,d(e)|s(j)表示該元素的特征S(j)的值,s(i,j)表示特征S(j)的第i個(gè)取值。如果成立,則轉(zhuǎn)到步驟S3033;否則,跳過(guò)S3033,直接轉(zhuǎn)到步驟S3034。
步驟S3033,令Ds(t,i,j)=Ds(t,i,j)+d(e)。該步驟表示將d(e)添加到子集Ds(t,i,j)中,即d(e)添加到訓(xùn)練集D(t)按照特征S(j)分類的第i個(gè)子集Ds(t,i,j)中。
步驟S3034,判斷循環(huán)系數(shù)e是否小于D(t)中的元素?cái)?shù)量|D(t)|。如果成立,表示集合中的所有元素都做了判別,符合步驟S3032中的判別條件的元素都放入到了子集Ds(t,i,j)中,轉(zhuǎn)到步驟S3035;否則,表示D(t)中還有元素,將循環(huán)系數(shù)e累加1次,即e=e+1,轉(zhuǎn)到步驟S3032。
步驟S3035,判斷循環(huán)系數(shù)i是否小于S(j)的可能取值數(shù)量I。如果成立,則表示S(j)的所有可能取值已經(jīng)判斷完畢,D(t)中的所有元素都按照特征S(j)放入到相應(yīng)子集Ds中,令循環(huán)系數(shù)i置為初值1,累加和sum置為初值0,轉(zhuǎn)到步驟S3036;否則,表示S(j)還有取值未做判斷,則循環(huán)系數(shù)i累加1次,即i=i+1,轉(zhuǎn)到步驟S3032。
步驟S3036,計(jì)算屬于第i類子集Ds(t,i,j)的樣本在訓(xùn)練集D(t)中的比例r(i)。先統(tǒng)計(jì)依舊特征S(j)分類后第i個(gè)子集Ds(t,i,j)的樣本數(shù)量|Ds(t,i,j)|,然后計(jì)算|Ds(t,i,j)|與|D(t)|的比例,即:r(i)=|Ds(t,i,j)|/|D(t)|。
步驟S3037,計(jì)算累加系數(shù)v。根據(jù)公式
這里的累加系數(shù)v可以根據(jù)上一步驟中的r(i)與步驟S302中的經(jīng)驗(yàn)熵H(D(t))求得,即:v=r(i)*H(D(t))。
步驟S3038,將系數(shù)v累加到sum中。為了進(jìn)行累加求和,令sum=sum+v。然后將循環(huán)系數(shù)再累加1次,即:i=i+1。
步驟S3039,檢查i是否大于I。如果成立,表示I個(gè)子集Ds已經(jīng)全部計(jì)算完畢,直接轉(zhuǎn)到步驟S3030;否則,轉(zhuǎn)到步驟S3036。
步驟S3030,將sum作為訓(xùn)練集D(t)相對(duì)于特征S(j)的經(jīng)驗(yàn)條件熵H(D(t)|S(j))返回。
圖7是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法與系統(tǒng)中,G中各個(gè)偽梯度提升決策樹(shù)G(t)的權(quán)重α(t)的計(jì)算方法示意圖,以下通過(guò)具體步驟進(jìn)行詳細(xì)說(shuō)明:
步驟S401,初始化數(shù)組L(t,u),并令參數(shù)t=1。計(jì)算權(quán)重α(t)前,先要將決策樹(shù)G(t)的非葉子節(jié)點(diǎn)值遍歷出來(lái),放到數(shù)組L(t,u)中。數(shù)組L(t,u)中存放的元素是一個(gè)包括.s和.layer兩個(gè)分量的結(jié)構(gòu)體,L(t,u).s分量的類型是特征,表示非葉子節(jié)點(diǎn)存放的特征值;L(t,u).layer該節(jié)點(diǎn)在G(t)上的深度。L(t,u)數(shù)組初始化后,各個(gè)元素的兩個(gè)分量都被置為0。
步驟S402,初始化函數(shù)Trav(G(t),j),并令參數(shù)u,j=1。Trav(G(t),j)是使用遞歸方法遍歷G(t)的函數(shù),j是子樹(shù)根節(jié)點(diǎn)在G(t)上的深度,這里G(t)根節(jié)點(diǎn)的深度為1,u是循環(huán)系數(shù)。該函數(shù)在遍歷G(t)的過(guò)程中,將非葉子節(jié)點(diǎn)的值和深度,分別存放到數(shù)組L(t,u)相應(yīng)元素的.s和.layer兩個(gè)分量中。
步驟S403,開(kāi)始執(zhí)行函數(shù)Trav(G(t),j),判斷當(dāng)前節(jié)點(diǎn)是否為非葉子節(jié)點(diǎn)。如果成立,則轉(zhuǎn)到步驟S404;否則,該函數(shù)直接返回。
步驟S404,L(t,u).s=Node,L(t,u).layer=j(luò);u=u+1,j=j(luò)+1。即將當(dāng)前節(jié)點(diǎn)所存儲(chǔ)的特征值賦給分量L(t,u).s,當(dāng)前j值賦給分量L(t,u).layer,并將循環(huán)系數(shù)加1。
步驟S405,函數(shù)遞歸遍歷左子樹(shù),即使執(zhí)行函數(shù)Trav(G(t)->left,j)。
步驟S406,函數(shù)遞歸遍歷右子樹(shù),即使執(zhí)行函數(shù)Trav(G(t)->right,j)。
函數(shù)Trav(G(t),j)執(zhí)行完畢,決策樹(shù)G(t)也就遍歷完畢了,非葉子節(jié)點(diǎn)的值和深度存放到數(shù)組L中。
步驟S407,判斷t<T是否成立。如果成立,則令t=t+1,轉(zhuǎn)到步驟S402,遍歷下一棵決策樹(shù)G(t);否則,令t=1,轉(zhuǎn)到步驟S408。
步驟S408,為執(zhí)行權(quán)重計(jì)算,重新進(jìn)行參數(shù)初始化,令循環(huán)系數(shù)u=1,累加和sum=0。
步驟S409,統(tǒng)計(jì)數(shù)組L中值與L(t,u).s相同的元素?cái)?shù)量Fs。任意特征在一個(gè)樹(shù)G(t)中最多出現(xiàn)一次,所以Fs小于等于T。只要在數(shù)組L的一行中查找到這個(gè)特征,F(xiàn)s加1,然后在下一行中查找;如果該行中沒(méi)有找到這個(gè)特征,F(xiàn)s就不需要加1了。
步驟S410,將L(t,u).layer賦值給Ds。.layer向量中存儲(chǔ)的即為該節(jié)點(diǎn)的深度,直接賦值給Ds即可。
步驟S411,根據(jù)公式將Fs/(Ds*T)累加到求和參數(shù)sum中。
步驟S412,判斷當(dāng)前元素是否是L中第t行最后的元素。當(dāng)該元素為最后元素時(shí),下一個(gè)元素的.layer分量為0。如果成立,則轉(zhuǎn)到步驟S413;否則,令u=u+1,轉(zhuǎn)到步驟S409。
步驟S413,α(t)=sum,即當(dāng)前sum值即為G(t)權(quán)重α(t)的值。
步驟S414,判斷t<T是否成立。如果成立,則令t=t+1,轉(zhuǎn)到步驟S408,計(jì)算下一棵決策樹(shù)G(t)的權(quán)重α(t);否則,轉(zhuǎn)到步驟S415。
步驟S415,將α(t)作為計(jì)算結(jié)果返回,所有決策樹(shù)G(t)的權(quán)重計(jì)算完畢。
圖8是本發(fā)明實(shí)施例一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法與系統(tǒng)中,接收到一條網(wǎng)絡(luò)行為記錄x后,通過(guò)各個(gè)偽梯度提升決策樹(shù)G(t)綜合判斷其是否為網(wǎng)絡(luò)攻擊的方法示意圖,以下通過(guò)具體步驟進(jìn)行詳細(xì)說(shuō)明:
步驟S501,云平臺(tái)接收到一條網(wǎng)絡(luò)行為記錄x后,進(jìn)行參數(shù)初始化,令t=1,累加和sum=0。
步驟S502,使用決策樹(shù)G(t)對(duì)x進(jìn)行判別,得到結(jié)果為R(t,x)。網(wǎng)絡(luò)行為x到達(dá)G(t)后,從根節(jié)點(diǎn)開(kāi)始,依據(jù)各個(gè)非葉子節(jié)點(diǎn)上的特征逐級(jí)進(jìn)行判斷,直到到達(dá)葉子節(jié)點(diǎn)。所得到的葉子節(jié)點(diǎn)值:+1、0或-1,即為判別結(jié)果R(t,x)的值。
步驟S503,計(jì)算累加系數(shù)β(t),根據(jù)公式該系數(shù)值即為α(t)*R(t,x)。
步驟S504,判斷t<T是否成立。如果成立,則令t=t+1,轉(zhuǎn)到步驟S502,計(jì)算下一棵決策樹(shù)G(t)的判別結(jié)果;否則,轉(zhuǎn)到步驟S505。
步驟S505,所有決策樹(shù)的判別結(jié)果求解完畢,將T個(gè)累加系數(shù)β(t)全部累加求和,然后取整,得到結(jié)果即為最終判別結(jié)果。如果最終判別結(jié)果大于等于+1,則網(wǎng)絡(luò)行為判別為攻擊;如果最終判別結(jié)果小于等于-1,則網(wǎng)絡(luò)行為判別為非攻擊;如果最終判別在-1和+1之間,則網(wǎng)絡(luò)行為判別為疑似攻擊。
步驟S506,將最終的綜合判別結(jié)果返回,轉(zhuǎn)到步驟S501,對(duì)下一條網(wǎng)絡(luò)行為進(jìn)行判斷。
上述所有使用循環(huán)方式進(jìn)行的偽梯度提升決策樹(shù)G(t)生成、權(quán)重α(t)計(jì)算、多決策樹(shù)網(wǎng)絡(luò)行為判別等過(guò)程,各運(yùn)算之間相互獨(dú)立,都可以使用云計(jì)算方式并行實(shí)現(xiàn)。
圖9是本發(fā)明的實(shí)施例的一種面向云計(jì)算的網(wǎng)絡(luò)入侵檢測(cè)方法與系統(tǒng),在云計(jì)算SPARK平臺(tái)上與隨機(jī)森林方法進(jìn)行的比較與測(cè)試。本測(cè)試中將網(wǎng)絡(luò)入侵行為指令細(xì)分為13個(gè)小類,將數(shù)據(jù)向量表示為[hostid,uid,pid,commandfile,calldirectory,cmd1Vec,cmd2Vec,...,cmd13Vec,labelid],分別代表用戶登錄IP、Linux主機(jī)用戶id、進(jìn)程id、調(diào)用程序主目錄、用戶當(dāng)前工作目錄、以及13種對(duì)應(yīng)的命令向量(表示用戶執(zhí)行過(guò)的命令行為)和類別標(biāo)簽。
本發(fā)明的偽梯度提升決策樹(shù)算法與隨機(jī)森林法和都采用Bootstrapping抽樣,形成用于訓(xùn)練的數(shù)據(jù)集和用于驗(yàn)證的袋外數(shù)據(jù)集,并分別在不同數(shù)據(jù)規(guī)模上進(jìn)行多次測(cè)試。實(shí)驗(yàn)比較RF和PBDT在分配不同迭代次數(shù)的情況下,進(jìn)行了10次測(cè)試,取得平均值作為實(shí)驗(yàn)結(jié)果。圖9中兩種算法都采用了不同的迭代次數(shù),可以看出:在使用閾值迭代,迭代次數(shù)達(dá)到一定值后,本發(fā)明在網(wǎng)絡(luò)行為事務(wù)量大于18萬(wàn)件以后,才會(huì)有較少的誤差率;在網(wǎng)絡(luò)行為事務(wù)量較少的時(shí)候,本發(fā)明的優(yōu)勢(shì)得不到展示。在決策樹(shù)充分迭代后,本發(fā)明充分利用不同弱決策樹(shù)之間的經(jīng)驗(yàn),從而達(dá)到加速學(xué)習(xí)的效果,誤差下降速度明顯快于隨機(jī)森林法,并在隨機(jī)森林法前約1.5個(gè)訓(xùn)練數(shù)據(jù)級(jí)別就達(dá)到擬合狀態(tài)。本發(fā)明在網(wǎng)絡(luò)行為事務(wù)量較小時(shí),袋外誤差的波動(dòng)范圍也較大,隨著數(shù)據(jù)量規(guī)模增大,誤差率不斷減小。隨機(jī)森林決策樹(shù)之間信息不共享,訓(xùn)練數(shù)據(jù)量增大對(duì)隨機(jī)森林誤差率的穩(wěn)定性沒(méi)有影響;而對(duì)于本發(fā)明,隨著網(wǎng)絡(luò)行為事務(wù)量的提升,在擁有足夠迭代次數(shù)時(shí),目標(biāo)函數(shù)的個(gè)數(shù)得到減小,誤差率下降速率要比隨機(jī)森林快。
綜上所述,本發(fā)明實(shí)施例通過(guò)偽梯度提升決策樹(shù)算法,減少了網(wǎng)絡(luò)行為判斷的誤差率,提高了入侵檢的準(zhǔn)確率。同時(shí),該方法在云計(jì)算平臺(tái)上實(shí)施,并行獨(dú)立的生成各個(gè)決策樹(shù),利用各決策樹(shù)并行對(duì)網(wǎng)絡(luò)行為進(jìn)行判斷,大大減少了決策樹(shù)生成、更新和網(wǎng)絡(luò)入侵檢測(cè)的時(shí)間,提高了系統(tǒng)應(yīng)用部署的可擴(kuò)展性。
下面對(duì)本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)進(jìn)行介紹,下文描述的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)與上文描述的網(wǎng)絡(luò)入侵檢測(cè)方法可相互對(duì)應(yīng)參照。
圖10為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的結(jié)構(gòu)框圖,參照?qǐng)D10網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)可以包括:
決策樹(shù)集合生成模塊100,用于生成用于判別網(wǎng)絡(luò)入侵行為的偽梯度提升決策樹(shù)集合;
權(quán)值確定模塊200,用于根據(jù)各偽梯度提升決策樹(shù)對(duì)應(yīng)的非葉子節(jié)點(diǎn)的分類特征,確定各所述偽梯度提升決策樹(shù)的權(quán)重信息;
判斷模塊300,用于分別采用所述偽梯度提升決策樹(shù)對(duì)接收到的網(wǎng)絡(luò)行為記錄進(jìn)行并行判斷,得到獨(dú)立判斷結(jié)果;
結(jié)果生成模塊400,用于將各所述獨(dú)立判斷結(jié)果分別與對(duì)應(yīng)的權(quán)重信息相乘,生成判斷所述網(wǎng)絡(luò)行為記錄是否為網(wǎng)絡(luò)攻擊的最終結(jié)果信息。
作為一種具體實(shí)施方式,本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)中,所述決策樹(shù)集合生成模塊可以具體包括:
并行抽取單元,用于采用并行的方式抽取多個(gè)訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集包含多個(gè)在網(wǎng)絡(luò)行為日志中抽取的記錄;
并行計(jì)算單元,用于采用并行的方式對(duì)每個(gè)訓(xùn)練數(shù)據(jù)集計(jì)算偽梯度提升決策樹(shù)。
本實(shí)施例的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)用于實(shí)現(xiàn)前述的網(wǎng)絡(luò)入侵檢測(cè)方法,因此網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)中的具體實(shí)施方式可見(jiàn)前文中的網(wǎng)絡(luò)入侵檢測(cè)方法的實(shí)施例部分,例如,決策樹(shù)集合生成模塊100,權(quán)值確定模塊200,判斷模塊300,結(jié)果生成模塊400,分別用于實(shí)現(xiàn)上述網(wǎng)絡(luò)入侵檢測(cè)方法中步驟S101,S102,S103和S104,所以,其具體實(shí)施方式可以參照相應(yīng)的各個(gè)部分實(shí)施例的描述,在此不再贅述。
本發(fā)明與現(xiàn)有的網(wǎng)絡(luò)入侵檢測(cè)技術(shù)相比,主要有以下幾個(gè)優(yōu)點(diǎn):
(1)減少了網(wǎng)絡(luò)入侵檢測(cè)的時(shí)間。本發(fā)明中的所有偽梯度提升決策樹(shù)無(wú)論生成還是工作,都通過(guò)云計(jì)算方式并行完成。無(wú)論訓(xùn)練集多大,在云平臺(tái)上都可以在一個(gè)決策樹(shù)的生成周期內(nèi)完成所有決策樹(shù)的訓(xùn)練,所有決策樹(shù)也在一個(gè)判斷周期內(nèi)同時(shí)完成一條網(wǎng)絡(luò)行為記錄的判斷。與使用順序生成多個(gè)決策樹(shù),通過(guò)迭代累加方法進(jìn)行網(wǎng)絡(luò)入侵判斷的GBDT相比,本發(fā)明大大減少了網(wǎng)絡(luò)入侵檢測(cè)的反應(yīng)時(shí)間。
(2)提高了網(wǎng)絡(luò)入侵檢測(cè)的準(zhǔn)確性。本發(fā)明中,入侵檢測(cè)不是使用一個(gè)決策樹(shù)判別,而是使用一個(gè)偽梯度提升決策樹(shù)的集合綜合判別完成。多個(gè)不同的偽梯度提升決策樹(shù)使用信息熵相互關(guān)聯(lián),在云平臺(tái)上并行生成,其準(zhǔn)確性高于多個(gè)完全獨(dú)立的決策樹(shù),其數(shù)量又不像GBDT那樣會(huì)受到運(yùn)算時(shí)間的限制。偽梯度提升決策樹(shù)集合生成時(shí)間短,可以根據(jù)網(wǎng)絡(luò)最新?tīng)顩r不斷更新訓(xùn)練集,以更新集合內(nèi)的決策樹(shù)。使用大數(shù)量動(dòng)態(tài)更新的偽梯度提升決策樹(shù)進(jìn)行入侵檢測(cè),有效提高了網(wǎng)絡(luò)行為判斷的準(zhǔn)確性。
(3)有利于IDS在不同網(wǎng)絡(luò)上的部署。本發(fā)明中,所有決策樹(shù)在云平臺(tái)上并行生成、更新和判別,對(duì)單個(gè)物理設(shè)備的運(yùn)算性能沒(méi)有很高要求,集合中的決策樹(shù)數(shù)量由用戶根據(jù)自身云平臺(tái)的運(yùn)算能力決定。用戶對(duì)IDS檢測(cè)準(zhǔn)確性要求越高,決策樹(shù)數(shù)量和云平臺(tái)的節(jié)點(diǎn)數(shù)量就要越多。本發(fā)明與云平臺(tái)的彈性部署能力相適應(yīng),有利于IDS在不同需求和性能的網(wǎng)絡(luò)上部署。
本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上對(duì)本發(fā)明所提供的網(wǎng)絡(luò)入侵檢測(cè)方法以及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。