林丹生,曾智勇,李祥林,梁智強
(1.南方電網(wǎng)電力科技股份有限公司,廣東 廣州 510000;2.廣東華電韶關(guān)熱電有限公司,廣東 韶關(guān) 512000;3.廣州大學網(wǎng)絡(luò)智能實驗室,廣東 廣州 510000)
全球經(jīng)濟的快速發(fā)展,推動了智能網(wǎng)絡(luò)的發(fā)展[1]。互聯(lián)網(wǎng)的發(fā)展雖然有利于各行業(yè)的擴展,但是大量的數(shù)據(jù)也帶來了一些不良影響,并造成一系列的問題。信息量的增加,產(chǎn)生了諸多安全隱患,易導致信息泄漏,影響人們的日常生活[2]。針對目前網(wǎng)絡(luò)中的安全隱患數(shù)據(jù),數(shù)據(jù)挖掘已成為主要的預防手段。從實際數(shù)據(jù)中挖掘到可利用的潛在信息[3],建立挖掘模型并應用到平臺上具有重要意義。
為此,國內(nèi)外專家開展深入研究。楊衛(wèi)[4]提出云計算平臺船舶通信網(wǎng)絡(luò)惡意入侵數(shù)據(jù)挖掘方法,通過泛數(shù)據(jù)特征對比算法和數(shù)據(jù)獨立性決策算法挖掘惡意入侵數(shù)據(jù),以提高挖全率。該方法挖掘過程中執(zhí)行時間較長。李珺等[5]提出基于改進的K-means算法的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘研究,通過K-means算法生成三角迭代,選取新初始點,對相似規(guī)則統(tǒng)一歸類。該算法可提高數(shù)據(jù)挖掘效率,但挖全率較低。李斌[6]提出基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)安全可視化管理系統(tǒng)的研究,利用系統(tǒng)架構(gòu)和開發(fā)平臺對系統(tǒng)的功能進行了詳細的設(shè)計。該系統(tǒng)可提高數(shù)據(jù)挖掘的安全性,但占用內(nèi)存較大。Greenwood D[7]利用零信任原則挖掘網(wǎng)絡(luò)安全隱患數(shù)據(jù),可有效保護關(guān)鍵數(shù)據(jù),但檢測率較低。Ageed Z S等[8]利用云計算方法對數(shù)據(jù)進行挖掘,可降低內(nèi)存使用,但挖全率較低。
針對上述問題,本文提出1種基于關(guān)聯(lián)規(guī)則算法的網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型。該模型首先對數(shù)據(jù)進行預處理,篩除大頻率出現(xiàn)的項集,采用Apriori算法對預處理后的數(shù)據(jù)量化處理,以提升挖掘效率;然后,通過親和度函數(shù)建立關(guān)聯(lián)函數(shù),以保證隱患數(shù)據(jù)各不相同,降低占用內(nèi)存;最后,根據(jù)關(guān)聯(lián)規(guī)則構(gòu)建網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型,以提升整體檢測的精確度。
網(wǎng)絡(luò)安全隱患數(shù)據(jù)是1個龐大的數(shù)據(jù)系統(tǒng),簡單的整理、收納并不能有效分辨數(shù)據(jù)類型,反而會造成工作量的增加,使網(wǎng)絡(luò)不安全指數(shù)持續(xù)升高。此外,網(wǎng)絡(luò)數(shù)據(jù)雜亂無章,會擾亂工作人員思路,造成大批量數(shù)據(jù)重復,從而加劇大數(shù)據(jù)暴亂。所以,必須對獲得的網(wǎng)絡(luò)數(shù)據(jù)進行預處理,以挖掘所要控制的安全隱患數(shù)據(jù)。
獲得的網(wǎng)絡(luò)數(shù)據(jù)先要進行大規(guī)模篩選,去除大頻率出現(xiàn)的項集,使加入計算的數(shù)據(jù)大大減少,以保證結(jié)果準確并節(jié)約時間,從而在一定程度上提高工作效率。因此,本文假設(shè)安全隱患數(shù)據(jù)庫為D,得到的項集關(guān)系式為:
Xsup=Xsum(Ti)
(1)
式中:X為未知項集;Xsup為重復次數(shù);Ti為常數(shù)項,i=1,2,…,n,n為數(shù)據(jù)的數(shù)量;sum(Ti)為所有項集的總和。所有項集皆為1-項集,且不斷重復使用。
隨著關(guān)聯(lián)規(guī)則的深入,研究人員將關(guān)注度都放在項集本身,反而忽略了項集重復出現(xiàn)的次數(shù),導致在運用關(guān)聯(lián)規(guī)則時的結(jié)果并不理想[9]。X項集和Y項集無論在關(guān)聯(lián)規(guī)則中處于怎樣的位置,其數(shù)量多少仍然是計算中的重要變量,且不可逆。若2個項集的數(shù)量都為1,則認為兩者存在關(guān)聯(lián)關(guān)系。如果X項集和Y項集的數(shù)量不同,則數(shù)據(jù)中兩者可能具有關(guān)聯(lián)度。因此,項集本身的數(shù)量是研究的重點。項集本身的定義由以下幾個方面體現(xiàn)。
①關(guān)聯(lián)權(quán)值。本文假設(shè)在某個事務(wù)數(shù)據(jù)中項集為XD,則權(quán)值Xweight即項集出現(xiàn)次數(shù)的最小值范圍。
Xweight=min(XDiXDiweight)
(2)
式中:XDi為事務(wù)數(shù)據(jù)中的隨機項集;XDiweight為事務(wù)數(shù)據(jù)中的隨機項集權(quán)值。
②平均值。平均值是所有項集的總和與關(guān)聯(lián)權(quán)值的比值,用XaverageWeight來表示。
(3)
在事務(wù)數(shù)據(jù)中,本文選取各項集所發(fā)生的變化次數(shù)的最小數(shù)值代表整個事務(wù)的常用值,即重復次數(shù)。而平均值是在確定最小值的基礎(chǔ)上,計算項集之間的平均數(shù)。其數(shù)值的大小決定著項集的關(guān)聯(lián)規(guī)則[10]。
已知D為關(guān)聯(lián)數(shù)據(jù)庫、t為時間、k為關(guān)聯(lián)頻數(shù),且D={t1,t2,…,tk},則X在項集I中的重復次數(shù)為:
(4)
式中:X?I項集;B為在安全數(shù)據(jù)中項集的數(shù)量;A為在項集中的數(shù)量;sup(X)值的大小體現(xiàn)了其在數(shù)據(jù)庫中函數(shù)值的上界。
X的準確度用式(5)表示。
(5)
所得到的X的準確度結(jié)果最大程度代表了數(shù)據(jù)中項集關(guān)聯(lián)度的準確性[11]。
若想驗證項集的準確度最大程度上代表了數(shù)據(jù)中項集關(guān)聯(lián)度的準確性這一結(jié)論的真實性,則需假設(shè)關(guān)聯(lián)度為R、X項集和Y項集的關(guān)系為X?Y,且X、Y?I。而當X?Y相繼出現(xiàn)且同處一個項集之中時二者關(guān)系是X為原因、Y為結(jié)果。因此可以得到:
sup(R)=sup(X∪Y)
(6)
準確度表示為:
(7)
當用mincon(X)來表示準確度最小值時,其值越小時,則代表關(guān)聯(lián)程度越弱;而其值越大,則代表關(guān)聯(lián)程度越強。由此可見,關(guān)聯(lián)規(guī)則的強弱可以用以下2個步驟來描述。
①當存在準確度最小值集合時,最小值集合稱之為重復項集。利用最小值式可知項集之間的關(guān)聯(lián)程度[12]。
②如果出現(xiàn)重復的項集,則隨機選取1個項集G。在G中設(shè)置1個子項集H,則:
(8)
G與關(guān)聯(lián)度R的關(guān)系為:
H?(G-H),sup(R)=sup(G)
(9)
(10)
通過以上步驟得到的最小值,即代表關(guān)聯(lián)程度。
本文主要采用Apriori算法來挖掘數(shù)據(jù),以實現(xiàn)模型構(gòu)建,并確定網(wǎng)絡(luò)安全隱患[13]。本文先利用Apriori方法找出頻繁項集,再進行挖掘,以完成統(tǒng)計。通過挖掘數(shù)據(jù)庫中大量項集,并統(tǒng)計其出現(xiàn)次數(shù),計算其關(guān)聯(lián)規(guī)則,確定其準確性[14]。
算法流程如圖1所示。

