1. 程式人生 > >基於機器學習的網路異常流量識別系統——資料篇

基於機器學習的網路異常流量識別系統——資料篇

資料集

獲取資料集的兩個方案(網路異常流量)

一、自己配置虛擬機器爬取資料(有條件的可以直接搞伺服器上的資料)
缺點:很耗時而且爬的還沒有什麼普適性,電腦不行直接掛,我就是( ̄▽ ̄)”

  • 自己用NetMate,設定特徵選擇的資料,然後直接爬。
  • 系統:linux,配置檔案設定一下就可開始對爬取的資料做特徵。
    Net Mate官網
  • 預安裝軟體: readline libpcap libxml2 libcurl openssl pthreads

二、用已經爬取好的強大資料集
缺點:不是自己的( ̄▽ ̄)”

  • 在經過一段長時間的尋覓後,我發現了它:KDDCUP1999的資料集,下面簡要說一下它的內容和優勢:

    1.No.5 KDD CUP的預期目標是實現一個網路入侵檢測系統(和我的目的一致(lll¬ω¬))。
    2.預測模型需要能夠辨別出到底哪個是入侵或攻擊的“BAD”連線還是正常的“GOOD”連線。
    3.資料集包含一組標準的審計資料,包括在軍事網模擬的各種攻擊。

  • 資料集收集了9周時間的TCP dump網路連線和系統審計資料,模擬各種使用者型別、各種不同的網路流量和攻擊手段。(所以我覺得為什麼不用它呢,雖然電腦還是可能會炸,但是我省去了爬資料的時間,畢竟7,000,000多資料)

資料處理

資料處理的方式應該也是兩種
(不妥之處請見諒,我在思考論文的時候就按照機器學習的兩個方面來的)

  1. 用決策樹之類的有監督機器學習,避免不了標特徵:分為哪些攻擊?這些攻擊是否可以再歸類成幾種大的異常型別?然後這些特徵又得給起個啥好聽的名字O(∩_∩)O天!想想都怕,好累。
  2. 用K-means等無監督方式,直接生成簇,不過我感覺是不太好使,畢竟這麼大的計算量。
  3. 綜上,基於攻擊型別也挺清楚,資料集也是模擬出來的,資料量龐大,最終選擇了C4.5決策樹演算法。

KDD CUP 1999資料集的特徵分析:
(此處感謝Sal Stolfo教授和Wenke Lee教授的團隊)

在經過特徵分析後,資料中一共有4大類39種攻擊型別,其中22種攻擊型別出現在訓練集,另17種只出現在測試集,為了評估模型的泛化能力。(用心良苦( ̄▽ ̄)”)下面分別展開:

  • DoS(Denialof-Service attack,拒絕服務攻擊):
    back,land,neptune,pod,smurf,teardrop

  • R2L(Remote-to-Local attack,來自遠端主機的未授權訪問):
    ftp-write,guess-passwd,imap,multihop,phf,spy,warezclient,warezmaster

  • U2R(User-to-Root attack,未授權的本地超級使用者特權訪問):
    buffer-overflow,loadmodule,perl,rootkit

  • PROBE(Probing attack,通過埠監視或掃描收集資訊):
    ipsweep,nmap,portsweep,satan


KDD CUP 1999中每個連線的屬性描述
(41種連線屬性,1個類別屬性)—-想想42個一個個打( ̄▽ ̄)”stop!
資料集連結,點我可下,也有特徵表述和屬性表述

http://kdd.ics.uci.edu/databases/kddcup99/task.html
詳細的解釋,英語夠好就行


KDD CUP 1999資料集預處理

我用的weka做處理,所以轉ARFF檔案,加42個頭部( ̄▽ ̄)”
名稱介紹裡都有,資料型別自定呀,我測試了好久,破機器也崩了好幾次。
然後就可以用java寫函式呼叫了!

(第一篇,請大家批評指正O(∩_∩)O)