成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

機器學習算法在IDS中的應用

譯文
人工智能 機器學習 算法
我們需要使用可修改、可重復且可擴展的數據集來應對和處置復雜的攻擊者,本文向您介紹幾種可用于IDS中的機器學習算法。

[[267184]]

【51CTO.com快譯】得益于近年來機器學習技術的飛速發展,人們正在將各種自動化且具有擴容預測能力的技術,運用到網絡安全系統的加固上。

眾所周知,網絡安全的最常見風險來自入侵,其中包括:蠻力破解、拒絕服務、網絡滲透等方面。而現如今,隨著網絡行為模式的改變,業界普遍認為單憑靜態數據集的策略,是無法捕獲流量的具體組成、并予以攔截的。因此我們有必要采用一種動態的方式,來檢測和防御各種入侵。

也就是說:我們需要可修改的、可重復且可擴展的數據集,來學習和處理那些能夠輕松繞過傳統入侵檢測系統(IDS)的復雜攻擊源。下面,讓我們一起討論機器學習如何能夠在入侵檢測中發揮作用,以構建出更為強大與健壯的IDS。

與IDS相關的機器學習相關概念

在機器學習的各種算法中,無監督(Unsupervised)式學習算法可以從網絡中“學到”各種典型的模式,并且能夠在沒有任何已標記數據集的情況下,報告異常情況。雖然它可以檢測出各種新型的入侵,但是很容易出現誤報(false positive alarms)的情況。因此,我們在此只討論無監督式的K-均值聚類算法。另外,為了減少誤報,我們可以引入已標記的數據集,并建立監督式機器學習模型,進而訓練出網絡中正常數據包與攻擊流量之間的特征差異。此類監督式的模型能夠熟練地處置各種已知攻擊,并且能夠識別出此類攻擊的變種。因此,我們下面會討論到的標準監督式算法包括:貝葉斯網絡、隨機森林、隨機樹、MLP、以及決策表。

數據集

在機器學習模型的開始階段,最重要也是最繁瑣的過程便是獲得各種可靠的數據。在此,我們使用KDD Cup 1999的數據,來建立預測模型,從而區分入侵類攻擊與真正有價值的流量連接。KDD Cup 1999是一個標準的數據集,它包括了在軍事網絡環境中所模擬出的各種干預模型,由4898431個實例和41種屬性所組成。

它會跟蹤如下四種攻擊類型,每一個連接都會被標記為正常、或是具有攻擊性。而且每一條連接記錄大約都是由100個字節所組成。

  • 拒絕服務:denial-of-service
  • R2L:來自遠程機器的未經授權的訪問
  • U2R:來自本地root特權的未經授權的訪問
  • 探測:監視并需要另一種檢查

如下表所示,每一種類型都包含了具體的攻擊形式,一共有21種。

KDD集合

如下表所示,我們總結出了任意一種基于TCP/IP協議的連接集的基礎分類特征:

數據在能夠被機器學習算法所使用之前,必須經過被特征選擇等處理。有些元素特征很容易被發現,而其他的特征則需要通過實驗和測試才能被找到。當然,由于某些特征是冗余的,而且將不同的類別予以區分可能意義不大,因此在IDS中使用數據集的所有特征并不一定能獲得最佳的性能,有時甚至會增加系統的計算成本與錯誤率。

此處,數據集的主要貢獻是通過引入專家建議的屬性,有助于系統理解不同類型的攻擊行為,包括上述提及的:檢測DoS、探測、R2L和U2R等基本特性。下表便是來自不同領域的知識庫所給出的內容特征列表。

機器學習算法的簡述

K-均值聚類(K-means clustering)

如前所述,K-均值聚類是一種無監督式的學習技術。這是最簡單、也是最流行的機器學習算法之一。它在數據中尋找不同的組,其中組的數量由變量K所表示。該算法基于數據集的特征,將不同的數據點分配給K中的一個組。基于不同的特征相似性,各個數據點會被采取聚類。