圖1 算法流程圖
由圖1可知,Apriori算法需要對數(shù)據(jù)庫中已知項集定義最小支持度閾值,并掃描數(shù)據(jù)庫。如果項集的支持度滿足預先定義的最小支持度,則生成頻繁項集;如果不滿足最小支持度,則重新掃描數(shù)據(jù)庫,直到滿足條件再生成頻繁項集。該算法需連接頻繁項集,掃描數(shù)據(jù)庫,統(tǒng)計候選項集數(shù)目,并檢查其是否滿足最小支持度。如候選項集滿足最小支持度,則結(jié)束該算法;如果候選項集不滿足最小支持度,則生成新的頻繁項集。重復上述操作,直到滿足最小支持度才結(jié)束該算法。
在Apriori算法流程中,計算出來的數(shù)據(jù)大多都是重復出現(xiàn)的,并且含有很多不起作用的大數(shù)據(jù)。所以,對于這些利用不上的數(shù)據(jù)就要在計算初期舍棄,以避免影響整個過程。這個步驟的運行大大減少了集合中多余的項集,極大提高了計算效率。
通過以上方法得到的均是不同數(shù)量的項集以及不同大小的事務(wù)數(shù)據(jù)包。本文利用關(guān)聯(lián)規(guī)則對項集和數(shù)據(jù)包進行關(guān)聯(lián)處理。關(guān)聯(lián)規(guī)則算法是1種支持度與信任度分別滿足用戶給定閾值的規(guī)則,能夠?qū)?個事件或者事件之間的依賴關(guān)系進行反應。項集的長度可用isum表示。數(shù)據(jù)包的大小可用tsum表示。為解出數(shù)據(jù)庫中的項目,本文使用二進制法[15]對各項目進行編號分類。本文假設(shè)最終獲得的項目數(shù)量為δ,項集不斷變化更新到δ次為止,則:
I={Ij}
(11)

