• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)異常檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2020-11-20 13:07:34劉金龍
      關(guān)鍵詞:分析器日志數(shù)據(jù)挖掘

      劉金龍 ,劉 鵬 ,裴 帥 ,田 沖

      (1.海軍參謀部,北京 100841;2.信息產(chǎn)業(yè)信息安全測評中心,北京 100083)

      0 引言

      入侵檢測作為一種重要的網(wǎng)絡(luò)安全防護(hù)技術(shù),由 ANDERSON J P[1]在 1980年首次提出,經(jīng)過幾十年的發(fā)展,在入侵檢測系統(tǒng)模型構(gòu)建[2]、檢測數(shù)據(jù)集獲取[3]、檢測方法創(chuàng)新[4-6]等方面取得了豐碩的成果,已廣泛應(yīng)用于物聯(lián)網(wǎng)[7]和智慧城市[8]等多種應(yīng)用場景。然而隨著網(wǎng)絡(luò)承載帶寬流量日益增多,人工分析海量告警日志信息已難以滿足日常需求,開發(fā)基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)逐漸成為主流[9]。入侵檢測系統(tǒng)的基本原理就是將獲取的數(shù)據(jù)經(jīng)過處理后,與之前設(shè)好的規(guī)則進(jìn)行匹配,從而判斷是否為攻擊或入侵[10-11]。根據(jù)入侵檢測的原理,系統(tǒng)需要獲取足夠多的數(shù)據(jù),才能更準(zhǔn)確地判斷是否為攻擊或入侵。

      為了能夠更有效處理網(wǎng)絡(luò)中大規(guī)模的安全數(shù)據(jù),學(xué)者們開始研究數(shù)據(jù)挖掘技術(shù),王洋等[12]利用貝葉斯攻擊圖模型從大規(guī)模流量中識別異常告警,通過告警關(guān)聯(lián)識別攻擊者的意圖。李祉岐等[13]對現(xiàn)有告警融合和關(guān)聯(lián)分析方法進(jìn)行了綜合分析,提出了基于告警關(guān)聯(lián)的入侵檢測體系架構(gòu)以及應(yīng)用準(zhǔn)則。胡浩等[14]利用吸收 Markov 鏈模擬攻擊者的入侵行為,解決了用攻擊圖對攻擊路徑進(jìn)行仿真時存在的狀態(tài)爆炸問題,有效提升入侵路徑識別的精度。

      Snort 是美國Sourcefire 公司發(fā)布的開源入侵檢測軟件,提供規(guī)范化的接口便于用戶對Snort 進(jìn)行擴(kuò)充與改進(jìn),因此研究人員選擇在Snort 基礎(chǔ)上進(jìn)行研發(fā)或?qū)ζ溥M(jìn)行進(jìn)一步的功能擴(kuò)充,以實(shí)現(xiàn)從大量日志信息中,快速、有效找到網(wǎng)絡(luò)流規(guī)律及數(shù)據(jù)信息之間的聯(lián)系,發(fā)現(xiàn)異常的網(wǎng)絡(luò)數(shù)據(jù)流的特征信息,提升漏告警和誤告警場景中的檢測完備性。告警關(guān)聯(lián)規(guī)則挖掘是入侵檢測的重點(diǎn)環(huán)節(jié)之一,HU H[15]等認(rèn)為同一攻擊過程中的各個攻擊步驟以較高的概率在一個時間窗口內(nèi)發(fā)生,因而同一攻擊過程產(chǎn)生的告警在統(tǒng)計(jì)上具有相似性,因此提出了基于統(tǒng)計(jì)時序的告警關(guān)聯(lián)方法,通過計(jì)算告警序列之間的因果關(guān)聯(lián)指數(shù)來判斷告警是否具有關(guān)聯(lián)關(guān)系。上述方法不依賴領(lǐng)域知識,但存在計(jì)算量大、參數(shù)配置復(fù)雜等不足。

      針對上述問題,本文以Snort 為基礎(chǔ),設(shè)計(jì)實(shí)現(xiàn)了能夠從大量日志信息中發(fā)現(xiàn)網(wǎng)絡(luò)中攻擊與入侵?jǐn)?shù)據(jù)流間隱藏關(guān)系的入侵檢測系統(tǒng)。本文提出的方法能有效融合告警信息,識別入侵過程,幫助管理人員掌握網(wǎng)絡(luò)安全狀況,輔助指導(dǎo)風(fēng)險評估和入侵響應(yīng)等后續(xù)過程。

      1 相關(guān)知識

      1.1 入侵檢測系統(tǒng)

      入侵檢測系統(tǒng)根據(jù)設(shè)定的規(guī)則進(jìn)行告警匹配來判斷是否存在入侵行為,通常入侵檢測系統(tǒng)由以下四部分構(gòu)成,如圖1 所示。

      圖1 入侵檢測系統(tǒng)組成

      (1)事件產(chǎn)生器:負(fù)責(zé)收集網(wǎng)絡(luò)或主機(jī)上的安全數(shù)據(jù)然后將其轉(zhuǎn)換為安全事件。

      (2)事件分析器:根據(jù)提前設(shè)定好的判定規(guī)則對事件進(jìn)行分析和判斷,判斷安全事件是否為網(wǎng)絡(luò)入侵,如果判定為入侵還需要給出告警信息。

      (3)事件數(shù)據(jù)庫:用于存儲安全事件數(shù)據(jù)。

      (4)響應(yīng)單元:根據(jù)事件分析器的結(jié)果實(shí)施入侵響應(yīng),比如關(guān)閉連接、切斷網(wǎng)絡(luò)。

      依據(jù)檢測原理的不同,入侵檢測系統(tǒng)主要包括兩類:

      (1)異常檢測系統(tǒng)

      異常檢測系統(tǒng)通過對用戶正常行為進(jìn)行分析,提取特征信息,并將提取到的特征信息儲存到數(shù)據(jù)庫中用以建立正常行為模式。

      (2)誤用檢測系統(tǒng)

      誤用檢測系統(tǒng)是針對各類攻擊、入侵活動進(jìn)行分析,發(fā)掘攻擊和入侵特征,根據(jù)這些特征建立入侵特征模式庫進(jìn)行判斷。

      1.2 Snort 原理

      Snort 系統(tǒng)是一種輕量級誤用檢測系統(tǒng),其最大優(yōu)點(diǎn)是具有可擴(kuò)展性,通過外部插件可以很方便地對系統(tǒng)功能進(jìn)行擴(kuò)展。Snort 的架構(gòu)具有模塊化的特點(diǎn),其工作過程如下:首先由嗅探器取得原始元數(shù)據(jù),然后經(jīng)協(xié)議處理器和預(yù)處理器,使用檢測引擎進(jìn)行分析處理,如果與規(guī)則庫中的規(guī)則匹配成功則識別相應(yīng)攻擊。Snort 架構(gòu)如圖 2 所示。

      圖2 Snort 體系結(jié)構(gòu)

      (1)協(xié)議解析器

      首先從獲取的數(shù)據(jù)包中解析出協(xié)議部分的信息,然后將信息寫入定義好的數(shù)據(jù)結(jié)構(gòu)中。

      (2)預(yù)處理器

      預(yù)處理器是實(shí)現(xiàn)Snort 插件機(jī)制的主要部分,通過預(yù)處理器可以將外部插件加載到Snort 中,按照插件的工作方法對數(shù)據(jù)進(jìn)行處理。

      (3)檢測引擎

      將數(shù)據(jù)流信息與規(guī)則庫逐一匹配,若匹配成功則觸發(fā)告警信息。

      (4)告警輸出

      輸出模塊可以根據(jù)用戶需求,將檢測的結(jié)果按一定格式進(jìn)行輸出,輸出方式主要有:

      ①輸出到文件:Snort 自定義的格式、CSV 格式。

      ②輸出到數(shù)據(jù)庫:MySQL。

      Snort 規(guī)則結(jié)構(gòu)如圖 3 所示。

      (1)規(guī)則頭部

      動作:指Snort 發(fā)現(xiàn)匹配規(guī)則的數(shù)據(jù)包后觸發(fā)的動作。

      協(xié)議:指規(guī)則對應(yīng)的數(shù)據(jù)包采用的協(xié)議。

      方向操作符:“->”表示數(shù)據(jù)傳遞方向;“<>”表示雙向操作符,即規(guī)則頭部中的兩對地址 端口號可以作為源或目標(biāo)。

      (2)規(guī)則選項(xiàng)

      Snort 給出了42 個關(guān)鍵字供用戶根據(jù)實(shí)際情況編寫規(guī)則,具有很強(qiáng)的擴(kuò)展性。

      圖3 Snort 規(guī)則結(jié)構(gòu)

      1.3 數(shù)據(jù)挖掘技術(shù)

      數(shù)據(jù)挖掘是對大量數(shù)據(jù)經(jīng)過特殊處理后,利用特定算法挖掘數(shù)據(jù)之間隱藏的有價值的關(guān)系。數(shù)據(jù)挖掘過程如圖 4 所示,步驟如下:

      (1)數(shù)據(jù)清洗:將原始數(shù)據(jù)中與挖掘主題無關(guān)的數(shù)據(jù)剔除出去,減小待處理數(shù)據(jù)的規(guī)模;

      (2)數(shù)據(jù)集成:將經(jīng)過清洗后的數(shù)據(jù)按照相應(yīng)的規(guī)則集成到一起,存儲到倉庫中;

      (3)數(shù)據(jù)轉(zhuǎn)換:將數(shù)據(jù)轉(zhuǎn)換成適合挖掘算法進(jìn)行處理的數(shù)據(jù)格式,形成格式化數(shù)據(jù);

      (4)數(shù)據(jù)挖掘:采用選擇的挖掘算法對格式化數(shù)據(jù)進(jìn)行處理,提取高價值信息;

      (5)模式評估:對步驟(4)得出的信息進(jìn)行評估,分析挖掘數(shù)據(jù)的有效性;

      (6)知識表示:將評估有效的數(shù)據(jù)可視化展示給用戶。

      圖4 數(shù)據(jù)挖掘過程

      1.4 關(guān)聯(lián)規(guī)則挖掘

      關(guān)聯(lián)規(guī)則的符號解釋如表1 所示,對于數(shù)據(jù)項(xiàng)集 A 和 B,關(guān)聯(lián)規(guī)則“A=>B”表示如果 A 出現(xiàn),那么可知B 也出現(xiàn),用于刻畫不同數(shù)據(jù)項(xiàng)間的隱藏關(guān)聯(lián)。規(guī)則評估包括支持度 s 和置信度 c 兩個重要指標(biāo),s 表示 A 和 B 同時出現(xiàn)的概率,s 越小則表示 A和 B 的關(guān)聯(lián)性越??;c 揭示了 A 出現(xiàn)時 B 會同時出現(xiàn)的概率。

      表1 關(guān)聯(lián)規(guī)則符號解釋

      2 基于關(guān)聯(lián)規(guī)則的入侵檢測系統(tǒng)設(shè)計(jì)

      本節(jié)首先對現(xiàn)有入侵檢測系統(tǒng)存在的不足進(jìn)行總結(jié)并提出解決方案,然后設(shè)計(jì)Apriori 算法的主要函數(shù)實(shí)現(xiàn)方法,接著給出系統(tǒng)總體設(shè)計(jì),最后對本系統(tǒng)的核心關(guān)聯(lián)分析器內(nèi)部組件進(jìn)行詳細(xì)設(shè)計(jì)。

      2.1 問題分析與解決思路

      Snort 的優(yōu)點(diǎn)是具有很強(qiáng)的可擴(kuò)展性,但存在兩方面問題:一是受其檢測原理的限制只能檢測已知的攻擊和入侵;二是隨著網(wǎng)絡(luò)數(shù)據(jù)量的增加,Snort 入侵檢測效率急劇下降。為解決上述問題,本文解決思路如下:設(shè)計(jì)一個關(guān)聯(lián)分析器并作為插件連接到Snort 系統(tǒng)中。關(guān)聯(lián)分析器可以對 Snort 中的海量日志數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析,從中挖掘出有價值的信息,最后將這些信息轉(zhuǎn)換成Snort 的規(guī)則并補(bǔ)充進(jìn)規(guī)則庫,使Snort 可以發(fā)現(xiàn)新的攻擊行為。

      2.2 基于Apriori 算法的關(guān)聯(lián)規(guī)則挖掘

      本文以Snort 入侵檢測系統(tǒng)為基礎(chǔ),對其海量日志進(jìn)行數(shù)據(jù)挖掘找出關(guān)聯(lián)規(guī)則,用以補(bǔ)充Snort 的規(guī)則庫,而關(guān)聯(lián)規(guī)則挖掘的關(guān)鍵是找出最大頻繁項(xiàng)目集。Apriori 算法是一種重要的用于挖掘單維、單層、布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)集挖掘算法,其對數(shù)據(jù)集規(guī)模依賴性低。Apriori 算法主要分為兩步,第一步是找出一維最大頻繁項(xiàng)目集,通過掃描數(shù)據(jù)庫統(tǒng)計(jì)得出;第二步執(zhí)行循環(huán)部分,主要由兩個函數(shù)實(shí)現(xiàn):AprioriGen、InitLK,如表 2 所示,循環(huán)結(jié)束的標(biāo)志是不再有新的最大頻繁項(xiàng)目集生成。

      在剪枝步中用到了Apriori 算法的一個性質(zhì),即:最大頻繁項(xiàng)目集的子集也一定是最大頻繁項(xiàng)目集,反之如果存在不符合條件的子集,則需要將此項(xiàng)剔除,這樣可以有效提升關(guān)聯(lián)告警數(shù)據(jù)挖掘的精度。Apriori 挖掘最大頻繁項(xiàng)目集的過程如圖 5 所示,其中設(shè)置支持度為 2,TID 為事務(wù)標(biāo)志符,items為事務(wù)包含的具體項(xiàng)目。

      2.3 系統(tǒng)總體設(shè)計(jì)

      圖5 Apriori 算法流程圖

      由于Snort 源碼開放,因此開發(fā)者可以靈活根據(jù)監(jiān)測需求進(jìn)行代碼的編寫,并且以插件的形式插入到 Snort 中。本系統(tǒng)在原有的 Snort 基礎(chǔ)上加入關(guān)聯(lián)分析器插件從而可以找出系統(tǒng)日志的數(shù)據(jù)項(xiàng)間隱藏的關(guān)系,利用這些安全數(shù)據(jù)項(xiàng)之間的聯(lián)系發(fā)現(xiàn)新的入侵行為, 最后將關(guān)聯(lián)規(guī)則轉(zhuǎn)換為 Snort 規(guī)定的規(guī)則格式添加至規(guī)則庫中,改進(jìn)后的Snort 不僅可以有效利用海量數(shù)據(jù),還可以發(fā)現(xiàn)新的入侵行為??傮w設(shè)計(jì)如圖6 所示。

      2.4 關(guān)聯(lián)分析器設(shè)計(jì)

      關(guān)聯(lián)分析器的作用是找出Snort日志中攻擊數(shù)據(jù)項(xiàng)間尚未被發(fā)現(xiàn)的聯(lián)系,然后將這些關(guān)系轉(zhuǎn)換為Snort 要求的規(guī)則格式并補(bǔ)充至規(guī)則庫,增強(qiáng)系統(tǒng)的防御效能。關(guān)聯(lián)分析器基本結(jié)構(gòu)如圖 7 所示,工作流程如下:

      (1)數(shù)據(jù)預(yù)處理:Snort 系統(tǒng)日志中包含眾多的字段,從中篩選出有效字段,剔除與關(guān)聯(lián)分析無關(guān)的字段;

      圖6 基于關(guān)聯(lián)規(guī)則挖掘的Snort 入侵檢測系統(tǒng)設(shè)計(jì)

      圖7 關(guān)聯(lián)分析器

      (2)使用Apriori 算法關(guān)聯(lián)分析:用戶依據(jù)實(shí)際需求設(shè)置最小支持度和最低置信度:

      (3)規(guī)則轉(zhuǎn)換:對于步驟(2)輸出的關(guān)聯(lián)規(guī)則的規(guī)則頭部放入Snort 規(guī)則頭,對應(yīng)規(guī)則選項(xiàng)部分放入 Snort 規(guī)則選項(xiàng),完成格式合并后存入 Snort 規(guī)則庫。

      3 基于關(guān)聯(lián)規(guī)則的入侵檢測系統(tǒng)實(shí)現(xiàn)

      3.1 系統(tǒng)運(yùn)行環(huán)境

      本系統(tǒng)運(yùn)行的環(huán)境如下:

      (1)硬件環(huán)境

      4 GB 內(nèi)存 、500 GB 外存 、CORE i7 處理 器。

      (2)軟件環(huán)境

      ①操作系統(tǒng):Windows 7;

      ②數(shù)據(jù)庫:SQL Server 2008;

      ③Snort 版本:Snort 2.9.5.5;

      ④抓捕工具:WinPcap 4.1.3;

      ⑤規(guī)則庫:Snortrules-snapshot-2920.tar.gz。

      3.2 系統(tǒng)實(shí)現(xiàn)流程

      系統(tǒng)實(shí)現(xiàn)流程包含:Snort 安裝與配置、 數(shù)據(jù)庫安裝與配置、關(guān)聯(lián)分析器的實(shí)現(xiàn),其中關(guān)聯(lián)分析器的實(shí)現(xiàn)是核心,實(shí)現(xiàn)流程如圖8 所示。

      3.3 Snort 安裝與配置

      Snort 安裝與配置流程如下:

      (1)工 具 準(zhǔn) 備 :Snort 安 裝 包 、Snort 規(guī) 則 庫 、抓 捕工具 WinPcap。

      圖8 系統(tǒng)實(shí)現(xiàn)流程圖

      (2)安裝軟件 Snort 組件。

      (3)安裝抓捕工具 WinPcap,WinPcap 負(fù)責(zé)抓取數(shù)據(jù)包以獲取原始數(shù)據(jù)。

      (4)檢測 Snort 是否安裝成功,通過 cmd 命令行找到Snort 啟動程序的地址。

      (5)安裝 Snort 規(guī)則庫,Snort 規(guī)則庫的壓縮包下載完成后解壓到Snort 的安裝文件夾內(nèi),替換原有文件。

      (6)修改配置文件,打開 d:SnortetcSnort.conf 文件,找到以下三個變量:var RULE_PATH,dynamicpreprocessor,dynamicengine,分別在后面添加路徑,如圖9 所示。

      圖9 Snort 配置

      (7)修改 Snort 輸出方式,過程如下:打開 Snort.conf 文件添加按鈕,將告警日志輸出到CSV 文件的代碼:output alert_CSV:filename,timestamp,msg,proto,src,srcport,dst,dstport,ethsrc,ethdst,ethlen,tcpflags,tcpseq,tcpack,tcplen,tcpwindow,ttl,tos,id,dgmlen,iplen,icmptype,icmpcode,icmoid,icmpseq。Snort 將 告警日志以.CSV 格式輸出到 d:Snortlog 文件夾內(nèi),如圖 10 所示。

      3.4 數(shù)據(jù)庫的安裝與配置

      下載并安裝數(shù)據(jù)庫 SQL Server 2008, 將 Snort的.CSV日志文件導(dǎo)入數(shù)據(jù)庫, 在數(shù)據(jù)庫中查看導(dǎo)入的 Snort 告警日志數(shù)據(jù),如圖 11 所示。

      3.5 關(guān)聯(lián)分析器的實(shí)現(xiàn)

      3.5.1 模塊功能實(shí)現(xiàn)

      (1)數(shù)據(jù)庫操作模塊

      本模塊主要有如下兩個作用:

      ①與數(shù)據(jù)庫建立連接

      關(guān)鍵代碼如下,通過與數(shù)據(jù)庫建立連接,為下一步傳輸數(shù)據(jù)做好準(zhǔn)備。

      string connectionString =@"Data Source =localhost;Initial Catalog=“數(shù)據(jù)庫名”;Integrated Security=True";

      SqlConnection sqlCon=new SqlConnection(connectionString);

      sqlCon.Open();

      ②數(shù)據(jù)預(yù)處理

      這部分主要包括兩項(xiàng)操作:

      剔除無關(guān)的數(shù)據(jù)項(xiàng)。數(shù)據(jù)庫中包含眾多Snort告警日志中的告警項(xiàng)目,由于每一項(xiàng)都包含大量無關(guān)數(shù)據(jù),為提升系統(tǒng)的效率,在進(jìn)行關(guān)聯(lián)分析前,剔除無關(guān)的數(shù)據(jù)項(xiàng),保留可能存在隱含關(guān)聯(lián)的數(shù)據(jù)項(xiàng)。

      根據(jù) Apriori 算法導(dǎo)出數(shù)據(jù)。根據(jù) Apriori 的輸入設(shè)置,按照需求取出兩部分?jǐn)?shù)據(jù):一項(xiàng)候選集和項(xiàng)目集,并以ArrayList 格式存儲,可以靈活設(shè)置數(shù)組的大小,動態(tài)增加或減少元素。

      一項(xiàng)候選集示例:("I1""I2""I3""I4""I5")

      項(xiàng) 目 集 示 例 :("I1,I2,I5""I2,I4""I2,I3""I1,I2,I4""I1,I3""I1,I2,I3,I5""I1,I2,I3")

      (2)生成頻繁項(xiàng)集模塊

      圖10 Snort 告警日志

      圖11 數(shù)據(jù)庫中的告警日志

      生成頻繁項(xiàng)目集語句為:L=Apriori(D,I,s),其中輸入D 為項(xiàng)目集, 格式為 ArrayList,I 為一項(xiàng)候選集,s 為用戶設(shè)置的支持度,格式為 double;輸出L 為頻繁項(xiàng)目集, 格式為 List, 包含了項(xiàng)集的元素和支持度,通過以下語句將L 的數(shù)據(jù)加載到插件中。

      this.dataGridView1.Rows [i].Cells [0].Value=L[i].Items;

      this.dataGridView1.Rows [i].Cells [1].Value=L[i].Sup;

      (3)生成關(guān)聯(lián)規(guī)則模塊

      生成關(guān)聯(lián)規(guī)則的語句為:R=AssociationRules(L,c),其中輸入 L 為生成頻繁項(xiàng)集語句的輸出項(xiàng),c 為提前設(shè)定好的最低置信度,格式為double;輸出結(jié)果R 為得到的關(guān)聯(lián)規(guī)則,以 List格式存儲;函數(shù)AssociationRules 用于搜索每個最大項(xiàng)目集A 的所有非空子集。

      3.5.2 模塊代碼實(shí)現(xiàn)

      系統(tǒng)的代碼主要分為數(shù)據(jù)庫操作、算法、功能控件。數(shù)據(jù)庫操作使用 LINQ to SQL 語句進(jìn)行實(shí)現(xiàn);算法代碼主要依據(jù)經(jīng)典的Apriori 算法采用C# 語言進(jìn)行編寫;同時利用 DataGridView、NumericUpDown等功能控件完成響應(yīng)功能。

      4 實(shí)驗(yàn)與分析

      圖12 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>

      為驗(yàn)證系統(tǒng)的性能, 搭建如圖 12 所示的辦公局域網(wǎng)環(huán)境,實(shí)驗(yàn)過程分為三個部分,第一部分是數(shù)據(jù)采集,編寫SYN Flood 腳本對目標(biāo)主機(jī)進(jìn)行攻擊,時間持續(xù)1 h,在攻擊前運(yùn)行本系統(tǒng)進(jìn)行監(jiān)測和日志記錄;第二部分是數(shù)據(jù)挖掘,利用關(guān)聯(lián)分析器對模擬攻擊階段獲取的Snort 告警日志進(jìn)行數(shù)據(jù)挖掘,產(chǎn)生新的 Snort 規(guī)則,并補(bǔ)充進(jìn) Snort 規(guī)則庫;第三部分是入侵檢測階段,操作與數(shù)據(jù)采集階段相同,之后查看產(chǎn)生的告警日志,驗(yàn)證本文系統(tǒng)是否發(fā)現(xiàn)SYN Flood 攻擊,最后是實(shí)驗(yàn)結(jié)果分析。

      4.1 實(shí)驗(yàn)環(huán)境

      本實(shí)驗(yàn)的目的是測試關(guān)聯(lián)分析器能否找出日志數(shù)據(jù)項(xiàng)間隱藏的關(guān)系,以及改進(jìn)后的Snort 是否具有未知攻擊識別能力。實(shí)驗(yàn)網(wǎng)絡(luò)部署如圖12 所示。

      (1)網(wǎng)絡(luò)攻擊工具:端口掃描工具 ScanPort、地址掃描工具Advanced IP Scanner、 漏洞掃描工具 Nessus、SYN Flood 攻擊腳本。

      (2)入侵檢測系統(tǒng):入侵檢測系統(tǒng)采用Snort 2.8,加載全部檢測規(guī)則,用于檢測攻擊行為,并產(chǎn)生原始的報(bào)警信息。由于 Snort 的包嗅探模式和入侵檢測模式需要捕獲網(wǎng)絡(luò)數(shù)據(jù)包,因此安裝網(wǎng)絡(luò)數(shù)據(jù)包截取驅(qū)動程序WinPcap。

      (3)報(bào)警存儲及分析工具:采用MySQL 數(shù)據(jù)庫提供報(bào)警數(shù)據(jù)的存儲服務(wù);同時安裝PHP5、jpgrapg、ACID 進(jìn)行初步的數(shù)據(jù)分析,其中PHP5 為網(wǎng)頁程序開發(fā)語言,jpgrapg 為圖形庫,ACID 為圖形接口,用于將報(bào)警數(shù)據(jù)圖形化。

      (4)方案實(shí)現(xiàn)工具:使用 VC 6.0 開發(fā)平臺編程實(shí)現(xiàn)報(bào)警挖掘與關(guān)聯(lián)。

      4.2 實(shí)驗(yàn)過程

      4.2.1 數(shù)據(jù)采集

      (1)利用 C 語言編寫 SYN Flood 攻擊程序。

      (2)運(yùn)行 Snort,輸入口令:Snort -d -h 10.104.178.231/24-lSnortlog-c Snort.conf,啟動Snort,如圖13所示。

      圖13 Snort 監(jiān)測

      (3)設(shè)置被攻擊的 IP:#define SYN_DEST_IP "10.104.178.231";設(shè)置偽裝的 IP 起始值:#define FAKE_IP"10.104.178.3",運(yùn)行 SYN Flood 攻擊程序進(jìn)行 DoS攻擊,如圖14 所示(一個點(diǎn)代表進(jìn)行了一次連接請求)。

      圖14 SYN Flood 攻擊

      4.2.2 數(shù)據(jù)挖掘

      (1)將數(shù)據(jù)采集階段的Snort 的告警日志導(dǎo)入SQL Server 數(shù)據(jù)庫,如圖 15 所示。

      圖15 告警日志導(dǎo)入數(shù)據(jù)庫

      (2)運(yùn)行程序,這里選擇將支持度設(shè)為 0.3,最小置信度閾值設(shè)為0.7,點(diǎn)擊按鈕進(jìn)行計(jì)算。

      (3)將關(guān)聯(lián)規(guī)則轉(zhuǎn)換為 Snort 規(guī)則:alert icmp$EXTERNAL_NET any -> 10.104.178.31 any(msg:"SYN Flood!!! ";ttl:54;),并將此規(guī)則補(bǔ)充進(jìn) Snort 規(guī)則庫,如圖16 所示。

      4.2.3 入侵檢測

      再次運(yùn)行SYN Flood 程序進(jìn)行攻擊同時運(yùn)行Snort 進(jìn)行監(jiān)測,1 h 后觀察告警日志,如圖17 所示。

      圖16 補(bǔ)充 Snort 規(guī)則庫

      圖17 Snort 告警日志

      4.3 結(jié)果分析

      對比圖 15 和圖 17 可以看出,原始 Snort 入侵檢測系統(tǒng)在第一次遇到SYN Flood 攻擊時無法識別攻擊,只能簡單地檢測出一些ICMP 數(shù)據(jù)包產(chǎn)生錯誤,但Snort 系統(tǒng)經(jīng)過基于關(guān)聯(lián)規(guī)則的自學(xué)習(xí)后,規(guī)則庫得到補(bǔ)充,當(dāng)再次遇到 SYN Flood 攻擊時,可以很快發(fā)現(xiàn)此攻擊,產(chǎn)生圖 17 所示的告警信息。上述結(jié)果表明所設(shè)計(jì)的關(guān)聯(lián)分析器能夠從Snort 告警日志中挖掘出攻擊間隱藏的關(guān)聯(lián)信息,同時利用這些關(guān)聯(lián)信息,可使Snort 入侵檢測系統(tǒng)具備一定的未知攻擊檢測能力。

      5 結(jié)束語

      針對現(xiàn)有Snort 入侵檢測系統(tǒng)本身不能發(fā)現(xiàn)海量安全日志數(shù)據(jù)背后隱含的有價值的信息,且僅能檢測出已知攻擊的局限性,本文設(shè)計(jì)了一種基于Apriori 算法的關(guān)聯(lián)分析器,以插件的形式加載到Snort 中,克服現(xiàn)有 Snort 入侵檢測系統(tǒng)的局限性。采用 Apriori 算法對 Snort 告警日志進(jìn)行運(yùn)算, 挖掘出Snort 海量告警日志間隱藏的有價值的關(guān)聯(lián)規(guī)則,當(dāng)數(shù)據(jù)流中出現(xiàn)關(guān)聯(lián)規(guī)則選項(xiàng)時,系統(tǒng)會自動檢測識別入侵行為,同時將關(guān)聯(lián)規(guī)則經(jīng)過相應(yīng)轉(zhuǎn)換后補(bǔ)充進(jìn) Snort 的規(guī)則庫,使原先“未知”攻擊變?yōu)椤耙阎惫?,從而使Snort 可以間接識別尚未發(fā)現(xiàn)的攻擊。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文系統(tǒng)的有效性和實(shí)用性。

      猜你喜歡
      分析器日志數(shù)據(jù)挖掘
      一名老黨員的工作日志
      華人時刊(2021年13期)2021-11-27 09:19:02
      探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      酒精分析器為什么能分辨人是否喝過酒
      多邊形電極線形離子阱質(zhì)量分析器的結(jié)構(gòu)與性能
      游學(xué)日志
      應(yīng)用于詞法分析器的算法分析優(yōu)化
      基于并行計(jì)算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
      電力與能源(2017年6期)2017-05-14 06:19:37
      一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
      一種基于粗集和SVM的Web日志挖掘模型
      句容市| 鄢陵县| 达孜县| 汽车| 肃宁县| 新化县| 榆树市| 南丰县| 江口县| 五家渠市| 永靖县| 嘉义市| 庄河市| 三明市| 安乡县| 娄底市| 海盐县| 富民县| 泾阳县| 定西市| 嘉黎县| 集安市| 五常市| 滨州市| 惠水县| 武宣县| 个旧市| 鸡泽县| 阜康市| 长顺县| 南京市| 阿克陶县| 黔西县| 霍邱县| 台北市| 合川市| 合江县| 孙吴县| 申扎县| 玛纳斯县| 长春市|