網絡安全與機器學習(一):網絡安全中的機器學習算法

摘要: 網絡安全碰見機器學習,會摩擦出怎樣的火花呢?

至關多的文章已經描述了機器學習在網絡安全的應用以及保護咱們免受網絡攻擊的能力。儘管如此,咱們仍然須要仔細研究人工智能(AI)、機器學習(ML)和深度學習(DL),它們到底能不能像炒做內容所說的無所不能。php

首先,我要讓你失望了。我經過研究發現與圖像識別或天然語言處理相比,機器學習永遠不會成爲網絡安全的靈丹妙藥,而這兩個領域的機器學習應用正在蓬勃發展。由於總會有人試圖找到系統或ML算法的弱點並繞過安全機制。更糟糕的是,如今黑客可以利用機器學習來完成他們邪惡想法。算法

幸運的是,機器學習能夠幫助解決最多見的任務,包括迴歸,預測和分類。在數據量極大且網絡安全人才短缺的時代,ML彷佛又是惟一的解決方案。編程

本文介紹了實際應用於網絡安全的ML研究的當前進展和將來方向的實用技術理解。安全

機器學習術語

  1. AI(人工智能)是一個普遍的概念。簡單來講是經過技術使機器變得聰明或者換言之經過機器算法(例如視覺識別,天然語言處理等)進行人工任務。重點是AI不是機器學習或自動化的機器。它能夠是安裝在清潔機器人中的經典程序,如邊緣檢測。總的來講,AI是以某種方式執行人工任務的系統。
  2. ML(機器學習)是人工智能的一種方法,它是一種可以從經驗中學習的系統。它不只能夠複製人類行爲,並且還能夠減小用於困難任務(如股票價格預測)的工做量和時間。換句話說,ML是一個能夠經過使用示例而不是經過編程來識別模式的系統。若是你的系統常常學習,根據數據而不是算法作出決策,並改變其行爲,那就是機器學習。
  3. DL(深度學習)是一套用於實現機器學習的技術,例如圖像識別系統,系統主要識別對象邊緣、結構、對象類型、而後識別對象自己。重點是深度學習並不徹底是深度神經網絡,它還有其餘算法,它們被改進以學習模式模式,例如強化任務中的遷移學習。

定義代表,網絡安全領域主要指機器學習(而不是AI),並且很大一部分任務與人類無關。網絡

機器學習意味着使用基於你擁有的數據和特定方法來解決某些任務。機器學習

大多數最多見的任務,以下所述:分佈式

  1. 迴歸(或預測)-基於先前值預測下一個值的任務;
  2. 分類-將事物分紅不一樣類別的任務;
  3. 聚類-相似於分類,但類是未知的,經過它們的類似性對事物進行分組;
  4. 關聯規則學習(或推薦)-基於先前經驗推薦某事的任務;
  5. 降維—是在多個示例中搜索常見和最重要特徵的任務;
  6. 生成模型:基於先前的分佈知識建立內容的任務。

對於某些任務,你只能使用一種方法,但能夠有多種方法用於其餘任務。工具

ML的趨勢

過去的趨勢
  1. 監督學習:首先,你應該標記數據,例如向模型提供可執行文件的示例,並說該文件是惡意軟件。基於此標記數據,模型能夠決定新數據,缺點是標記數據的限制。
  2. Eensemble(集成)學習:這是監督學習的擴展,同時混合不一樣的簡單模型來解決任務。
當前的趨勢
  1. 無監督學習:數據驅動模式,當沒有標記數據時,可使用該方法,而且模型能夠以某種方式基於屬性自行標記它。一般,它旨在發現數據中的異常,由於幾乎不可能標記全部數據。
  2. 半監督學習:顧名思義,當有一些標記數據時,半監督學習試圖結合有監督和無監督方法進行學習訓練。
將來的趨勢
  1. 強化學習:當行爲應該以某種方式對變化的環境作出反應時,可使用環境驅動的方法。這就像一個經過反覆試驗來學習環境的孩子。
  2. 主動學習:它更像是強化學習的子類,可能會成長爲一個單獨的類型。主動學習相似於教師,除了環境變化以外,還能夠幫助糾正錯誤和行爲。

機器學習和網絡安全

讓咱們看一下可用於解決機器學習任務的不一樣方法的示例,以及它們與網絡安全任務的關係。學習

迴歸

迴歸(或預測)很簡單。利用關於現有數據的知識來了解新數據。舉一個房價預測的例子。在網絡安全中,它能夠應用於欺詐檢測,經過特徵(例如,可疑交易的總量,位置等)肯定欺詐行爲的機率。測試

至於迴歸這方面的技術,能夠分爲兩大類:機器學習和深度學習。

機器學習&迴歸

如下是可用於迴歸任務的機器學習方法的簡短列表(具備各自的優缺點)。

  1. 線性迴歸
  2. 多項式迴歸
  3. 嶺迴歸
  4. 決策樹
  5. SVR(支持向量迴歸)
  6. 隨機森林

你能夠在此處找到每種方法的詳細說明  。

深度學習&迴歸

對於迴歸任務,可使用如下深度學習模型:

  1. 人工神經網絡(ANN)
  2. 遞歸神經網絡(RNN)
  3. 神經圖靈機(NTM)
  4. 可微分神經計算機(DNC)
