摘要: 網絡安全碰見機器學習,會摩擦出怎樣的火花呢?html
網絡安全任務和機器學習算法
讓咱們看看常見的網絡安全任務和機器學習結合的機會,而不是查看ML任務並嘗試將它們應用於網絡安全。具體咱們須要考慮三個維度(Why,What和How)。數據庫
第一個維度是目標或任務(例如,檢測威脅,攻擊預測等)。根據Gartner的PPDR模型,全部安全任務可分爲五類:安全
1. 預測;服務器
2. 預防;網絡
3. 檢測;app
4. 響應;框架
5. 監測。機器學習
第二個維度是技術層和「什麼」問題的答案(例如,在哪一個級別監控問題),如下是此維度的圖層列表:微服務
1. 網絡(網絡流量分析和入侵檢測);
2. 端點(反惡意軟件);
3. 應用程序(WAF或數據庫防火牆);
4. 用戶行爲分析(UBA);
5. 過程(反欺詐)。
每一個圖層都有不一樣的子類別。例如,網絡安全能夠是有線、無線或雲。請放心,至少在不久的未來,你不能將具備相同超參數的相同算法應用於兩個區域。由於缺乏數據和算法來找到對這三個區域都很友好的方法,所以能夠將一個算法更改成不一樣的算法。
第三個維度是「如何」的問題(例如,如何檢查特定區域的安全性):
1. 實時檢測;
2. 靜態檢測;
3. 歷史查看;
例如,若是你要查看端點保護,查找入侵,則能夠監視可執行文件的進程,執行靜態二進制分析,分析此端點中的操做歷史記錄等。
有些任務應該從三個方面解決。有時,對於某些任務,某些維度中沒有值。咱們須要從其餘維度來找到解決方法。這些一般很難詳細介紹它們,因此咱們關注最重要的維度-技術層。從這個角度看網絡安全解決方案。
用於網絡保護的機器學習
網絡保護不是單一領域,而是一系列不一樣的解決方案,專一於以太網、無線、SCADA甚至SDN等虛擬網絡等協議。
網絡保護是指衆所周知的入侵檢測系統(IDS)解決方案。網絡安全中的ML意味着稱爲網絡流量分析(NTA)的新解決方案,旨在深刻分析每層的全部流量並檢測攻擊和異常。
ML如何在這裏提供幫助?有一些例子:
1. 回歸預測網絡數據包參數並與正常數據包進行比較;
2. 分類以識別不一樣類別的網絡攻擊,例如掃描和欺騙;
3. 聚類數據用於分析;
你能夠在學術研究論文中找到至少10篇描述不一樣方法的論文。
更多資源:
1. 入侵檢測機器學習技術;
4. 網絡異常檢測技術綜述;
6. 深度數據包:一種利用深度學習進行加密流量分類的新方法;
7. 入侵檢測系統的性能比較及機器學習在Snort系統中的應用;
8. 入侵檢測系統機器學習算法評估;
9. 基於LSTM的一類集體異常檢測;
10. 基於遞歸神經網絡的網絡流量異常檢測;
11. 計算機網絡流量異常檢測的序列聚合規則;
12. IDS全部方法的大集合;
用於端點保護的機器學習
新一代的反病毒是端點檢測和響應,建議最好學習可執行文件或進程行爲中的特徵。
請記住,若是你在端點層處理應用機器學習,你的解決方案可能會有所不一樣,具體取決於端點類型(例如工做站、服務器、容器、雲端、移動設備、PLC、物聯網設備)。每種端點都有本身的細節,常見任務類別:
1. 回歸以預測可執行過程的下一個系統調用,並將其與實際過程進行比較;
2. 將程序劃分爲惡意軟件、間諜軟件和勒索軟件等類別的分類;
3. 聚類在安全電子郵件網關上進行惡意軟件保護(例如將法律文件附件與異常值分開);
關於端點保護和惡意軟件的學術論文特別受歡迎。這裏有一些論文:
3. TESSERACT:消除跨空間和時間的惡意軟件分類中的實驗誤差;
用於應用程序安全的機器學習
在app安全性中使用ML?用於靜態和動態的WAF或代碼分析?不得不提醒你一下,應用程序安全性可能有所不一樣。由於他們有不少應用場景:好比說有Web應用程序、數據庫、ERP系統、SaaS應用程序、微服務等。在不久的未來,幾乎不可能創建一個通用的ML模型來有效地處理全部威脅。可是,你能夠嘗試解決某些任務。
如下是使用機器學習實現應用程序安全性的示例:
1. 回歸以檢測HTTP請求中的異常(例如,XXE和SSRF攻擊以及auth旁路);
2. 用於檢測已知類型的攻擊(如注入(SQLi,XSS,RCE等))的分類;
3. 集中用戶活動以檢測DDOS攻擊和大規模利用。
更多資源:
1. 自適應檢測Web攻擊中的惡意查詢;
2. 惡意腳本的神經分類:使用JavaScript和VBScript進行的研究;
3. URLNet:通過深度學習學習URL表示以進行惡意URL檢測;
用於用戶行爲的機器學習
這類任務需求始於安全信息和事件管理(SIEM)。若是配置正確,SIEM可以解決許多任務,包括用戶行爲搜索和ML。而後,UEBA解決方案宣稱SIEM沒法處理新的,更高級的攻擊類型和持續的行爲更改。
若是從用戶層面考慮威脅,市場已經接受了須要特殊解決方案的觀點。
可是,即便最高級的UEBA工具也不包括與不一樣用戶行爲相關的全部內容。(域用戶、應用程序用戶、SaaS用戶、社交網絡、信使和其餘應該監控的賬戶)。
與常見攻擊的惡意軟件檢測和訓練分類器的可能性不一樣,用戶行爲屬於無監督學習問題之一。一般,沒有標記數據集以及要查找的內容。所以,爲全部類型的用戶建立通用算法的任務在用戶行爲區域中是棘手的。如下是公司在ML的幫助下解決的任務:
1. 回歸以檢測用戶操做中的異常(例如,在異常時間登錄);
2. 分類以將不一樣用戶分組以進行對等組分析;
3. 聚類以分離用戶組並檢測異常值。
更多資源:
用於進程行爲的機器學習
進程區域是最後但並不是最不重要的,在處理它時,有必要知道一個大體的業務流程,以便找到異常值。注意不一樣行業的業務流程可能有很大差別。你能夠在銀行和零售系統或製造廠中查找欺詐行爲。二者徹底不一樣,找到它們的不一樣須要不少領域知識。機器學習特徵工程(將數據表示爲算法的方式)對於實現結果相當重要。一樣,特徵在全部進程中都不一樣。
一般,進程行爲也有任務示例:
1. 回歸:預測下一個用戶行爲並檢測信用卡欺詐等異常值;
2. 分類:檢測已知類型的欺詐;
3. 聚類:比較業務流程和檢測異常值。
更多資源:
機器學習網絡安全書籍
若是你想了解有關網絡安全中機器學習的更多信息,能夠閱讀如下書籍:
1. Cylance的網絡安全AI(2017)-對網絡安全ML的基礎知識的簡短,並且有很好的實際例子。
2. O'reilly的機器學習和安全(2018)-迄今爲止關於這個主題的最佳書籍,但不多關於深度學習的例子,大可能是通常的ML。
3. Packt的滲透測試機器學習(2018)-不像前一個那麼優秀,但有不少的深度學習方法。
4. 惡意軟件數據科學:攻擊檢測和歸因(2018)-從標題中能夠看出,這本書主要關注惡意軟件。它剛剛在撰寫本文時發布,因此到目前爲止我沒法給出任何反饋。但我相信,這對端點保護團隊的每一個人來說都是必須的。
結論
若是你想保護你的系統,機器學習絕對不是一個銀彈解決方案。毫無疑問,可解釋性存在許多問題(特別是對於深度學習算法)。另外一方面,隨着數據量的增長和網絡安全專家數量的減小,ML是惟一的補救措施。它如今有效,很快就會執行。如今最好開始作這些。由於請記住,黑客也開始在攻擊中使用ML。