如何利用深度學習檢測惡意PowerShell

這篇文章主要介紹如何利用深度學習檢測惡意PowerShell,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)"三網合一"的企業(yè)建站思路。企業(yè)可建設擁有電腦版、微信版、手機版的企業(yè)網站。實現跨屏營銷,產品發(fā)布一步更新,電腦網絡+移動網絡一網打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的網站設計制作、網站建設項目的能力。經過10余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質的服務,并獲得了客戶的一致好評。

深度學習(deep learning)是機器學習大框架下的一類算法,在圖像和文本分類等任務上,深度學習方法明顯優(yōu)于傳統(tǒng)方法。隨著發(fā)展,利用深度學習建立新的威脅檢測方法具有很大的潛力。

機器學習算法使用數字模型,因此圖像、文檔或電子郵件等對象通過特征工程的步驟轉換為數字形式,在傳統(tǒng)的機器學習方法中,這需要大量的人力。通過深度學習,算法可以在相對原始的數據上進行操作,無需人工干預即可提取特征。

在本文中,我們提供了一個深度學習技術的示例,該技術最初是為自然語言處理(NLP)開發(fā)的,現在被采用并應用于檢測惡意powershell腳本。

自然語言處理中的詞嵌入模型

我們的目標是對powershell腳本進行分類,我們簡要介紹在自然語言處理領域中如何處理文本分類。

一個重要的步驟是將單詞轉換成機器學習算法可以使用的向量(數字元組)。首先為詞匯表中的每個單詞指定一個唯一的整數,然后將每個單詞表示為0的向量,其中1位于對應于該單詞的整數索引處。盡管在許多情況下都很有用,但有明顯的缺陷。所有的詞之間都是等距的,詞與詞之間的語義關系并沒有反映在對應向量之間的幾何關系中。

上下文嵌入模型是一種較新的方法,它通過從數據中學習單詞的上下文關系來克服這些限制。上下文嵌入模型是在像維基百科這樣的大型文本數據集上訓練的。word2vec算法是該技術的一個實現,它不僅能將詞的語義相似度轉化為向量的幾何相似度,而且能保持詞之間的極性關系。例如,在word2vec表示中:

如何利用深度學習檢測惡意PowerShell

嵌入powershell腳本

由于訓練一個好的模型需要大量的數據,我們使用了一個由386k個不同的未標記powershell腳本組成的大型多樣的語料庫。word2vec算法通常與人類語言一起使用,當應用于powershell語言時,它提供了類似的結果。我們將powershell腳本拆分為令牌,然后使用word2vec算法為每個令牌分配一個矢量表示。

圖1顯示了5000個隨機選擇的令牌的矢量表示的二維可視化,其中一些重要令牌高亮顯示。注意語義相似的標記是放置在彼此附近的。例如,表示-eq、-ne和-gt的向量(在powershell中分別是“equal”、“not equal”和“greater than”的別名)聚集在一起。類似地,表示allsigned、remotesigned、bypass和unrestricted令牌的向量(它們都是powershell中執(zhí)行策略設置的有效值)被聚集在一起。

如何利用深度學習檢測惡意PowerShell

通過檢查標記的向量,我們發(fā)現了一些其他關系。

令牌相似性:使用令牌的word2vec表示,我們可以識別powershell中具有別名的命令。在許多情況下,最接近給定命令的標記是其別名。例如,令牌調用表達式Invoke-Expression及其別名IEX的表示形式彼此最接近。這種現象的另外兩個例子是invoke webrequest及其別名iwr,以及get childitem命令及其別名gci。

我們還測量了幾組標記之間的距離。例如,考慮四個標記$i、$j、$k和$true(請參見圖2的右側)。前三個通常用于表示數值變量,最后一個表示布爾常量。正如預期的那樣,$ true令牌與其他令牌不匹配 ,它是距離群組中心最遠的(使用歐幾里德距離)。

更具體地說,對于網絡安全中powershell的語義,我們檢查了令牌的表示:繞過、正常、最小化、最大化和隱藏(參見圖2的左側)。雖然第一個標記是powershell中executionpolicy標志的合法值,但其余是windowstyle標志的合法值。正如預期的那樣,bypass矢量表示距離相比其他四個標記的矢量的距離更遠。

如何利用深度學習檢測惡意PowerShell

線性關系:由于word2vec保留線性關系,所以計算向量表示的線性組合會得到語義上有意義的結果。以下是我們發(fā)現的一些關系:

如何利用深度學習檢測惡意PowerShell

在上述每個表達式中,符號≈表示右側的矢量與作為左側計算結果的矢量最接近(在表示詞匯表令牌的所有矢量中)。

利用深度學習檢測惡意powershell腳本

我們使用前一節(jié)介紹的powershell語言的word2vec嵌入模型來訓練能夠檢測惡意powershell腳本的深入學習模型。

分類模型使用標記為“clean”或“malicious”的powershell腳本數據集進行訓練和驗證,而嵌入模型則使用未標記的數據進行訓練。流程如圖3所示。

如何利用深度學習檢測惡意PowerShell

在Microsoft Azure中使用GPU計算,我們嘗試了各種深度學習和傳統(tǒng)ML模型。 與傳統(tǒng)ML模型相比,性能最佳的深度學習模型將覆蓋范圍提高了22個百分點。 該模型如圖4所示,結合了幾個深度學習構建模塊,如卷積神經網絡(CNN)和長短期記憶遞歸神經網絡(LSTM-RNN)。

如何利用深度學習檢測惡意PowerShell

應用深度學習來檢測惡意PowerShell

自首次部署以來,深度學習模型高精度地檢測到許多惡意和紅色團隊PowerShell活動。 通過PowerShell獲得的信號與各種ML模型和Microsoft Defender ATP信號相結合,可以檢測網絡攻擊。

以下是深度學習可以檢測但對其他檢測方法具有一定困難的惡意PowerShell腳本的示例:

如何利用深度學習檢測惡意PowerShell

以上是“如何利用深度學習檢測惡意PowerShell”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標題:如何利用深度學習檢測惡意PowerShell
標題網址:http://muchs.cn/article20/gcesco.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、App開發(fā)、網站設計、外貿網站建設、網站設計公司、企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設