郝菊香, 馮娜
(西安交通工程學院,交通運輸學院, 陜西, 西安 710300)
網絡安全是城市軌道交通需要研究的重要問題之一,隨著城市軌道交通規模的擴大和智能化信息化程度的提升,其通信網絡更為復雜,對網絡安全的要求更為嚴苛。傳統單一的防御機制無法保證能夠阻止所有的網絡攻擊,防火墻也僅能過濾和阻止大多數非法入侵。數據規則檢測被看作是防火墻之后的第二層安全防護網,可實現對網絡數據的實時檢測,在保證網絡通信速度和數據通信質量的情況下,對網絡多個關鍵節定進行數據收集和過濾,發掘和阻止存在的異常行為[1]。文中分析異常檢測和誤用檢測2種方法的特點,引入仲裁機制將2種算法的特性進行融合,提出一種基于雙輪廓模型的復合規則檢測算法,利用Apriori算法提升檢測規則的挖掘速度,實驗結果驗證了算法的有效性。
規則檢測模型如圖1所示,主要可以分為數據解析、預處理、規則檢測引擎、日志與報警、警告輸出等。首先需要對待檢測數據包進行數據解析;然后對數據進行預處理,對數據進行重組、格式化等處理,將其轉換為規則檢測規定的標準格式[2];最后將預處理后的數據輸入至檢測引擎,通過規則庫的檢測判斷,輸出所有符合規則的數據包,獲取并輸出檢測結果。

圖1 規則檢測模型
常見的規則檢測方法包括誤用檢測法和異常檢測法等。誤用檢測法主要依據“黑名單”庫,將已獲知的網絡攻擊行為轉化為判據規則,生成判別規則數據庫。將待檢測事件與規則庫進行比對,若與規則能夠成功匹配,則判別為網絡入侵行為。異常檢測主要依據“白名單”庫,即將正常網絡訪問行為轉化為相對應的規則庫,當待檢事件與規則庫無法匹配時,則判斷為異常行為。誤用檢測法對已入庫的網絡攻擊類型具有較高的檢測準確率,而對新型的未入庫入侵行為其檢測能力不足。異常檢測法則對未知的新型入侵具有較高的檢測能力。若能將2種檢測方法進行融合,發揮二者的優勢,則可提升系統整體的檢測準確率。
雙輪廓檢測法主要是同時利用異常檢測和誤用檢測2種檢測方法,對正常行為和異常行為進行協同檢測。雙輪廓規則檢測算法框架如圖2所示。數據被同時進行誤用檢測和異常檢測,將2種方法的檢測結果輸入至仲裁模塊,通過仲裁來判決是否存在異常入侵行為。需要設定仲裁規則以對2種檢測結果進行裁決,這里采用基于專家投票的判決方法。

圖2 雙輪廓規則檢測算法框架
專家投票過程首先是對每個檢測器的結果進行統計,統計樣本被判定為每個類別的次數,將判定次數最多的類別看作該樣本的真實類別。專家投票法簡單有效,但其將各個檢測器的比重看作一樣,忽視了檢測器性能的差異[3]。由于每個檢測器的檢測性能實際并不完全相同,采用相同權重處理每個檢測結果則會造成檢測結果與實際產生偏差。為解決該問題,為各個檢測器設置不同的權重系數。設n個檢測器定義為D={D1,D2,…,Dn},設樣本為Xi,各個檢測器輸出值中,1定義為入侵行為,0定義為正常行為。所有檢測器輸出結果定義為向量N={N1,N2,…,Nn},所有檢測器的檢測準確率定義為向量TPR={T1,T2,…,Tn},根據各個檢測器的檢測準確率為其分配權重值,公式為
(1)
獲得權重值向量W={W1,W2,…,Wn},將檢測結果與權重向量作內積,獲得最終裁決結果為
R=N×W=N1W1+N2W2+…+NnWn
(2)
式中,R表示輸出的最終檢測結果,當R>0.5時,則判定數據檢測結果為入侵行為,輸出報警結果,否則判定為正常行為。該系統分為誤用檢測和異常檢測2種檢測器,設定2種檢測器的檢測準確率如表1所示。

