摘要: 網路安全遇見機器學習,會摩擦出怎樣的火花呢?
網路安全任務和機器學習
讓我們看看常見的網路安全任務和機器學習結合的機會,而不是檢視ML任務並嘗試將它們應用於網路安全。具體我們需要考慮三個維度(Why,What和How)。
第一個維度是目標或任務(例如,檢測威脅,攻擊預測等)。根據Gartner的PPDR模型,所有安全任務可分為五類:
1. 預測;
2. 預防;
3. 檢測;
4. 響應;
5. 監測。
第二個維度是技術層和“什麼”問題的答案(例如,在哪個級別監控問題),以下是此維度的圖層列表:
1. 網路(網路流量分析和入侵檢測);
2. 端點(反惡意軟體);
3. 應用程式(WAF或資料庫防火牆);
4. 使用者行為分析(UBA);
5. 過程(反欺詐)。
每個圖層都有不同的子類別。例如,網路安全可以是有線、無線或雲。請放心,至少在不久的將來,你不能將具有相同超引數的相同演算法應用於兩個區域。因為缺少資料和演算法來找到對這三個區域都很友好的方法,因此可以將一個演算法更改為不同的演算法。
第三個維度是“如何”的問題(例如,如何檢查特定區域的安全性):
1. 實時檢測;
2. 靜態檢測;
3. 歷史檢視;
例如,如果你要檢視端點保護,查詢入侵,則可以監視可執行檔案的程式,執行靜態二進位制分析,分析此端點中的操作歷史記錄等。
有些任務應該從三個方面解決。有時,對於某些任務,某些維度中沒有值。我們需要從其他維度來找到解決方法。這些通常很難詳細介紹它們,所以我們關注最重要的維度-技術層。從這個角度看網路安全解決方案。
用於網路保護的機器學習
網路保護不是單一領域,而是一系列不同的解決方案,專注於乙太網、無線、SCADA甚至SDN等虛擬網路等協議。
網路保護是指眾所周知的入侵檢測系統(IDS)解決方案。網路安全中的ML意味著稱為網路流量分析(NTA)的新解決方案,旨在深入分析每層的所有流量並檢測攻擊和異常。
ML如何在這裡提供幫助?有一些例子:
1. 迴歸預測網路資料包引數並與正常資料包進行比較;
2. 分類以識別不同類別的網路攻擊,例如掃描和欺騙;
3. 聚類資料用於分析;
你可以在學術研究論文中找到至少10篇描述不同方法的論文。
更多資源:
1. 入侵檢測機器學習技術
4. 網路異常檢測技術綜述
7. 入侵檢測系統的效能比較及機器學習在Snort系統中的應用
用於端點保護的機器學習
新一代的反病毒是端點檢測和響應,建議最好學習可執行檔案或程式行為中的特徵。
請記住,如果你在端點層處理應用機器學習,你的解決方案可能會有所不同,具體取決於端點型別(例如工作站、伺服器、容器、雲端、移動裝置、PLC、物聯網裝置)。每種端點都有自己的細節,常見任務類別:
1. 迴歸以預測可執行過程的下一個系統呼叫,並將其與實際過程進行比較;
2. 將程式劃分為惡意軟體、間諜軟體和勒索軟體等類別的分類;
3. 聚類在安全電子郵件閘道器上進行惡意軟體保護(例如將法律檔案附件與異常值分開);
關於端點保護和惡意軟體的學術論文特別受歡迎。這裡有一些論文:
3. TESSERACT:消除跨空間和時間的惡意軟體分類中的實驗偏差
用於應用程式安全的機器學習
在app安全性中使用ML?用於靜態和動態的WAF或程式碼分析?不得不提醒你一下,應用程式安全性可能有所不同。因為他們有很多應用場景:比如說有Web應用程式、資料庫、ERP系統、SaaS應用程式、微服務等。在不久的將來,幾乎不可能建立一個通用的ML模型來有效地處理所有威脅。但是,你可以嘗試解決某些任務。
以下是使用機器學習實現應用程式安全性的示例:
1. 迴歸以檢測HTTP請求中的異常(例如,XXE和SSRF攻擊以及auth旁路);
2. 用於檢測已知型別的攻擊(如注入(SQLi,XSS,RCE等))的分類;
3. 集中使用者活動以檢測DDOS攻擊和大規模利用。
更多資源:
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。
本文作者:【方向】
本文為雲棲社群原創內容,未經允許不得轉載。