這篇文章主要介紹如何利用深度學(xué)習(xí)檢測(cè)惡意PowerShell,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營(yíng)銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營(yíng)銷需求!創(chuàng)新互聯(lián)具備承接各種類型的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)項(xiàng)目的能力。經(jīng)過10余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。
深度學(xué)習(xí)(deep learning)是機(jī)器學(xué)習(xí)大框架下的一類算法,在圖像和文本分類等任務(wù)上,深度學(xué)習(xí)方法明顯優(yōu)于傳統(tǒng)方法。隨著發(fā)展,利用深度學(xué)習(xí)建立新的威脅檢測(cè)方法具有很大的潛力。
機(jī)器學(xué)習(xí)算法使用數(shù)字模型,因此圖像、文檔或電子郵件等對(duì)象通過特征工程的步驟轉(zhuǎn)換為數(shù)字形式,在傳統(tǒng)的機(jī)器學(xué)習(xí)方法中,這需要大量的人力。通過深度學(xué)習(xí),算法可以在相對(duì)原始的數(shù)據(jù)上進(jìn)行操作,無(wú)需人工干預(yù)即可提取特征。
在本文中,我們提供了一個(gè)深度學(xué)習(xí)技術(shù)的示例,該技術(shù)最初是為自然語(yǔ)言處理(NLP)開發(fā)的,現(xiàn)在被采用并應(yīng)用于檢測(cè)惡意powershell腳本。
我們的目標(biāo)是對(duì)powershell腳本進(jìn)行分類,我們簡(jiǎn)要介紹在自然語(yǔ)言處理領(lǐng)域中如何處理文本分類。
一個(gè)重要的步驟是將單詞轉(zhuǎn)換成機(jī)器學(xué)習(xí)算法可以使用的向量(數(shù)字元組)。首先為詞匯表中的每個(gè)單詞指定一個(gè)唯一的整數(shù),然后將每個(gè)單詞表示為0的向量,其中1位于對(duì)應(yīng)于該單詞的整數(shù)索引處。盡管在許多情況下都很有用,但有明顯的缺陷。所有的詞之間都是等距的,詞與詞之間的語(yǔ)義關(guān)系并沒有反映在對(duì)應(yīng)向量之間的幾何關(guān)系中。
上下文嵌入模型是一種較新的方法,它通過從數(shù)據(jù)中學(xué)習(xí)單詞的上下文關(guān)系來(lái)克服這些限制。上下文嵌入模型是在像維基百科這樣的大型文本數(shù)據(jù)集上訓(xùn)練的。word2vec算法是該技術(shù)的一個(gè)實(shí)現(xiàn),它不僅能將詞的語(yǔ)義相似度轉(zhuǎn)化為向量的幾何相似度,而且能保持詞之間的極性關(guān)系。例如,在word2vec表示中:
由于訓(xùn)練一個(gè)好的模型需要大量的數(shù)據(jù),我們使用了一個(gè)由386k個(gè)不同的未標(biāo)記powershell腳本組成的大型多樣的語(yǔ)料庫(kù)。word2vec算法通常與人類語(yǔ)言一起使用,當(dāng)應(yīng)用于powershell語(yǔ)言時(shí),它提供了類似的結(jié)果。我們將powershell腳本拆分為令牌,然后使用word2vec算法為每個(gè)令牌分配一個(gè)矢量表示。
圖1顯示了5000個(gè)隨機(jī)選擇的令牌的矢量表示的二維可視化,其中一些重要令牌高亮顯示。注意語(yǔ)義相似的標(biāo)記是放置在彼此附近的。例如,表示-eq、-ne和-gt的向量(在powershell中分別是“equal”、“not equal”和“greater than”的別名)聚集在一起。類似地,表示allsigned、remotesigned、bypass和unrestricted令牌的向量(它們都是powershell中執(zhí)行策略設(shè)置的有效值)被聚集在一起。
通過檢查標(biāo)記的向量,我們發(fā)現(xiàn)了一些其他關(guān)系。
令牌相似性:使用令牌的word2vec表示,我們可以識(shí)別powershell中具有別名的命令。在許多情況下,最接近給定命令的標(biāo)記是其別名。例如,令牌調(diào)用表達(dá)式Invoke-Expression及其別名IEX的表示形式彼此最接近。這種現(xiàn)象的另外兩個(gè)例子是invoke webrequest及其別名iwr,以及get childitem命令及其別名gci。
我們還測(cè)量了幾組標(biāo)記之間的距離。例如,考慮四個(gè)標(biāo)記$i、$j、$k和$true(請(qǐng)參見圖2的右側(cè))。前三個(gè)通常用于表示數(shù)值變量,最后一個(gè)表示布爾常量。正如預(yù)期的那樣,$ true令牌與其他令牌不匹配 ,它是距離群組中心最遠(yuǎn)的(使用歐幾里德距離)。
更具體地說(shuō),對(duì)于網(wǎng)絡(luò)安全中powershell的語(yǔ)義,我們檢查了令牌的表示:繞過、正常、最小化、最大化和隱藏(參見圖2的左側(cè))。雖然第一個(gè)標(biāo)記是powershell中executionpolicy標(biāo)志的合法值,但其余是windowstyle標(biāo)志的合法值。正如預(yù)期的那樣,bypass矢量表示距離相比其他四個(gè)標(biāo)記的矢量的距離更遠(yuǎn)。
線性關(guān)系:由于word2vec保留線性關(guān)系,所以計(jì)算向量表示的線性組合會(huì)得到語(yǔ)義上有意義的結(jié)果。以下是我們發(fā)現(xiàn)的一些關(guān)系:
在上述每個(gè)表達(dá)式中,符號(hào)≈表示右側(cè)的矢量與作為左側(cè)計(jì)算結(jié)果的矢量最接近(在表示詞匯表令牌的所有矢量中)。
我們使用前一節(jié)介紹的powershell語(yǔ)言的word2vec嵌入模型來(lái)訓(xùn)練能夠檢測(cè)惡意powershell腳本的深入學(xué)習(xí)模型。
分類模型使用標(biāo)記為“clean”或“malicious”的powershell腳本數(shù)據(jù)集進(jìn)行訓(xùn)練和驗(yàn)證,而嵌入模型則使用未標(biāo)記的數(shù)據(jù)進(jìn)行訓(xùn)練。流程如圖3所示。
在Microsoft Azure中使用GPU計(jì)算,我們嘗試了各種深度學(xué)習(xí)和傳統(tǒng)ML模型。 與傳統(tǒng)ML模型相比,性能最佳的深度學(xué)習(xí)模型將覆蓋范圍提高了22個(gè)百分點(diǎn)。 該模型如圖4所示,結(jié)合了幾個(gè)深度學(xué)習(xí)構(gòu)建模塊,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長(zhǎng)短期記憶遞歸神經(jīng)網(wǎng)絡(luò)(LSTM-RNN)。
自首次部署以來(lái),深度學(xué)習(xí)模型高精度地檢測(cè)到許多惡意和紅色團(tuán)隊(duì)PowerShell活動(dòng)。 通過PowerShell獲得的信號(hào)與各種ML模型和Microsoft Defender ATP信號(hào)相結(jié)合,可以檢測(cè)網(wǎng)絡(luò)攻擊。
以下是深度學(xué)習(xí)可以檢測(cè)但對(duì)其他檢測(cè)方法具有一定困難的惡意PowerShell腳本的示例:
以上是“如何利用深度學(xué)習(xí)檢測(cè)惡意PowerShell”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!