表1 檢測器準確率
表中Na的值為0,表示檢測結果為正常;Nm的值為1,表示檢測結果為異常。a值的范圍為[0,1],依據上述仲裁規則,得到輸出結果R的公式為
(3)
R值的范圍為[0,1],當R>0.5時判定為異常,否則判定為正常行為。
基于雙輪廓規則檢測法主要是同時利用誤用檢測和異常檢測規則作為其檢測引擎,同時構建“白名單”和“黑名單”數據庫,以提升系統的檢測準確率。雙輪廓檢測模型如圖3所示。與傳統檢測模型相比,增加了仲裁判決模塊,系統的核心部分在于檢測規則,采用關聯分析算法,在大數據中挖掘數據間的潛在規則[4]。
關聯分析算法指在大數據中挖掘數據之間隱藏的關聯關系,屬于數據挖掘的重要研究方向之一,其目的是挖掘數據間關聯規則。關聯分析算法可分為頻繁項挖掘和規則生成2個主要部分,首先是從數據集合中挖掘出支持度值大于最小支持度閾值的所有項集,將其視為頻繁項集。然后,從頻繁項集中提取置信度大于最小置信度閾值的強規則,最終生成關聯規則。Apriori算法是一種新型的頻繁集挖掘算法,其主要原理是利用頻繁項集的非空子集必定具備頻繁性質,反之,對于非頻繁項集,其超集也必是非頻繁性[5]。利用此特性可對數據集合進行剪切,從而降低了數據比較次數,具有運算速度快的優勢。

圖3 雙輪廓檢測模型
頻繁項集反應了某類數據的特征,從異常入侵數據集合中提取出的頻繁項集反應了網絡入侵行為的特征,從正常數據集合中提取的頻繁項集反應了系統正常數據的特征。關聯分析算法對入侵和正常的大數據集合分別實施數據挖掘,從而獲得最終用于數據檢測的檢測規則。關聯分析挖掘算法的主要流程如圖4所示,主要分為預處理、管理分析、生成規則等環節。首先分別對某些入侵型數據和正常數據進行特征提取和編碼預處理,然后利用Apriori算法進行大數據挖掘,將獲取的同時滿足最小支持度和最小置信度的規則判定為強規則,將強規則轉換為最終進行數據檢測的檢測規則,引入雙輪廓檢測模型的規則庫中,作為雙輪廓檢測的入侵檢測規則[6]。

圖4 關聯分析挖掘算法流程
Apriori算法對待測數據進行逐層搜索,通過逐層迭代搜尋出所有的頻繁項集,算法流程圖如圖5所示。整個挖掘算法以支持度為評判標準,首先搜尋出頻繁項集L1,然后連接L1繼續搜索,獲得待候選的2項集,對2項集進行進一步篩選,剔除低于支持度的候選集,最終得到頻繁項集L2。算法以此遞推,挖掘出所有頻繁項集為止,所獲得的頻繁項集集合即為最終結果。在Apriori算法中,最小支持度值設定為0.5,最小置信度值也設為0.5,通過該算法的數據挖掘,導出數據檢測所需的關聯規則。
為驗證雙輪廓檢測算法的性能,模擬3種典型的網絡攻擊,分別為tftp協議漏洞攻擊、MS09-001攻擊和MS17-010漏洞攻擊,將tftp協議漏洞攻擊和MS09-001攻擊看作已知的攻擊類型,MS17-010漏洞攻擊看作未知的攻擊類型。將獲取的3種攻擊的大數據包分為3份,分別用于誤用檢測、異常檢測、雙輪廓檢測3種方案的訓練數據,同時取信息系統正常數據包,同樣分為3份分別作為3種檢測方案的訓練數據。然后,生成攻擊數據和正常數據的混合數據包,分別對3種檢測方法進行檢測效果驗證,共進行120此實驗,檢測性能統計結果如表2所示。

圖5 Apriori算法流程圖

表2 數據檢測統計結果
由表2中統計結果可知,單獨的誤用檢測方法針對已獲知的網絡攻擊具備較高的檢測效果,而對于未知性的入侵攻擊類型的檢測能力不足,而異常檢測對已知和未知攻擊均具備較高的檢測率,整體檢測率較高,但同時造成誤報率較高。雙輪廓檢測算法兼容了誤用檢測和異常檢測二者的特性,具備最高的檢測率和最低的誤報率,3種方案相比,雙輪廓檢測算法的整體檢測效果最優。
單一的誤用檢測和異常檢測算法均具有各自的優勢和不足,通過專家投票裁決機制將2種算法有效融合,實現算法的互補,模擬實驗結果驗證了方案的有效性。同時,檢測規則是數據檢測中最為關鍵的環節,利用關聯分析法實現大數據中隱含關聯關系的挖掘,采用Apriori算法可有效降低數據運算復雜性,提升規則搜索速度,關于檢測規則的挖掘優化問題,可作進一步深入研究。