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