分類

分類也很簡單。想象一下,你有兩堆按類型分類的圖片(例如,狗和貓)。在網絡安全方面,將垃圾郵件與其餘郵件分開的垃圾郵件過濾器能夠做爲一個例子。垃圾郵件過濾器多是應用於網絡安全任務的第一種ML方法。

監督學習方法通​​經常使用於分類,其中某些組的示例是已知的,全部類都應該在開頭定義。

下面是與算法相關的列表。

機器學習類

  1. LogisticRegression(LR)
  2. K-Nearest Neighbors(K-NN)
  3. 支持向量機(SVM)
  4. KernelSVM
  5. NaiveBayes
  6. DecisionTreeClassification
  7. 隨機森林分類

SVM和隨機森林這樣的方法被認爲是效果最好的,可是請記住,沒有一個通用的規則。

深度學習類

  1. 人工神經網絡
  2. 卷積神經網絡

若是你有更多數據,深度學習方法會更好。可是,若是你計劃在生產中使用它並按期從新訓練系統,它們會消耗更多計算資源。

聚類

聚類是相似於具備惟一但有主要差別的分類方式。有關數據類的信息未知,大體意思是不知道這些數據是否能夠分類。這實際上是無人監督的學習。

據推測,聚類的最佳任務是取證分析。事件的緣由、過程和結果都很模糊,須要對全部活動進行分類以找出異常狀況。惡意軟件分析(即惡意軟件保護安全電子郵件網關)的解決方案能夠實現它以將法律文件與異常值分開。

能夠應用聚類的另外一個有趣的領域是用戶行爲分析。在這種狀況下,應用程序用戶彙集在一塊兒,以即可以查看它們是否應屬於特定組。

一般,聚類不適用於解決網絡安全中的特定任務,由於它更像是管道中的子任務之一(例如,將用戶分組到單獨的組中以調整風險值)。

用於聚類的機器學習

  1. K-最近鄰居(KNN)
  2. K-means
  3. Mixturemodel(LDA)
  4. DBSCn
  5. 貝葉斯
  6. GaussianMixtureModel
  7. Mean-shift
  8. 凝聚式層次聚類

用於聚類的深度學習

  • 自組織映射(SOM)或Kohonen Networks

關聯規則學習(推薦系統)

Netflix和SoundCloud根據你的電影或音樂偏好推薦電影或歌曲。在網絡安全方面,這一原則主要用於事件響應。若是公司面臨一系列事件並提供各類類型的響應,系統會學習特定事件的響應類型(例如,將其標記爲誤報、更改風險值、進行調查)。若是風險管理解決方案自動爲新漏洞或基於其描述構建的錯誤配置分配風險值,那麼它們能夠帶來很大的便利。

解決推薦任務的算法:

關聯規則學習的機器學習

  1. Apriori
  2. Euclat
  3. FP-growth

關聯規則學習的深度學習

  1. 受限玻爾茲曼機(RBM)
  2. 深度信念網絡(DBN)
  3. 堆疊式自動編碼器

最新的推薦系統是基於首先玻爾茲曼機及其更新版本,例若有前途的深度新年網絡。

降維

降維或泛化不像分類那樣受歡迎,但若是你處理具備未標記數據和許多潛在特徵的複雜系統,那必須進行降維。你沒法應用聚類,由於傳統的方法會限制特徵的數量,或者它們不起做用。降維能夠幫助處理它並減小沒必要要的特徵。與聚類同樣,降維一般是更復雜模型中的任務之一。對於網絡安全任務,降維是常見的面部檢測解決方案。

用於降維的機器學習

  1. 主成分分析(PCA)
  2. 奇異值分解(SVD)
  3. T分佈式鄰域嵌入算法(T-SNE)
  4. 線性判別分析(LDA)
  5. 潛在語義分析(LSA)
  6. 因子分析(FA)
  7. 獨立份量分析(ICA)
  8. 非負矩陣分解(NMF)

你能夠在此處找到有關降維的更多信息(包括方法及其功能的通常說明)。

生成模型

生成模型的任務不一樣於上述模型,雖然這些任務涉及現有信息和相關決策,但生成模型旨在根據先前的決策模擬實際數據(而不是生成決策)。

攻擊性網絡安全的任務是生成輸入參數列表,以測試針對注入漏洞的特定應用程序。或者是擁有適用於Web應用程序的漏洞掃描工具。其中一個模塊是測試文件以進行未經受權的訪問。這些測試可以改變現有的文件名以識別新的文件名。例如,生成模型很擅長更擅長,若是爬蟲檢測到名爲login.php的文件,最好經過嘗試login_1.php,login_backup.php,login.php.2017等名稱來檢查是否存在任何備份或測試其副本。

用於生成模型的機器學習

  1. 馬爾可夫鏈
  2. 遺傳算法

用於生成模型的深度學習

  1. 變分自動編碼器
  2. 生成對抗網絡(GAN)
  3. 玻爾茲曼機器

最近,GANs取得了使人矚目的成績。他們成功地模仿了一段視頻,咱們能夠想象一下它如何用於生成模糊測試的示例。



本文做者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索