網路安全中的機器學習演算法
網路安全中的機器學習演算法
相當多的文章已經描述了機器學習在網路安全的應用以及保護我們免受網路攻擊的能力。儘管如此,我們仍然需要仔細研究人工智慧(AI)、機器學習(ML)和深度學習(DL),它們到底能不能像炒作內容所說的無所不能。
首先,我要讓你失望了。我通過研究發現與影象識別或自然語言處理相比,機器學習永遠不會成為網路安全的靈丹妙藥,而這兩個領域的機器學習應用正在蓬勃發展。因為總會有人試圖找到系統或ML演算法的弱點並繞過安全機制。更糟糕的是,現在黑客能夠利用機器學習來完成他們邪惡想法。
幸運的是,機器學習可以幫助解決最常見的任務,包括迴歸,預測和分類。在資料量極大且網路安全人才短缺的時代,ML似乎又是唯一的解決方案。
本文介紹了實際應用於網路安全的ML研究的當前進展和未來方向的實用技術理解。
機器學習術語
- AI(人工智慧)是一個廣泛的概念。簡單來說是通過技術使機器變得聰明或者換言之通過機器演算法(例如視覺識別,自然語言處理等)進行人工任務。重點是AI不是機器學習或自動化的機器。它可以是安裝在清潔機器人中的經典程式,如邊緣檢測。總的來說,AI是以某種方式執行人工任務的系統。
- ML(機器學習)是人工智慧的一種方法,它是一種能夠從經驗中學習的系統。它不僅可以複製人類行為,而且還可以減少用於困難任務(如股票價格預測)的工作量和時間。換句話說,ML是一個可以通過使用示例而不是通過程式設計來識別模式的系統。如果你的系統經常學習,根據資料而不是演算法做出決策,並改變其行為,那就是機器學習。
- DL(深度學習)是一套用於實現機器學習的技術,例如影象識別系統,系統主要識別物件邊緣、結構、物件型別、然後識別物件本身。重點是深度學習並不完全是深度神經網路,它還有其他演算法,它們被改進以學習模式模式,例如強化任務中的遷移學習。
定義表明,網路安全領域主要指機器學習(而不是AI),而且很大一部分任務與人類無關。
機器學習意味著使用基於你擁有的資料和特定方法來解決某些任務。
大多數最常見的任務,如下所述:
- 迴歸(或預測)-基於先前值預測下一個值的任務;
- 分類-將事物分成不同類別的任務;
- 聚類-類似於分類,但類是未知的,通過它們的相似性對事物進行分組;
- 關聯規則學習(或推薦)-基於先前經驗推薦某事的任務;
- 降維—是在多個示例中搜索常見和最重要特徵的任務;
- 生成模型:基於先前的分佈知識建立內容的任務。
對於某些任務,你只能使用一種方法,但可以有多種方法用於其他任務。
ML的趨勢
過去的趨勢
- 監督學習:首先,你應該標記資料,例如向模型提供可執行檔案的示例,並說該檔案是惡意軟體。基於此標記資料,模型可以決定新資料,缺點是標記資料的限制。
- Eensemble(整合)學習:這是監督學習的擴充套件,同時混合不同的簡單模型來解決任務。
當前的趨勢
- 無監督學習:資料驅動模式,當沒有標記資料時,可以使用該方法,並且模型可以以某種方式基於屬性自行標記它。通常,它旨在發現數據中的異常,因為幾乎不可能標記所有資料。
- 半監督學習:顧名思義,當有一些標記資料時,半監督學習試圖結合有監督和無監督方法進行學習訓練。
未來的趨勢
- 強化學習:當行為應該以某種方式對變化的環境做出反應時,可以使用環境驅動的方法。這就像一個通過反覆試驗來學習環境的孩子。
- 主動學習:它更像是強化學習的子類,可能會成長為一個單獨的型別。主動學習類似於教師,除了環境變化之外,還可以幫助糾正錯誤和行為。
機器學習和網路安全
讓我們看一下可用於解決機器學習任務的不同方法的示例,以及它們與網路安全任務的關係。
迴歸
迴歸(或預測)很簡單。利用關於現有資料的知識來了解新資料。舉一個房價預測的例子。在網路安全中,它可以應用於欺詐檢測,通過特徵(例如,可疑交易的總量,位置等)確定欺詐行為的概率。
至於迴歸這方面的技術,可以分為兩大類:機器學習和深度學習。
機器學習&迴歸
以下是可用於迴歸任務的機器學習方法的簡短列表(具有各自的優缺點)。
- 線性迴歸
- 多項式迴歸
- 嶺迴歸
- 決策樹
- SVR(支援向量迴歸)
- 隨機森林
你可以在此處找到每種方法的詳細說明 。
深度學習&迴歸
對於迴歸任務,可以使用以下深度學習模型:
- 人工神經網路(ANN)
- 遞迴神經網路(RNN)
- 神經圖靈機(NTM)
- 可微分神經計算機(DNC)
分類
分類也很簡單。想象一下,你有兩堆按型別分類的圖片(例如,狗和貓)。在網路安全方面,將垃圾郵件與其他郵件分開的垃圾郵件過濾器可以作為一個例子。垃圾郵件過濾器可能是應用於網路安全任務的第一種ML方法。
監督學習方法通常用於分類,其中某些組的示例是已知的,所有類都應該在開頭定義。
下面是與演算法相關的列表。
機器學習類
- LogisticRegression(LR)
- K-Nearest Neighbors(K-NN)
- 支援向量機(SVM)
- KernelSVM
- NaiveBayes
- DecisionTreeClassification
- 隨機森林分類
SVM和隨機森林這樣的方法被認為是效果最好的,但是請記住,沒有一個通用的規則。
深度學習類
- 人工神經網路
- 卷積神經網路
如果你有更多資料,深度學習方法會更好。但是,如果你計劃在生產中使用它並定期重新訓練系統,它們會消耗更多計算資源。
聚類
聚類是類似於具有唯一但有主要差異的分類方式。有關資料類的資訊未知,大致意思是不知道這些資料是否可以分類。這其實是無人監督的學習。
據推測,聚類的最佳任務是取證分析。事件的原因、過程和結果都很模糊,需要對所有活動進行分類以找出異常情況。惡意軟體分析(即惡意軟體保護或安全電子郵件閘道器)的解決方案可以實現它以將法律檔案與異常值分開。
可以應用聚類的另一個有趣的領域是使用者行為分析。在這種情況下,應用程式使用者聚集在一起,以便可以檢視它們是否應屬於特定組。
通常,聚類不適用於解決網路安全中的特定任務,因為它更像是管道中的子任務之一(例如,將使用者分組到單獨的組中以調整風險值)。
用於聚類的機器學習
- K-最近鄰居(KNN)
- K-means
- Mixturemodel(LDA)
- DBSCn
- 貝葉斯
- GaussianMixtureModel
- Mean-shift
- 凝聚式層次聚類
用於聚類的深度學習
- 自組織對映(SOM)或Kohonen Networks
關聯規則學習(推薦系統)
Netflix和SoundCloud根據你的電影或音樂偏好推薦電影或歌曲。在網路安全方面,這一原則主要用於事件響應。如果公司面臨一系列事件並提供各種型別的響應,系統會學習特定事件的響應型別(例如,將其標記為誤報、更改風險值、進行調查)。如果風險管理解決方案自動為新漏洞或基於其描述構建的錯誤配置分配風險值,那麼它們可以帶來很大的便利。
解決推薦任務的演算法:
關聯規則學習的機器學習
- Apriori
- Euclat
- FP-growth
關聯規則學習的深度學習
- 受限玻爾茲曼機(RBM)
- 深度信念網路(DBN)
- 堆疊式自動編碼器
最新的推薦系統是基於首先玻爾茲曼機及其更新版本,例如有前途的深度新年網路。
降維
降維或泛化不像分類那樣受歡迎,但如果你處理具有未標記資料和許多潛在特徵的複雜系統,那必須進行降維。你無法應用聚類,因為傳統的方法會限制特徵的數量,或者它們不起作用。降維可以幫助處理它並減少不必要的特徵。與聚類一樣,降維通常是更復雜模型中的任務之一。對於網路安全任務,降維是常見的面部檢測解決方案。
用於降維的機器學習
- 主成分分析(PCA)
- 奇異值分解(SVD)
- T分散式鄰域嵌入演算法(T-SNE)
- 線性判別分析(LDA)
- 潛在語義分析(LSA)
- 因子分析(FA)
- 獨立分量分析(ICA)
- 非負矩陣分解(NMF)
你可以在此處找到有關降維的更多資訊(包括方法及其功能的一般說明)。
生成模型
生成模型的任務不同於上述模型,雖然這些任務涉及現有資訊和相關決策,但生成模型旨在根據先前的決策模擬實際資料(而不是生成決策)。
攻擊性網路安全的任務是生成輸入引數列表,以測試針對注入漏洞的特定應用程式。或者是擁有適用於Web應用程式的漏洞掃描工具。其中一個模組是測試檔案以進行未經授權的訪問。這些測試能夠改變現有的檔名以識別新的檔名。例如,生成模型很擅長更擅長,如果爬蟲檢測到名為login.php的檔案,最好通過嘗試login_1.php,login_backup.php,login.php.2017等名稱來檢查是否存在任何備份或測試其副本。
用於生成模型的機器學習
- 馬爾可夫鏈
- 遺傳演算法
用於生成模型的深度學習
- 變分自動編碼器
- 生成對抗網路(GAN)
- 玻爾茲曼機器
最近,GANs取得了令人矚目的成績。他們成功地模仿了一段視訊,我們可以想象一下它如何用於生成模糊測試的示例。
以上為譯文,由阿里云云棲社群組織翻譯。