貝葉斯網絡(Bayes Network)

貝葉斯網絡是一種概率圖形模型。它的原理是通過繪制出有向圖形邊上的依賴關系,進而充分利用到條件的依賴性。它假定所有沒有被邊緣所連接的節點,都是具有條件獨立。而且它在創建有向無環圖時,就利用到了該事實基礎。

隨機森林分類器(Random Forest Classifier)

隨機森林是一種集成式的分類器,它通過合并多種算法來實現分類。這些算法在數據的隨機子集上創建多個決策樹,然后通過聚合每棵樹的總票數,來決定測試的類別。同時,它也會給個別樹的貢獻程度分配權重值。

多層感知(MLP)

MLP是一種前饋式神經網絡。它至少由三個層次所組成:輸入層、隱藏層和輸出層。在訓練期間,我們可以通過調整各種權重或參數,來最小化分類中的錯誤。該算法在每個隱藏節點中引入了非線性(Non-linearity)。而反向傳播則是用來通過參照錯誤,進而調整權重與偏差。

實現

下面,我們將使用Python及其廣泛的庫來實現IDS。當然,我們需要事先安裝好Pandas(基于Python的大型數據集分析庫)、NumPy(Python的一種開源類數值計算擴展)和Scipy(可用于數學、科學、工程領域的常用軟件包,常用于計算Numpy矩陣,能與Numpy協同工作)。如果您使用的是Ubuntu系統,那么其對應的shell命令應該是:

  1. sudo pip install numpy scipy pandas 

首先,我們需要對數據集進行預處理,也就是說:數據集需要被下載并提取到程序對應的文件夾中。同時,該數據集應該是.csv格式,以方便Python的讀取。因此具體命令如下: 

  1. # Import pandas 
  2. import pandas as pd  
  3. # reading csv 
  4. file dataset = pd.read_csv("filename.csv"

前面提到的各種機器學習算法都應當被存放在“神奇”的Scipy庫中。通過以下步驟,您可以使用不同的模型,來快速運行目標數據集:

K-均值 

  1. import numpy as np  
  2. from sklearn.cluster  
  3. import KMeans  
  4. print(dataset.describe())  
  5. to view the summary of the dataset loaded  
  6. kmeans = KMeans(n_clusters=2)  
  7. # You want cluster the threats into 5: Normal, DOS,PROBE, R2L and U2R  
  8. kmeans.fit(X)  
  9. prediction = kmeans.predict(dataset[0])  
  10. # predicts the type for the first entry  
  11. 隨機森林 
  12. #Import Random Forest Model  
  13. from sklearn.ensemble  
  14. import RandomForestClassifier  
  15. #Create a Gaussian  
  16. Classifier clf=RandomForestClassifier(n_estimators=50)  
  17. #Train the model using the training  
  18. dataset clf.fit(dataset,dataset[:,LAST_COLUMN])  
  19. #LAST_COLUMN is the index of the column with the labelled type of threat or normal  
  20. pred=clf.predict(dataset) 

樸素貝葉斯網絡 

  1. from sklearn.naive_bayes  
  2. import GaussianNB  
  3. #Create a Gaussian Naive Bayes Classifier  
  4. gnb = GaussianNB()  
  5. gnb.fit(dataset,dataset[:,LAST_COLMN])  
  6. pred=predict(gnb,dataset[0]) 

多層感知 

  1. From sklearn.neural_network  
  2. import MLPClassifier  
  3. #Create a Multi-Layer Perceptron  
  4. clf = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(5, 2), random_state=1)  
  5. clf.fit(dataset,dataset[:,LAST_COLMN])  
  6. pred=clf.predict(dataset[0]); 

結果

為了衡量機器學習模型的準確性,我們會引入諸如:平均準確度(Average Accuracy)、誤報率(False Positive Rates)和漏報率(False Negative Rates)等不同衡量維度的參考指標。由于K-均值是一種無監督式算法,因此它被排除在了該指標之外。