(12)
需依次不斷地以相同方式頻繁計算最小閾值,才能進行下個流程。因此,為了確定關(guān)聯(lián)規(guī)則,計算項目支持度如式(13)所示。
(13)
式中:IM為隨機的案例;fsupIM為項目支持度。
通過以上聯(lián)合計算,可確立關(guān)聯(lián)規(guī)則,挖掘數(shù)據(jù)庫中的有利信息。但前提條件是最小閾值要在正常范圍內(nèi),并且滿足式(14):
(14)

在挖掘數(shù)據(jù)時,本文使用親和度函數(shù)建立目標函數(shù),以得到的結(jié)果判斷項集是否為優(yōu)秀函數(shù),并以此來確定挖掘數(shù)據(jù)模型。在得知fsup和fcon的情況下,本文求得親和度函數(shù)。其函數(shù)關(guān)系為:
Ffit=ξ(λ1fsup+λ2fcon)
(15)
式中:λ1、λ2均為權(quán)值指數(shù);ξ為判斷項集中重復次數(shù)的系數(shù)值。
本文設(shè)定數(shù)據(jù)庫D中任意項集為P和Q。P、Q長度均在0~isum之間。因此,其長度函數(shù)可表示為:
(16)
式中:M′、N′均為長度。
當2個項集的長度同時小于閾值時,可知得出的2個項集具有相似之處,并帶有相同性質(zhì),所以只要留下1個項集即可。為了避免出現(xiàn)項集相似的情況,可用式(17)判斷兩者是否具有相同屬性。
(17)
式中:θ為最小閾值。
初始閾值與相鄰項集的比值用式(18)表示。
(18)
本文以式(18)獲得的適當數(shù)據(jù)作為下個步驟的數(shù)據(jù)輸入,以保證隱患數(shù)據(jù)各不相同。
事務(wù)的關(guān)聯(lián)法作為挖掘數(shù)據(jù)的主要方法,除了相關(guān)數(shù)據(jù)的輸入之外,還包括事件關(guān)聯(lián)的原因、發(fā)展過程以及得到的效果等。本文將不同的安全事件連接到一起,并增加其類型、格式、數(shù)量。這樣做不但廣受好評,還從根本上避免了此類事件的再次發(fā)生,使各類安全隱患具有相同的應急方案。不安全事件因此得到改善。安全事件關(guān)聯(lián)框架如圖2所示。

