【51CTO.com原創稿件】在網絡上,如今有關機器學習(ML)、人工智能(AI)、深度學習(DL)、以及網絡安全防護的文章可謂是鋪天蓋地、紛繁複雜。
我們該如何剔除各種炒作因素,潛心研究如何真正地將機器學習應用到網絡安全之中呢?
首先是一條壞消息:與圖像識別、自然語言處理等應用相比,機器學習在網絡安全領域的落地,遠達不到“銀彈”的水平。
黑客們一直致力於尋找目標系統中機器學習算法的弱點,以繞過現有安全機制;更糟的是,他們正憑藉著機器學習的技術,不斷改進其攻擊水平和效率。
其次是一條好消息:機器學習可以協助我們完成包括迴歸、預測和分類在內的常見任務。這對於數據大爆炸和網絡安全人才短缺的今天,無疑是一劑良藥。
本文旨在向技術實務人員介紹機器學習在網絡安全領域應用的現狀和未來的發展方向。
機器學習術語
不要混淆“AI”一詞,讓我們來看看與之相關的術語。
AI(人工智能):是一個廣義的概念。它是一門讓機器變得聰明的科學,換言之,讓機器(如:視覺識別、自然語言處理等)替人類處理各項任務。
請注意,AI 並不完全是機器學習或全面智能。它可能只是一段基本程序,被安裝在掃地機器人上,用於判斷牆角距離。
ML(機器學習):是將 AI 運用到系統中,實現從經驗中學習的一種(或一組)方法。
其目標不僅是複製人類的行為,還旨在減少花費在諸如預測股票價格之類,繁簡不同的任務上的時間和精力。
換句話說,機器學習通過使用樣本和基於數據,而不是靠編程或算法,來識別模型並做出決策。
DL(深度學習):是採用機器學習,從樣本中進行識別(如:圖像識別)的一組技術。該系統主要識別物體的邊緣、結構、類型以及對象本身。
深度學習不能完全等同於諸如 Deep Q-Learning(DQN)的深層強化神經網絡(Deep Neural Networks)。
根據上述定義,由於網絡安全的大部分自動化工作並不涉及到人工,所以該領域主要用到的會是機器學習,而非人工智能。即:根據獲取到的數據,使用一些方法來處理某些任務。
機器學習的方法和網絡安全
下面我們來討論一下機器學習的各種方法、應用示例和能夠解決的網絡安全問題。
迴歸
迴歸(或稱預測)是簡單地通過現有數據的相關知識,來預測新的數據,例如我們可以用來預測房價的走勢。
在網絡安全方面,我們籍此可以根據諸如可疑交易的數量和位置等特徵概率,來檢查各種欺詐行為。
就回歸的技術而言,我們可以分為機器學習和深度學習兩大類。當然這種劃分方式也適用於下面提到的其他方法。
機器學習的迴歸
機器學習的迴歸方法大致分為如下幾種,它們各有利弊:
- 線性迴歸
- 多項式迴歸
- 嶺迴歸
- 決策樹
- 支持向量迴歸(Support Vector Regression,SVR)
- 隨機森林
您可以通過以下鏈接,來進一步瞭解每一種方法:
https://www.superdatascience.com/wp-content/uploads/2017/02/Regression-Pros-Cons.pdf
深度學習的迴歸
以下是深度學習模型所採用的各種迴歸方法:
- 人工神經網絡(ANN)
- 遞歸神經網絡(RNN)
- 神經圖靈機(NTM)
- 微神經計算機(DNC)
分類
分類是對圖像進行區分,例如將兩堆照片分為狗和貓兩大類。在網絡安全方面,我們可以籍此通過垃圾郵件過濾器,從各種郵件中甄別出真正垃圾郵件。
在事先準備好所有分類的定義和已知樣本的分組之後,我們便可採用監督學習方法進行分類。
機器學習的分類:
- 邏輯迴歸(LR)
- k-近鄰(K-NN)
- 支持向量機(SVM)
- 核函數支持向量機(KernelSVM)
- 樸素貝葉斯
- 決策樹分類
- 隨機森林分類
業界普遍認為支持向量機和隨機森林兩種方法的效果最好。請記住,沒有一種是放之四海而皆準的萬能方法,“此之毒藥,彼之蜜糖”。
深度學習的分類:
- 人工神經網絡
- 卷積神經網絡
只要您提供的數據越多,深度學習方法的效果就越好;不過在您的生產環境、和週期性再培訓系統中,它也會消耗您更多的資源。
聚類
聚類與分類的唯一不同在於,前者面對的類信息是未知的,即:它並不知道數據是否能夠被分類,因此屬於無監督學習。
由於安全事件的原因、過程和後果存在著諸多不確定因素,而且需要對所有的行為進行分類,以發現蛛絲馬跡,因此業界普遍認為聚類最適合取證分析。
例如,各種惡意軟件防護或郵件安全網關之類的解決方案就能通過分析,從各種異常信息中發現與司法取證有關的文件。另外,聚類也可以被用於做用戶行為的分析,進而將用戶區分為不同的組。
通常情況下,聚類並不被用來單獨地解決某項網絡安全問題,而是被放置到某個處理任務的管道中,例如:將用戶分為不同的組,以調整風險取值。
機器學習的聚類:
- k-近鄰(K-NN)
- K-means算法
- 混合模型(LDA)
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基於密度的聚類方法)
- 貝葉斯
- 高斯混合模型(Gaussian Mixture Model)
- Agglomerative 層次聚類
- 均值偏移(Mean-shift)
深度學習的聚類:
- 自組織映射(SOM)或 Kohonen 神經網絡
關聯式規則學習(推薦系統)
正如 Netflix 和 SoundCloud 會根據您的電影和音樂偏好來進行推薦那樣,在網絡安全方面,我們可以運用該原理來進行事件響應。
在公司使用不同類型的響應策略,來應對一大波的安全事件時,我們可以使用該系統來學習某項特定事件響應類型,通過標記出誤報,進而改變其對應的風險值,以方便調查。
另外,風險管理方案可以根據預定的特徵描述來為新的漏洞和錯誤的配置,自動分配風險值。
機器學習的關聯式規則:
- 先驗
- Euclat 算法
- 頻繁模式增長(FP-Growth)算法
深度學習的關聯式規則:
- 深度受限玻爾茲曼機(RBM)
- 深度信念網絡(DBN)
- 棧式自動編碼器
降維
雖然降維(或稱概括)不像分類那樣常用,但它對於那些處理未標記數據、和許多潛在功能的複雜系統來說,卻是必須的。
降維可以被用來協助過濾掉不必要的特徵。不過就像聚類一樣,它通常只是某個更為複雜的模型中的子任務。在網絡安全方面,降維常被 iPhone 之類的設備用在人臉識別的整體方案中。
機器學習的降維:
- 主成分分析(PCA)
- 奇異值分解(SVD)
- T-分佈領域嵌入算法(T-SNE)
- 線性判別分析(LDA)
- 潛在語義分析(LSA)
- 因子分析(FA)
- 獨立成分分析(ICA)
- 非負矩陣分解(NMF)
您可以通過以下鏈接瞭解到更多有關降維的知識:
https://arxiv.org/pdf/1403.2877.pdf
生成模型
上面提到的方法是根據已有信息做出決策,而生成模型則是基於過往的決策,來模擬出真實的數據。
在網絡安全方面,它通過生成一個帶有輸入參數的列表,來測試特定應用的各種注入類型的漏洞。
另外 Web 應用的漏洞掃描工具,可以用它來測試未經授權的訪問,其原理是:通過變異的文件名來識別出新的文件。
例如,生成模型中的“爬蟲”在檢測到名為 login.php 的文件後,就會在任何可能的備份和副本中,查找類似的文件名,如:login_1.php、login_backup.php 或 login.php.2017。
機器學習的生成模型:
- 馬爾可夫鏈(Markov Chains)
- 各種遺傳算法
深度學習的生成模型:
- 變分自動編碼
- 生成對抗網絡(GANs)
- 玻爾茲曼機
網絡安全的需求和機器學習
上面我們是從機器學習方法的角度出發,討論了可應用到網絡安全中的不同場景。
現在讓我們從常見的網絡安全需求出發,從 Why、What 和 How 三個層面來探討使用機器學習的機會。
第一個層面:對應的是 Why,即目標或需求(如:檢測威脅和預測攻擊等)。
根據 Gartner 的 PPDR(Policy Protection Detection Response)模型,所有的安全需求都可分為五大類:
- 預測
- 防禦
- 檢測
- 響應
- 監控
第二個層面:用技術來回答“What”的問題(如:在哪個方面監控問題)。
大致包括如下方面:
- 網絡(網絡流量分析和入侵檢測)
- 終端(反惡意軟件)
- 應用(Web 應用防火牆或數據庫防火牆)
- 用戶(用戶行為分析)
- 流程(反欺詐)
上述每個層面都有不同的子類。例如:網絡安全可以包括有線、無線或雲端環境。注意:根據不同的數據依賴性,最好不要跨層面地使用相同的算法。
第三個層面:應對的是“How”的問題(例如,如何檢查某個特定區域的安全)。
大致包括如下方面:
- 實時流量
- 靜態數據
- 歷史記錄
就終端保護而言,您可以按照入侵檢測的思想,監控某個可執行文件的各個進程,採用靜態的二進制分析,並對目標終端的歷史行為進行深度解析。
顯然,我們在此不可能面面俱到,下面就讓我們從技術層面這個角度來探討網絡安全的各種解決方案。
網絡防禦中的機器學習
網絡防禦涉及到諸如以太網、無線、SCADA(Supervisory Control And Data Acquisition,數據採集與監視控制系統)和虛擬網絡等方面的解決方案。
在網絡防禦中,最著名的當屬入侵檢測系統(IDS)了。雖然它們大多數是基於簽名方法的,但是近年來也一直嘗試著採用機器學習來提高檢測的準確度。
那麼機器學習中網絡安全中的一種應用就是:網絡流量分析(NTA)。它通過對每個層面的網絡流量進行深度分析,以發現各種攻擊和異常。
下面是具體的應用示例:
- 通過迴歸算法,來預測網絡包的各項參數,並將它們與正常的流量做比較。
- 通過分類算法,來識別諸如掃描、欺騙等不同類型的網絡攻擊。
- 通過聚類算法,來進行取證分析。
您可以通過如下 10 篇學術文章來做進一步的瞭解:
- 入侵檢測中的機器學習技術
https://arxiv.org/abs/1312.2177v2
- 在時序中運用長短時記憶網絡進行異常檢測
https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-56.pdf
- 通過規則提取的異常檢測框架實現高效的入侵檢測
https://arxiv.org/abs/1410.7709v1
- 網絡異常檢測技術綜述
https://www.gta.ufrj.br/~alvarenga/files/CPE826/Ahmed2016-Survey.pdf
- 深入淺出地對網絡入侵檢測系統進行分類與調研
https://arxiv.org/abs/1701.02145v1
- 深度數據包:一種使用深度學習分類加密流量的新方法
https://arxiv.org/abs/1709.02656v3
- 入侵檢測系統和 Snort 系統中機器學習在應用中的性能比較
https://arxiv.org/pdf/1710.04843v2.pdf
- 在入侵檢測系統中對機器學習算法的評估
https://arxiv.org/pdf/1801.02330v1.pdf
- 基於 LSTM 的類聚集式異常檢測
https://arxiv.org/pdf/1802.00324.pdf
- 使用循環神經網絡的流量異常檢測
https://arxiv.org/abs/1803.10769v1
- 在計算機網絡流量中使用序列聚集規則進行異常檢測
https://arxiv.org/pdf/1805.03735v2.pdf
- IDS 方法大集合
https://arxiv.org/pdf/1806.03517v1.pdf
終端保護中的機器學習
新一代的反病毒軟件是終端檢測和響應(Endpoint Detection And Response),它更適合於學習各種可執行文件及其內部進程中的行為特徵。
在使用機器學習來應對終端層面上的安全問題時,您的具體方案應根據終端的差異性而有所不同。
總的來說,對於工作站、服務器、容器、雲實例、移動端、PLC(可編程邏輯控制器)和物聯網設備等類型的終端而言,雖然它們各自的具體情況不盡相同,但是我們在方法上可以總結出如下的共性:
- 通過迴歸算法,來為可執行程序,預測下一次的系統調用,並將其與真實的進程做特徵比較。
- 通過分類算法,將軟件應用劃分為惡意軟件、間諜軟件和勒索軟件等類型。
- 通過聚類算法,保護郵件網關免受惡意軟件的攻擊,如過濾掉非法的附件。
您可以通過如下 3 篇學術文章來進一步瞭解終端保護和惡意軟件:
- 惡意軟件檢測之:吃透可執行文件
https://arxiv.org/pdf/1710.09435v1.pdf
- 淺談運用深度學習進行惡意軟件分類
https://arxiv.org/abs/1807.08265v1
- 跨時間與空間維度消除惡意軟件分類中的實驗偏差
https://arxiv.org/abs/1807.07838v1
應用安全中的機器學習
應用安全不僅僅是 Web 應用防火牆和代碼分析,還涉及到數據庫、ERP 系統、SaaS 應用、和微服務等靜態與動態方面。
因此,我們無法通過建立一個通用的機器學習模型,來有效地應對所有方面的威脅。
下面讓我們試著通過幾個典型場景,來討論如何將機器學習運用到應用安全之中:
- 通過迴歸算法,檢測各種異常的 HTTP 請求,如:XML 外部實體(XXE)攻擊、服務器端請求偽造(SSRF)攻擊和認證旁路(auth bypass)等。
- 通過分類算法,檢測已知類型的注入攻擊,如:SQLi、跨站腳本攻擊(XSS)和遠程命令執行(RCE)等。
- 通過聚類算法,檢測用戶的活動,以發現 DDoS 攻擊和大規模的漏洞利用。
您可以通過如下 3 篇學術文章來做進一步的瞭解:
- Web 攻擊中的自適應檢測惡意查詢
https://arxiv.org/pdf/1701.07774.pdf
- 採用 JavaScript 和 VBScript 研究惡意腳本的神經分類
https://arxiv.org/abs/1805.05603v1
- URLNet:深度學習 URL 的變形模式,檢測惡意網址
https://arxiv.org/abs/1802.03162v2
用戶行為中的機器學習
該領域的最早應用案例是:安全信息和事件管理(SIEM)。通過恰當的配置,SIEM 能夠憑藉對用戶行為的搜索和機器學習,來實現日誌的關聯與分析。
不過用戶和實體行為分析(UEBA)理論則認為 SIEM 無法真正處理更新的、更先進的攻擊類型,以及持續的用戶行為改變。
UEBA 工具需要監控的用戶類型包括:域用戶、應用程序用戶、SaaS 用戶、社交網絡用戶和即時通信用戶等。
不同於惡意軟件檢測的僅根據常見的攻擊,訓練分類器的概率;用戶行為是一個更為複雜的層面,並會涉及到無監督學習。
由於此類數據集既未被標記,又沒有清晰的查找方向;因此我們同樣無法為所有用戶的行為,創建統一的算法。
以下是各個公司通常用到的機器學習方法:
- 通過迴歸算法,來檢測用戶的異常行為,如:在非常規時間登錄系統。
- 通過分類算法,對不同類型的用戶採取組內特徵分析。
- 通過聚類算法,將違規的用戶從他們組中檢測和分離出來。
您可以通過如下 2 篇學術文章來做進一步的瞭解:
- 通過企業案例,探究使用擴展式隔離森林算法檢測異常用戶行為
https://arxiv.org/abs/1609.06676
- 在結構化的網絡安全數據流中,通過深度學習實現無監督式內部威脅檢測
https://arxiv.org/abs/1710.00811
流程行為中的機器學習
不同企業的業務流程可能存在著巨大的差異,我們對於銀行、零售系統、和製造業中,各種欺詐行為的檢查也會有所不同。
因此,只有具備一定的行業背景知識,我們才能在機器學習的功能建模和算法的選擇上,更具有流程行為的針對性。
下面是被運用到工業控制系統(ICS)和數據採集與監視控制系統(SCADA)領域的通用方法:
- 通過迴歸算法,預測用戶的未來行為,並檢測出諸如信用卡欺詐之類的異常活動。
- 通過分類算法,檢測已知類型的欺詐。
- 通過聚類算法,從正常業務流程中分揀出異常進程。
您可以通過如下 3 篇學術文章來做進一步的瞭解:
- 自編碼器式欺詐
https://shiring.github.io/machine_learning/2017/05/01/fraud
- 信用卡詐騙檢測技術綜述之:數據和技術
https://arxiv.org/abs/1611.06439v1
- 異常檢測、工業控制系統與卷積神經網絡
https://arxiv.org/abs/1806.08110v1
有關機器學習的網絡安全叢書
當然,如果您想了解更多關於網絡安全中的機器學習,還可以參閱如下書籍:
①《網絡安全中的AI》(2017)--Cylance 出版
簡介:本書不厚,卻能很好地介紹網絡安全中的機器學習基礎知識,同時配有各種實踐案例。
鏈接:
https://pages.cylance.com/en-us-introduction-to-ai-book.html?_ga=2.89683291.1595385041.1538052662-139740503.1538052662
②《機器學習和安全》(2018/01)-- O'Reilly 出版
簡介:迄今為止,該領域的最好書籍,機器學習的示例較多,深度學習的範例偏少。
鏈接:
http://shop.oreilly.com/product/0636920065555.do
③《滲透測試中的機器學習》(2018/07)-- Packt 出版
簡介:知識難度上較前兩本有所拔高,提供更多深度學習的方法。
鏈接:
https://www.packtpub.com/networking-and-servers/mastering-machine-learning-penetration-testing
④《惡意軟件的數據科學:攻擊檢測和屬性》(2018/09)
簡介:本書聚焦於惡意軟件。由於它是新近出版,故尚無評論,但必將成為終端保護團隊的必備書籍。
鏈接:
https://nostarch.com/malwaredatascience
結論
本文上述討論的只是機器學習在網絡安全領域應用的冰山一角。隨著企業數據量的增多、系統的複雜化以及深度學習應用的不斷改進,我們需要不斷地通過實踐,讓安全防禦變得越來越智能。
當然,道高一尺魔高一丈,黑客們也在各個角落裡通過機器學習,努力提升他們的攻擊能力。
閱讀更多 51CTO傳媒 的文章