如下面公式所示,平均準確度定義為:被正確分類的數據點與數據點總數的比。

顯而易見,此處的“誤報”是指那些被判定為威脅,而實際上并非為如此的數據流量。同理,“漏報”是指那些確實為威脅,但未被IDS所查出并報告的流量。

另一些可以參考與度量的指標還包括:精度和真陽性。其中:

  • 精度是指發現的威脅與威脅總量的比率。
  • 真陽性是指那些能夠被成功地識別為威脅包,與全部能被識別和判定的數據包的比率。

應用的意義

從某種程度上說,當前所有的IDS都應該引入機器學習技術,以應對日益增加的網絡安全威脅。具備機器學習的IDS,能夠實現細粒度、高精度的自動化檢測。籍此,企業可以使用各種檢測結果來跟蹤攻擊源,阻止它們的進一步滲透,并優化自身的網絡。另外,用戶公司也不必再通過訂購威脅特征簽名,來被迫與新產生的攻擊進行“時間賽跑”。當然,在不同的應用與檢測場景中,不同的機器學習算法會各有所長。我們應該根據網絡及用戶流量的特性,選用最適合自身環境的基于機器學習的IDS方案。

原文標題:Evaluation of ML Algorithms for Intrusion Detection Systems,作者:Aman Juneja

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2021-07-21 11:25:17

機器學習?AI人工智能

2017-04-14 08:33:47

2022-03-18 17:53:14

機器學習物聯網工業物聯網

2022-04-18 11:36:43

機器學習制造業人工智能

2020-02-27 14:47:11

人工智能機器學習故障檢測

2021-04-13 09:00:00

機器學習鐵路技術

2017-07-10 09:28:19

人工智能機器學習自動駕駛

2017-07-07 16:52:54

機器學習人工智能自動駕駛

2017-07-10 10:05:50

機器學習自動駕駛AI

2017-09-12 16:57:43

機器學習K-means算法Python

2022-09-19 09:53:37

機器學習實踐

2020-08-10 11:15:07

機器學習ML人工智能

2021-07-29 09:55:40

人工智能AI深度學習

2021-10-26 14:44:28

人工智能AI深度學習

2020-07-13 14:50:51

機器學習模型算法

2022-02-21 16:05:26

機器學習優勢Python

2017-07-21 10:42:27

自動駕駛應用機器學習

2019-11-25 14:24:24

機器學習算法數據

2021-11-30 22:51:36

機器學習大數據技術

2022-03-02 09:11:09

機器學習網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 手机在线观看 | 日韩一区二区三区在线视频 | 不卡一区二区三区四区 | 欧洲毛片| 女朋友的闺蜜3韩国三级 | 无码日韩精品一区二区免费 | 国产高清视频在线播放 | 亚洲视频精品 | 国产精品伦理一区二区三区 | 一级片成人 | 亚洲精品视频二区 | 91在线影院 | 欧美激情久久久 | 91在线视频免费观看 | 最新av在线网址 | 亚洲国产高清高潮精品美女 | 中文字幕一区在线 | 久久99精品久久久久久 | 色999视频 | 亚洲导航深夜福利涩涩屋 | 中文字幕在线一区 | 99亚洲 | 欧美综合一区二区三区 | 在线 丝袜 欧美 日韩 制服 | 欧美日韩精品一区 | 91福利电影在线观看 | 丝袜美腿一区二区三区动态图 | 久久视频精品在线 | 精品亚洲二区 | 欧美日韩美女 | 欧美11一13sex性hd | 久久久久国产精品一区二区 | 成人日韩精品 | 国产成人叼嘿视频在线观看 | 99久久精品免费看国产四区 | 午夜精品一区二区三区在线视频 | 56pao在线| 蜜臀久久99精品久久久久野外 | 草久视频 | 一色桃子av一区二区 | 国产精品久久九九 |