圖2 安全事件關(guān)聯(lián)框架
由圖2可知,框架通過分析防火墻日志、入侵防御系統(tǒng)(intrusion prevention system,IPS)日志、主機日志以及路由器日志,識別安全事件,再通過安全事件的規(guī)范、過濾、聚合、關(guān)聯(lián)和顯示實現(xiàn)安全事件關(guān)聯(lián)。
本文首先將上述處理后的數(shù)據(jù)收集并錄入所接收到的安全事件中,然后對這些事件模擬、過濾,再通過計算得到其可信度,最后收納到數(shù)據(jù)庫中[16-17]。
本文依據(jù)數(shù)據(jù)庫中的初始值,找到其不斷變化的關(guān)聯(lián)規(guī)則,建立挖掘模型數(shù)列。本文假設(shè)關(guān)聯(lián)規(guī)則為X?Y,則在數(shù)據(jù)庫中X∩Y與X的關(guān)系比例就是項集的可信度。其數(shù)學式表達為:

(19)
項集可信度的范圍在0~1之間,運用最多的是其最小值。最小值可作為判定其可信度的標準。最終得到的關(guān)聯(lián)模型為:
(20)
式中:t為所需時間;u為指數(shù);a為常數(shù)且不大于5;e為數(shù)列誤差。
本文對上述模型進行檢驗,利用殘差檢驗法確認模型的正確與否。通過式(20)檢驗可知,誤差值越小,精確度越高。通過上述過程,完成網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型的構(gòu)建。
為了驗證基于關(guān)聯(lián)規(guī)則算法的網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型的有效性,本文選取MATLAB仿真軟件作為試驗平臺,測試其在不同類型與不同大小的數(shù)據(jù)集下的性能。本文在不同數(shù)據(jù)集上分別進行試驗對比。試驗所應用到的數(shù)據(jù)能夠從數(shù)據(jù)挖掘網(wǎng)站中下載。6種數(shù)據(jù)集的數(shù)據(jù)量為:SanFrancisco Bay Area交通數(shù)據(jù)集500條、Adressa新聞網(wǎng)站點擊記錄流數(shù)據(jù)集1 000條、Python網(wǎng)絡(luò)爬蟲抓取數(shù)據(jù)集1 500條、StudentLife學校網(wǎng)站數(shù)據(jù)集2 000條、MicroblogPCU微博瀏覽數(shù)據(jù)集2 500條和UserBehavior淘寶用戶行為數(shù)據(jù)集3 000條。
本文將文獻[4]方法、文獻[5]方法與本文方法進行對比,以分析各方法在不同數(shù)據(jù)集上的處理時間、挖全率和內(nèi)存消耗情況。
本文對比本文方法與文獻[4]方法、文獻[5]方法在不同數(shù)據(jù)集下的執(zhí)行時間。不同方法的執(zhí)行時間對比結(jié)果如圖3所示。

