白宗 侯珂 尚夢瑩
(鄭州工業(yè)應用技術學院 河南省新鄭市 451100)
入侵檢測系統(tǒng)主要將入侵檢測技術植入到可部署系統(tǒng)中,以識別計算機網(wǎng)絡中違反安全策略的攻擊行為,并做出對應的處理?,F(xiàn)階段針對入侵檢測的技術研究越來越深入,常用的入侵檢測方法包括免疫系統(tǒng)、數(shù)據(jù)挖掘、遺傳算法等。其中免疫系統(tǒng)法是將入侵行為視作免疫系統(tǒng)中的異己細胞,免疫系統(tǒng)就是識別異己細胞的過程,因此在入侵檢測系統(tǒng)中,免疫系統(tǒng)方法通常用于建立正常行為輪廓知識庫及異常行為檢測,不過免疫系統(tǒng)方法對于策略違背或偽裝的異常,則不易檢測出來。遺傳算法的理論基礎是自然選擇,即分析自然進化的過程,最終確定最優(yōu)解。在入侵檢測中應用遺傳算法,系統(tǒng)會先對某種入侵事件做出假設,并進行檢測,假設符合條件就保留,不符合條件就剔除,并針對保留的假設再進一步檢測,最終確定合的方法。在入侵檢測中應用遺傳算法,雖然能夠獲得較好的異常檢測效果,但是該技術實現(xiàn)復雜,且對于誤用檢測效果不佳。數(shù)據(jù)挖掘則是從訓練集中計算、分析出數(shù)據(jù)實體之間潛在的聯(lián)系,建立能夠反映數(shù)據(jù)實體關系的模型,數(shù)據(jù)挖掘的主要分析對象是海量的網(wǎng)絡數(shù)據(jù),因此非常適用于入侵檢測系統(tǒng)。
所謂楊顧名思義是指利用一定的算法從海量的網(wǎng)絡數(shù)據(jù)中挖掘出關鍵信息。數(shù)據(jù)挖掘的基本流程包括:首先,數(shù)據(jù)采集,即從數(shù)據(jù)庫或從信息庫中獲取相關數(shù)據(jù),針對選擇的數(shù)據(jù)進行數(shù)據(jù)預處理,消除噪音或干擾數(shù)據(jù),對數(shù)據(jù)進行格式轉換,便于后續(xù)數(shù)據(jù)挖掘的操作;數(shù)據(jù)預處理完成后再利用相關算法提取需要的數(shù)據(jù)模式,即數(shù)據(jù)挖掘;挖掘出來的數(shù)據(jù)信息通過知識表示環(huán)節(jié)在客戶端展示出來,整個數(shù)據(jù)挖掘過程即完成。
常用的數(shù)據(jù)挖掘算法包括關聯(lián)規(guī)則、分類分析、聚類分析、序列模式。其中關聯(lián)規(guī)則是指從大數(shù)據(jù)中查找出相關性的數(shù)據(jù),主要包括兩個步驟,先是發(fā)現(xiàn)所有滿足最小支持閾值的頻繁項目集,然后再將項目集轉換為達到置信度閾值的關聯(lián)規(guī)則。關聯(lián)規(guī)則中適用于入侵檢測的算法包括Apriori、FP-growth等,不過在入侵檢測系統(tǒng)中采用傳統(tǒng)的關聯(lián)規(guī)則檢測網(wǎng)張絡數(shù)據(jù)中的可疑活動或行為時,可能會將所發(fā)現(xiàn)的所有項目集誤認為同等重要,導致檢測效率低下,因此現(xiàn)在的很多入侵檢測系統(tǒng)中采用的關聯(lián)規(guī)則都是經(jīng)過改進的。序列模式也是一種分析數(shù)據(jù)之間關系的方法,不過序列模式更側重于數(shù)據(jù)集中每條記錄之間的相關性、與時間的關系等,而關聯(lián)規(guī)則則側重于數(shù)據(jù)集中不同數(shù)據(jù)項的關系分析。序列模式是將具有時序的數(shù)據(jù)進行排序,再將達到最小支持度閾值要求的頻繁序列挖掘出來。在入侵檢測系統(tǒng)中應用序列模式方法可以準確檢測出對有時間性類型的攻擊行為,但是一旦攻擊者掌握了正常網(wǎng)絡行為與時間的關系,就會偽裝攻擊行為,此時應用序列模式算法就無法檢測出攻擊行為,導致網(wǎng)絡存在安全隱患。分類分析又稱為監(jiān)督學習,主要是判定未標記類別的數(shù)據(jù)所屬的實際類別。分類分析方法包括兩大部分,一是學習階段,主要將原始訓練集中的噪聲、缺失值、異常值等清除,再選擇分類算法學習,以解決目標問題,最后存儲最佳模型;二是分類階段,主要是對數(shù)據(jù)集進行預處理后,對數(shù)據(jù)集中的每條數(shù)據(jù)進行預測,判定其類別。由于分類分類主要針對數(shù)據(jù)集的用途及場景進行預測,因此可應用該方法檢測網(wǎng)絡中的非法入侵行為,針對已經(jīng)被標記實際類別的數(shù)據(jù)可使用分類算法進行審計,未被標記實際類別的可應用分類算法判斷是否為入侵行為。與分類分析不同,聚類分析又被稱為無監(jiān)督分析,該方法是根據(jù)數(shù)據(jù)之間的相似性劃分為不同的簇,每簇內(nèi)數(shù)據(jù)特征或屬性相似度較高,分類分析主要針對已經(jīng)進行實際標記的數(shù)據(jù)進行學習、分類,聚類分析則是針對未被標記的數(shù)據(jù)進行劃分,因此聚類分析可以處理不同類型的數(shù)據(jù),噪聲數(shù)據(jù)對其影響也相對更小,且聚類分析可以聚類高維數(shù)據(jù),并能夠降低輸入次序的敏感性,對先驗知識的依賴性更小,因此在入侵檢測中應用聚類分析可以檢測出新的攻擊行為。
入侵檢測系統(tǒng)需要根據(jù)其檢查對象、檢查范圍進行系統(tǒng)部署,通常部署于因特網(wǎng)接入路由器后的第一臺交換機上,或者服務器交換機上。系統(tǒng)核心是通過捕獲、過濾、分析網(wǎng)絡中的數(shù)據(jù)包發(fā)現(xiàn)網(wǎng)絡中存在的入侵行為。本研究中網(wǎng)絡數(shù)據(jù)流量的收集應用Libcap數(shù)據(jù)采集工具,存儲數(shù)據(jù)庫采用My SQL,采用聚類分析與關聯(lián)分析算法確定入侵行為。系統(tǒng)主要包括管理控制、數(shù)據(jù)解析、數(shù)據(jù)預處理、聚類分析、關聯(lián)分析、入侵檢測、告警響應等八個模塊,下文針對每個模塊的設計進行詳細分析:
管理模塊主要針對用戶管理、日志管理及各子模塊進行調度,配置聚類分析、關聯(lián)分析及入侵檢測模塊的相關參數(shù)。管理控制模塊采用B/S架構,數(shù)據(jù)解析及數(shù)據(jù)預處理模塊的開關連接管理控制模塊,針對聚類分析模塊的參數(shù)配置、關聯(lián)規(guī)則的展示與配置,也是通過管理控制模塊來完成,此外,諸如用戶權限控制、系統(tǒng)開關控制等常規(guī)操作均是通過管理控制模塊來實現(xiàn)。
數(shù)據(jù)解析模塊則主要用于協(xié)議數(shù)據(jù)包的采集與解析,通過解析數(shù)所包,將數(shù)據(jù)中有用的字段提取出來,確定必要的統(tǒng)計屬性,最后將其轉換為易處理的格式,再經(jīng)過解析存儲于數(shù)據(jù)庫。可以說系統(tǒng)功能的實現(xiàn)是從數(shù)據(jù)采集模塊開始的,其包括兩個子模塊,即數(shù)據(jù)采集子模塊與協(xié)議分析子模塊。
其中數(shù)據(jù)采集子模塊主要負責檢測對象的收集,本研究中采用Libcap函數(shù)庫捕獲原始數(shù)據(jù)包,并統(tǒng)計流量,為保證所有流經(jīng)網(wǎng)卡的流量均能夠被監(jiān)聽,網(wǎng)絡接口設置為混雜模式,Libcap包括三個流程,即面向數(shù)據(jù)鏈路層的包捕獲、數(shù)據(jù)包的過濾及向用戶提供最終結果,其不僅可以統(tǒng)計流量,還能應用于網(wǎng)絡協(xié)議分析器、網(wǎng)絡流量發(fā)生器等。通過pCap_Open_live()函數(shù)捕獲數(shù)據(jù)包描述字,作為其它函數(shù)的入?yún)⑹褂?。其中pcap_loop()函數(shù)主要負責捕獲數(shù)據(jù)包,并通過callback變量注冊自己的回調函數(shù),捕獲數(shù)據(jù)包后通過該函數(shù)可以進行數(shù)據(jù)包的解析與存儲,捕獲回調函數(shù)處理數(shù)據(jù)包。數(shù)據(jù)包的存儲可以通過pcap_dump()函數(shù)向pcap_dump_open()打開的文件寫出數(shù)據(jù)包,即可將數(shù)據(jù)包保存為文件。程序結束前需要關閉整個會話,通過函數(shù)pcap_close()即可實現(xiàn)。
入侵檢測模塊、告警響應模塊需要的數(shù)據(jù)信息,由數(shù)據(jù)采集中的另一個子模塊——協(xié)議分析子模塊來實現(xiàn)的。要保證入侵檢測系統(tǒng)檢測結果的有效性,必須以充分的有效信息為基礎,原始數(shù)據(jù)包中的數(shù)據(jù)表現(xiàn)為字節(jié)流的形式,不僅數(shù)據(jù)量大、冗余信息多,而且這種形式不適合入侵檢測系統(tǒng)的分析,因此就需要通過協(xié)議分析子模塊來提取有效信息,并進行格式轉換,針對不同的協(xié)議進行分析,保證各協(xié)議分析結果數(shù)據(jù)結構的統(tǒng)一性。
在數(shù)據(jù)挖掘過程中算法無法處理缺值,需要數(shù)據(jù)預處理模塊對數(shù)據(jù)進行缺值處理、清除噪聲點、分析及歸一化處理等操作,便于數(shù)據(jù)挖掘算法能夠處理。數(shù)據(jù)清理過程中,選擇部分選擇的屬性集,將冗余的、非必要的屬性去除;針對屬性集中的連續(xù)型屬性進行數(shù)據(jù)標準化處理,針對離散型屬性則進行歸一化處理,預處理完成的數(shù)據(jù)保存至數(shù)據(jù)庫中。需要注意一點,即數(shù)據(jù)清理時,數(shù)據(jù)的協(xié)議類型不同,其結構也不同,某些數(shù)據(jù)項在數(shù)據(jù)庫中可能會出現(xiàn)缺值現(xiàn)象,此時就需要人工補充為合適的默認值,保證數(shù)據(jù)格式的統(tǒng)一性;此外,還要去除冗余的屬性,或者正常、異常數(shù)據(jù)中對于區(qū)分攻擊類型起不到作用的某些屬性值也要去除,以減少檢測的復雜程度。
聚類分析主要入侵檢測系統(tǒng)提供正常與異常聚類中心,關聯(lián)分析則為異常檢測模塊提供關聯(lián)規(guī)則,二者均為入侵檢測模塊的基礎。聚類分析模塊通過訓練數(shù)據(jù)進行聚類分析,得到正常及異常的聚類中心,并通過異常聚類中心區(qū)分異常檢測模塊中的正常數(shù)據(jù)與異常數(shù)據(jù)。選取初始聚類中心的方式有多種,本算法中提供兩種,一種是采取數(shù)據(jù)集中第一條數(shù)據(jù),另外一種則使用generateRandVect(vSize)生成隨機聚類中心。數(shù)據(jù)迭代過程中會重新劃分數(shù)據(jù)集,涉及到多個聚類,因此每個數(shù)據(jù)計重新劃分后都要對所有聚類中心進行重新計算。關聯(lián)分析模塊采用FP-Growth算法,其主要作用是挖掘異常規(guī)則作為入侵檢測模塊的知識庫,對其中的聚類分析結果進行矯正。聚類分析模塊中的異常聚類是關聯(lián)分析模塊的源數(shù)據(jù),挖掘出的關聯(lián)規(guī)則保存在數(shù)據(jù)庫中。
入侵檢測模塊是整個入侵檢測系統(tǒng)的核心功能模塊,其在進行入侵檢測時,數(shù)據(jù)采集模塊捕獲數(shù)據(jù)流量后,將要測需要的屬性信息提取出來,由數(shù)據(jù)預處理模塊對數(shù)據(jù)包進行處理及分類,入侵檢測模塊再針對處理好的數(shù)據(jù)進行檢測,將最終的檢測結果存儲于數(shù)據(jù)庫中,并通過可視化界面向用戶展示檢測結果。如果系統(tǒng)檢測到入侵行為,就會通過告警響應模塊做出反饋處理??梢哉f入侵檢測的最終目的就是告警響應,以將系統(tǒng)入侵行為的破壞后果降至最低。入侵檢測系統(tǒng)的告警響應包括兩種,一種是主動響應,主動追蹤入侵者發(fā)起攻擊的源地址,采取對應措施禁止這類用戶訪問網(wǎng)絡,或者對系統(tǒng)中引起攻擊的缺陷進行修正,也可以通過添加規(guī)則阻斷攻擊行為。雖然主動告警響應能夠阻斷正在進行的攻擊,但是網(wǎng)絡中正常用戶的操作行為也會受到影響,因此多數(shù)情況下采用被動告警響應。
總之,雖然人們對于網(wǎng)絡安全問題的研究越來越深入,然而網(wǎng)絡入侵行為也并沒有因此而減少,互聯(lián)網(wǎng)產(chǎn)品的更新?lián)Q代日新月異,各種安全漏洞也層出不窮。網(wǎng)絡攻擊行為不僅會影響到用戶的正常生活及工作,嚴重者還可能造成巨大的經(jīng)濟損失,因此研究入侵檢測技術具有重要的現(xiàn)實意義。本研究提出一種基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng),其包括數(shù)據(jù)采集、數(shù)據(jù)預處理、聚類分析與關聯(lián)分析、入侵檢測及告警響應等模塊,設計過程中利用模塊內(nèi)高內(nèi)聚、模塊之間低耦合的設計思路,經(jīng)過實驗可知,本系統(tǒng)能夠保證較好的檢測效率,且系統(tǒng)誤報率也較低。