李寶密
(朔州師范高等專科學(xué)校,山西 朔州 036000)
數(shù)據(jù)挖掘技術(shù)主要包括有監(jiān)督與無監(jiān)督兩類。本研究分析了有監(jiān)督的數(shù)據(jù)挖掘技術(shù),包括分類分析與決策樹分析。針對(duì)無監(jiān)督的數(shù)據(jù)挖掘技術(shù)介紹了聚類分析、關(guān)聯(lián)分析、異類分析。探討了基于數(shù)據(jù)挖掘技術(shù)的計(jì)算機(jī)網(wǎng)絡(luò)病毒防御系統(tǒng)模塊組成,以提高計(jì)算機(jī)網(wǎng)絡(luò)病毒的防御能力。
分類分析是將數(shù)據(jù)庫中的數(shù)據(jù)映射到統(tǒng)計(jì)方法或機(jī)器學(xué)習(xí)方法等特定的類中,構(gòu)建分類模型,是一個(gè)分類過程,即提前規(guī)劃出幾個(gè)分類組,做好組別以后,按照個(gè)體數(shù)據(jù)具有的特征進(jìn)行歸納分類,分配到不同組當(dāng)中。輸入信息時(shí)可用有序數(shù)組(x,y)做標(biāo)記,表示記錄的集合。有序數(shù)組中,x是具有相同特征的一類數(shù)據(jù)的集合,即屬性,y是這條記錄所屬的類別。
分析過程的主要任務(wù)是把數(shù)據(jù)庫中的數(shù)據(jù)歸結(jié)整理后再映射到某一特定的類當(dāng)中,整個(gè)過程要完成從x到y(tǒng)的映射,后面的數(shù)據(jù)可以根據(jù)這種分類規(guī)則整理。如果將分類分析與啟發(fā)式掃描技術(shù)相結(jié)合進(jìn)行數(shù)據(jù)分析,良性樣本與惡性樣本的導(dǎo)入需在培訓(xùn)中集中進(jìn)行,其中屬性集合x為各種程序行為代碼。例如:如果某代碼出現(xiàn)在預(yù)設(shè)的樣本匯編指令序列中,標(biāo)記為1,如果不是,標(biāo)記為0。用Y代表Yes,用N代表No,表示此樣本是否為病毒,由此訓(xùn)練作出分類,建立模型。為判斷該模型是否有效,需利用一個(gè)既包括良性樣本又兼有惡性樣本的檢驗(yàn)集,分析過程中,對(duì)數(shù)據(jù)做靜態(tài)分析通常使用支持向量機(jī)算法,對(duì)數(shù)據(jù)做動(dòng)態(tài)分析通常使用集成算法。
決策樹通過構(gòu)建一個(gè)問題的層次結(jié)構(gòu)來對(duì)測(cè)試記錄的屬性進(jìn)行分類。決策樹的內(nèi)部結(jié)點(diǎn)表示屬性測(cè)試條件,枝干表示測(cè)試結(jié)果,最后一層葉子結(jié)點(diǎn)表示不同形式的狀態(tài)分配。常用的決策樹分析算法為ID3和C4.5算法[1],這兩種方法都是從下到上建立樹結(jié)構(gòu)并對(duì)其進(jìn)行修剪,簡(jiǎn)單實(shí)用。決策樹挖掘方法是將數(shù)據(jù)范圍按照數(shù)據(jù)屬性逐級(jí)縮小,逐級(jí)劃分,判斷條件處理數(shù)據(jù)。運(yùn)用決策樹方法的關(guān)鍵在于確保系統(tǒng)同時(shí)滿足以下條件:建成后不能具有破壞能力;應(yīng)具備復(fù)制和傳播能力;必須具備一定的隱蔽性。這樣系統(tǒng)才能保證萬無一失,為網(wǎng)絡(luò)病毒防御提供更好的保障。
聚類分析是將數(shù)據(jù)以不同特征聚成不同的組,是常用的數(shù)據(jù)處理方法。聚類分析過程是對(duì)數(shù)據(jù)進(jìn)行劃分,根據(jù)特征分成不同的組,要求每個(gè)組中的數(shù)據(jù)相似度高,且同組數(shù)據(jù)差異經(jīng)過計(jì)算比較為最小。不同組之間的差異通過計(jì)算比較為最大,以比較出明顯不同的特征,從而進(jìn)行分類。使用聚類分析方法處理數(shù)據(jù)的目的是發(fā)現(xiàn)緊密相關(guān)的觀測(cè)值組群[2],分析數(shù)據(jù)的疏密特點(diǎn)及全局分布特點(diǎn),如圖1。
圖1 聚類分析的三類關(guān)鍵要素Fig.1 Three key elements of cluster analysis
如果將聚類分析方法、啟發(fā)式掃描技術(shù)、主動(dòng)防御技術(shù)相結(jié)合,經(jīng)處理得到數(shù)據(jù)的行為代碼可聚集為正常和異常兩類。在異常類組中按照其異常的嚴(yán)重程度進(jìn)行聚類,通過反復(fù)聚類,兩大類行為代碼被準(zhǔn)確分開,使用聚類分析方法得到類組,將其作為未知程序繼續(xù)分類的依據(jù),如表1。
表1 三種主要的聚類方法比較
關(guān)聯(lián)分析又稱為關(guān)聯(lián)挖掘,是在數(shù)據(jù)庫中發(fā)現(xiàn)并找出強(qiáng)關(guān)聯(lián)特征的處理方法。常用A→B的內(nèi)含表達(dá)式來表示在數(shù)據(jù)庫中發(fā)現(xiàn)強(qiáng)關(guān)聯(lián)特征的模式,其中A和B代表集合。A和B兩個(gè)集合中的數(shù)據(jù)并不是完全沒有聯(lián)系的,而是存在一定的相關(guān)性。其相關(guān)性特點(diǎn)為簡(jiǎn)單、時(shí)序及因果。一般用支持度(support)和置信度(confidence)來評(píng)價(jià)特定規(guī)則的強(qiáng)弱[3]。支持度(support)和置信度(confidence)的公式如下:
support(A→B)=support_count(A∪B)/N
confidence(A→B)= support_count(A∪B)/ support_count(A)
關(guān)聯(lián)分析是找到數(shù)據(jù)庫中的關(guān)聯(lián)信息,經(jīng)計(jì)算分析出數(shù)據(jù)間的關(guān)聯(lián)規(guī)律。若數(shù)據(jù)擁有較高的支持度(support)和置信度(confidence),說明行為代碼之間存在很強(qiáng)的關(guān)聯(lián)性。支持度表示某個(gè)項(xiàng)集在所有數(shù)據(jù)中出現(xiàn)的頻率,而置信度則表示在某項(xiàng)條件發(fā)生時(shí),另一項(xiàng)條件同時(shí)發(fā)生的概率。在網(wǎng)絡(luò)病毒檢測(cè)中,如果某兩個(gè)或多個(gè)行為代碼組合(項(xiàng)集A和項(xiàng)集B)的支持度和置信度達(dá)到預(yù)設(shè)的報(bào)警閾值,表明這些行為代碼之間存在強(qiáng)關(guān)聯(lián)。首先,系統(tǒng)通過導(dǎo)入良性樣本和惡性樣本數(shù)據(jù)進(jìn)行訓(xùn)練。然后,系統(tǒng)記錄程序運(yùn)行過程中的所有信息。在數(shù)據(jù)中,每個(gè)項(xiàng)都代表一個(gè)程序行為。系統(tǒng)檢索某個(gè)程序行為在樣本集中出現(xiàn)頻率,根據(jù)信息生成TRUE(1)或FALSE(0)標(biāo)記。關(guān)聯(lián)分析的關(guān)鍵在于識(shí)別可能表明安全威脅的敏感行為模式。例如,看似無害但實(shí)際上與惡意行為強(qiáng)相關(guān)的行為模式,一旦被檢測(cè)到,系統(tǒng)就會(huì)向用戶發(fā)出安全警報(bào)或采取防御措施刪除危險(xiǎn)程序。Apriori算法是執(zhí)行關(guān)聯(lián)分析的常用方法,其基本思想是首先檢索出數(shù)據(jù)庫中所有的頻繁項(xiàng)集,即支持度不低于用戶設(shè)定閾值的項(xiàng)集。接著,基于頻繁項(xiàng)集生成滿足最小置信度要求的強(qiáng)關(guān)聯(lián)規(guī)則。用逐層搜索的迭代方法,找每個(gè)k項(xiàng)集需掃描一次數(shù)據(jù)庫,通過剪枝得到頻繁k項(xiàng)集,連接、篩選找到頻繁k+1項(xiàng)集,以此類推,直到無法找到頻繁k+1項(xiàng)集為止,輸出對(duì)應(yīng)的頻繁k項(xiàng)集的集合即可[4]。找到所有的頻繁項(xiàng)集后,根據(jù)頻繁項(xiàng)集生成關(guān)聯(lián)規(guī)則,對(duì)每個(gè)頻繁項(xiàng)集L的非空子集x計(jì)算置信度。Confidence(x)≥ minConfidence,則“x→(L-x)”成立。規(guī)則由頻繁項(xiàng)集產(chǎn)生,故每個(gè)規(guī)則都自動(dòng)滿足最小支持度,只有置信度超過用戶設(shè)定的最小置信度閾值的規(guī)則才會(huì)被選取并應(yīng)用,如圖2。
圖2 關(guān)聯(lián)分析Fig.2 Correlation analysis
異類分析又稱異類挖掘,也被稱為孤立點(diǎn)分析,主要找出數(shù)據(jù)庫中與常規(guī)數(shù)據(jù)偏離差值較大的數(shù)據(jù),孤立點(diǎn)往往代表非典型或異常行為,與常規(guī)數(shù)據(jù)相比,孤立點(diǎn)可能揭示更高的信息價(jià)值。異常分析檢驗(yàn)方法包括監(jiān)督、非監(jiān)督、半監(jiān)督。一般使用有標(biāo)記的普通樣本信息,在半監(jiān)督異常檢測(cè)中找到檢驗(yàn)集中的異常樣本,發(fā)現(xiàn)異常樣本的類標(biāo)號(hào)或計(jì)分情況,再使用有標(biāo)記的正常樣本信息。系統(tǒng)運(yùn)行過程中可先構(gòu)造出一個(gè)正常程序的框架,當(dāng)某個(gè)程序運(yùn)行時(shí)再與框架進(jìn)行比較。在基于數(shù)據(jù)挖掘( DataMining)技術(shù)的計(jì)算機(jī)網(wǎng)絡(luò)病毒防御系統(tǒng)中,工作流程分為幾個(gè)關(guān)鍵步驟。首先,識(shí)別包含潛在入侵指令的數(shù)據(jù)包,并通過預(yù)處理模塊處理、優(yōu)化數(shù)據(jù)包,以供后續(xù)分析。隨后,應(yīng)用數(shù)據(jù)挖掘技術(shù)從數(shù)據(jù)中提取規(guī)則集,即網(wǎng)絡(luò)病毒特征的集合。待檢測(cè)數(shù)據(jù)與此規(guī)則集進(jìn)行匹配;若匹配度高,系統(tǒng)提示可能存在病毒,并提供手動(dòng)或自動(dòng)清除選項(xiàng)。反之,若匹配度低,表明可能遇到未知病毒,系統(tǒng)將啟動(dòng)警告,并將新病毒特征添加到規(guī)則集中,以增強(qiáng)未來的識(shí)別能力。
基于數(shù)據(jù)挖掘技術(shù)的計(jì)算機(jī)網(wǎng)絡(luò)病毒防御系統(tǒng)包含5個(gè)核心模塊:①數(shù)據(jù)源模塊,負(fù)責(zé)提供原始數(shù)據(jù)。②預(yù)處理模塊,對(duì)原始數(shù)據(jù)進(jìn)行初步處理。③規(guī)則庫模塊,將數(shù)據(jù)劃分到各種特征的庫中。④數(shù)據(jù)挖掘模塊,尋找未知的模式和規(guī)律。⑤決策模塊,對(duì)處理好的數(shù)據(jù)進(jìn)行決策分析并歸類,為數(shù)據(jù)處理提供依據(jù)。這些模塊相互結(jié)合形成一個(gè)數(shù)據(jù)挖掘系統(tǒng)及完善的網(wǎng)絡(luò)病毒防御系統(tǒng)。
數(shù)據(jù)源模塊的主要任務(wù)是使用抓包程序截取網(wǎng)絡(luò)中的原始數(shù)據(jù)包,數(shù)據(jù)包不僅包含通信內(nèi)容,還攜帶了關(guān)于數(shù)據(jù)結(jié)構(gòu)和功能的重要信息,數(shù)據(jù)源模塊的效能直接決定了數(shù)據(jù)挖掘過程的質(zhì)量和效率,因?yàn)樗杏糜诤罄m(xù)分析的數(shù)據(jù)都來源于此。
預(yù)處理過程包括連結(jié)資料、資料提純、變量整合、格式轉(zhuǎn)換等。將數(shù)據(jù)包中的數(shù)據(jù)源按IP地址、目標(biāo)IP地址及端口信息等內(nèi)容進(jìn)行分類、歸納、整理,由此產(chǎn)生的數(shù)據(jù)在很大程度上令數(shù)據(jù)挖掘建模的執(zhí)行效率及執(zhí)行結(jié)構(gòu)發(fā)生變化,可大大提高數(shù)據(jù)的識(shí)別度與精準(zhǔn)度。在數(shù)量龐大的初始數(shù)據(jù)中有很多不全面、不統(tǒng)一的數(shù)據(jù),為了便于整合資源,需對(duì)數(shù)據(jù)源模塊捕捉的資料信息進(jìn)行預(yù)處理,優(yōu)化后期數(shù)據(jù)挖掘環(huán)境,提高數(shù)據(jù)挖掘效率。
規(guī)則庫模塊負(fù)責(zé)匯總病毒行為特征至規(guī)則集,指導(dǎo)數(shù)據(jù)挖掘模塊工作。通過聚類分析對(duì)病毒按照某些屬性進(jìn)行劃分,準(zhǔn)確識(shí)別不同的病毒類型。聚類分析方法能有效完善規(guī)則庫并提供準(zhǔn)確的數(shù)據(jù)支持,有利于分析網(wǎng)絡(luò)病毒特征。該規(guī)則集數(shù)據(jù)庫為數(shù)據(jù)挖掘模塊工作、研究病毒特征、建立防御系統(tǒng)奠定了基礎(chǔ)。
數(shù)據(jù)挖掘(Data Mining)模塊是網(wǎng)絡(luò)病毒防御系統(tǒng)中關(guān)鍵環(huán)節(jié),由事件庫和數(shù)據(jù)挖掘算法構(gòu)成。數(shù)據(jù)源和預(yù)處理模塊提供的數(shù)據(jù)被儲(chǔ)存在事件庫中,然后通過各種優(yōu)化算法進(jìn)行處理,以揭示數(shù)據(jù)的關(guān)鍵特征和潛在規(guī)律。處理后的數(shù)據(jù)被傳遞到?jīng)Q策模塊,用于進(jìn)一步的分析和決策制定,從而提高病毒檢測(cè)和防御的效率和準(zhǔn)確性。
決策模塊在規(guī)則庫中分析數(shù)據(jù)并對(duì)處理好的數(shù)據(jù)與規(guī)則配對(duì),若相似程度很高,計(jì)算機(jī)執(zhí)行信息中有病毒的命令。如果計(jì)算機(jī)判斷數(shù)據(jù)包中有病毒風(fēng)險(xiǎn),則對(duì)規(guī)則庫中的數(shù)據(jù)發(fā)出指令并及時(shí)清除病毒。當(dāng)新病毒出現(xiàn)時(shí),數(shù)據(jù)挖掘成果與規(guī)則庫匹配度較低或完全不匹配,則預(yù)警機(jī)制提示有新病毒。規(guī)則庫模塊負(fù)責(zé)將相關(guān)數(shù)據(jù)及時(shí)歸類到規(guī)則庫,當(dāng)作新的規(guī)則類別以防再次遇到。
近年來,許多互聯(lián)網(wǎng)金融平臺(tái)都采用數(shù)據(jù)挖掘技術(shù)來防御計(jì)算機(jī)網(wǎng)絡(luò)病毒,其中比較傳統(tǒng)的是基于特征碼的病毒檢測(cè)技術(shù),而數(shù)據(jù)挖掘技術(shù)在保障數(shù)據(jù)安全方面更具優(yōu)勢(shì)。應(yīng)用數(shù)據(jù)挖掘方法可避開龐大的特征碼庫,當(dāng)再次遇到未知病毒時(shí)能夠很好地識(shí)別。但其需要耗費(fèi)更多的資源和時(shí)間進(jìn)行數(shù)據(jù)預(yù)處理及數(shù)據(jù)挖掘,因此要發(fā)揮數(shù)據(jù)挖掘技術(shù)優(yōu)勢(shì),配合傳統(tǒng)的殺毒技術(shù),以實(shí)現(xiàn)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)病毒的防御。