圖3 不同方法的執(zhí)行時間對比結(jié)果
由圖3可知,隨著數(shù)據(jù)集記錄數(shù)量的增加,不同方法的執(zhí)行時間相應增長。當數(shù)據(jù)集記錄數(shù)量為3 000條時,本文方法的執(zhí)行時間為2.4 min,而文獻[4]方法的執(zhí)行時間為9.2 min、文獻[5]方法的執(zhí)行時間為5 min。由此可知,采用本文方法的網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型在數(shù)據(jù)量從0~3 000條的情況下,執(zhí)行時間均較短。而文獻[4]方法與文獻[5]方法在數(shù)據(jù)量較少時執(zhí)行時間較短,而隨著數(shù)據(jù)集增多,其執(zhí)行時間越來越長。其原因在于文獻[4]方法與文獻[5]方法在各站點挖掘信息時都會產(chǎn)生大量的候選項集,從而占用了較多的時間,效率明顯低于本文方法的挖掘模型。
試驗將本文方法與文獻[4]方法、文獻[5]方法的挖全率進行對比。不同方法的挖全率對比結(jié)果如圖4所示。

圖4 不同方法的挖全率對比結(jié)果
由圖4可知,當數(shù)據(jù)集記錄數(shù)量為3 000條時,本文方法的平均挖全率為92%,而文獻[4]方法和文獻[5]方法的平均挖全率分別為70%和65%。這是因為本文方法的挖掘模型能夠計算數(shù)據(jù)點的最小支持度,可進行局部挖掘,并得到局部的規(guī)則庫。而文獻[4]方法在挖掘時會合并局部挖掘結(jié)果,從而遺漏全局中的頻繁項集,導致挖全率較低。文獻[5]方法需要預先設(shè)計指標,但是選取的指標存在一定的主觀性,降低了挖全率。
本文對比在不同數(shù)據(jù)集下,本文方法與文獻[4]方法、文獻[5]方法挖掘時的內(nèi)存消耗情況。
不同方法挖掘時內(nèi)存消耗對比結(jié)果如圖5所示。

圖5 不同方法挖掘時內(nèi)存消耗對比結(jié)果
由圖5可知,隨著數(shù)據(jù)集記錄數(shù)量的增加,不同方法挖掘時內(nèi)存使用量相應增多。當數(shù)據(jù)集記錄數(shù)量為3 000條時,本文方法挖掘時內(nèi)存使用量為90 MB,而采用文獻[4]方法和文獻[5]方法挖掘時,內(nèi)存使用量分別為220 MB和190 MB,高于本文方法。因為文獻[4]方法在挖掘時需要大量的訓練集,故保存時占用了大量的內(nèi)存。文獻[5]方法在挖掘時,需要進行多次指標的選取,并建立模型。這導致內(nèi)存消耗大。
基于上述分析可知,本文方法的網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型在執(zhí)行時間、挖全率、內(nèi)存消耗這3個指標對比上,都取得了較好的應用效果。這是因為本文方法的挖掘模型在挖掘過程中預先對數(shù)據(jù)作了預處理,從初始分析時就降低了數(shù)據(jù)的冗余性,并采用了關(guān)聯(lián)規(guī)則算法,對網(wǎng)絡(luò)安全隱患中的關(guān)聯(lián)數(shù)據(jù)作了詳細分析,從而取得了較好的應用效果。
本文提出基于關(guān)聯(lián)規(guī)則算法的網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘模型。本文通過預處理網(wǎng)絡(luò)數(shù)據(jù),挖掘所要控制的安全隱患數(shù)據(jù);采用關(guān)聯(lián)規(guī)則Apriori算法,對數(shù)據(jù)進行量化處理;建立數(shù)據(jù)關(guān)聯(lián)函數(shù),構(gòu)建安全事件關(guān)聯(lián)模型,實現(xiàn)網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘。本文在Apriori算法的基礎(chǔ)上,使工作人員通過網(wǎng)絡(luò)挖掘到多層數(shù)據(jù)信息,并使計算更加簡單明了。這在一定程度上提高了挖全率,并減少了數(shù)據(jù)挖掘過程中占用的內(nèi)存、縮短了執(zhí)行時間,為網(wǎng)絡(luò)安全隱患數(shù)據(jù)挖掘提供了一定的參考。