當前位置:
首頁 > 最新 > EDR軟體如何使用機器學習的方法檢測惡意軟體

EDR軟體如何使用機器學習的方法檢測惡意軟體

1、惡意軟體檢測的基本方法

高效,強大且可擴展的惡意軟體識別模塊是每個網路安全產品的關鍵組成部分。 惡意軟體識別模塊根據它們在其上收集的數據來確定對象是否是威脅。 可以在不同階段收集這些數據:

·預執行階段,是您可以在不執行文件的情況下判斷文件的任何內容。 這可以包括可執行文件格式描述,代碼描述,二進位數據統計,文本串和通過代碼模擬提取的信息以及其他類似數據

·執行後階段,數據傳達有關係統中的過程活動引起的行為或事件的信息

在網路時代的早期階段,惡意軟體威脅的數量相對較低,簡單的手工製作預執行規則通常足以檢測威脅。 但伴隨著時間的推移,惡意軟體流的巨大增長不允許反惡意軟體解決方案僅依賴昂貴的手動創建檢測規則。

AV-TEST 2017~2018年,最近10年的惡意軟體數量

反惡意軟體公司很自然地開始使用機器學習來增強其惡意軟體檢測和分類,這是一個在圖像識別,搜索和決策方面取得巨大成功的計算機科學領域。 今天,機器學習使用主機,網路和基於雲的反惡意軟體組件上的各種數據來增強惡意軟體檢測。

2、機器學習

機器學習演算法發現並形式化了它所看到的數據的基礎原理。 有了這些知識,演算法就可以推算出以前看不見的樣本的屬性。 在惡意軟體檢測中,以前看不見的樣本可能是一個新文件。 它的隱藏屬性可能是惡意軟體或良性。 數據屬性的數學形式化原則集稱為模型。

無人監督的學習

一種機器學習方法是無監督學習。 在此設置中,我們只給出一個沒有正確答案的數據集。 目標是發現數據結構或數據生成規律。 一個重要的例子是聚類。 群集是一項包括拆分的任務將數據集合成類似對象的組。 另一項任務是表示學習 - 這包括基於對象的低級描述(例如,自動編碼器模型)為對象構建信息性特徵集。

網路安全供應商可以使用大量未標記的數據集和成本他們的專家手動標籤很高 - 這使得無監督學習對於威脅檢測很有價值。 聚類可以幫助優化手動標記新樣品的工作量。 通過信息嵌入,我們可以減少在我們的管道中使用下一個機器學習方法所需的標記對象的數量:監督學習

監督學習

監督學習是在每個對象的數據和正確答案都可用時使用的設置。 目標是使模型適合為新對象產生正確答案。

監督學習包括兩個階段:

·訓練模型並將模型擬合到可用的訓練數據。

·將訓練後的模型應用於新樣本並獲得預測。

任務:

·我們獲得了一組對象

·每個對象都用特徵集X表示

·每個對象都映射到正確答案或標記為Y.

在訓練階段使用該訓練信息,此時我們搜索最佳模型,該模型將為給定特徵集X"的先前未見過的對象產生正確的標籤Y"。

在惡意軟體檢測的情況下,X可以是文件內容或行為的一些特徵,例如,文件統計和使用的API函數的列表。 標籤Y可能是「惡意軟體」或「良性」,甚至是更細粒度的分類,例如病毒,特洛伊木馬 - 下載程序或廣告軟體。

在「訓練」階段,我們需要選擇一些模型族,例如神經網路或決策樹。 通常,系列中的每個模型都由其參數決定。 訓練意味著我們使用一組特定參數從所選族中搜索模型,該參數根據某個度量為列車對象提供最準確的答案。 換句話說,我們「學習」定義從X到Y的有效映射的最佳參數。

在我們訓練模型並驗證其質量後,我們已準備好進行下一階段 - 將模型應用於新對象。 在此階段,模型的類型及其參數不會更改。 該模型僅產生預測。在惡意軟體檢測的情況下,這是保護階段。 供應商通常會向用戶提供經過培訓的模型,產品會根據模型預測自主決策。 錯誤可能會給用戶帶來毀滅性後果 - 例如,刪除操作系統驅動程序。 供應商正確選擇模型系列至關重要。 供應商必須使用有效的培訓程序來找到具有高檢測率和低誤報率的模型。

深度學習

深度學習是一種特殊的機器學習方法,有助於從低級數據中提取高級抽象的功能。 深度學習在計算機視覺,語音識別,自然語言處理和其他任務。 當您希望機器從低級數據推斷出高級含義時,它最有效。 對於像ImageNet這樣的圖像識別挑戰,基於深度學習的方法已經超越了人類

網路安全供應商嘗試應用深度學習來識別低級數據中的惡意軟體是很自然的。 深度學習模型可以學習複雜的特徵層次結構,並將惡意軟體檢測管道的各個步驟合併到一個可以端到端訓練的實體模型中,以便同時學習模型的所有組件。

3、機器學習在網路安全中的應用

要求有龐大的具有代表性數據集

重要的是要強調這種方法的數據驅動特性。 創建的模型在很大程度上取決於它在訓練階段看到的數據,以確定哪些特徵在統計上與預測正確的標籤相關。 我們將解釋為什麼製作具有代表性的數據集如此重要。 想像一下,我們收集了一套訓練集,而且我們忽略了這樣一個事實:偶爾所有大於10 MB的文件都是惡意軟體而不是良性文件,對於真實世界文件來說肯定不是這樣。 在訓練時,模型將利用數據集的此屬性,並將了解任何大於10 MB的文件都是惡意軟體。 它將使用此屬性進行檢測。 當此模型應用於現實世界數據時,會產生許多誤報。 為了防止這種結果,我們需要將更大尺寸的良性文件添加到訓練集中。 然後,該模型將不依賴於錯誤的數據集屬性。

概括一下,我們必須在一個數據集上訓練我們的模型,該數據集正確地表示模型在現實世界中的工作條件。 這使得收集代表性數據集的任務對於機器學習至關重要。

訓練的模型必須是可以解釋的

現在使用的大多數模型系列,如深度神經網路,被稱為黑盒模型。 黑盒模型被賦予輸入X,它們將通過難以解釋的複雜操作序列產生Y. 一個人。 這可能會在現實應用中造成問題。 例如,當發生誤報時,我們想了解它為什麼會發生,我們會問:訓練集或模型本身有問題嗎? 模型的可解釋性決定了我們管理它,評估其質量和糾正其操作的容易程度。

誤報率必須足夠低

當演算法錯誤地將惡意標籤用於良性文件時,會出現誤報。 我們的目標是使誤報率儘可能低,或「零」。這對於機器學習應用來說是不典型的。 這很重要,因為即使一百萬個良性文件中的一個誤報也會給用戶帶來嚴重後果。 由於世界上有很多乾淨的文件,它們不斷出現,這很複雜。 為了解決這個問題,重要的是對機器學習模型和將在培訓期間優化的指標提出高要求,明確關注低誤報率(FPR)模型。

模型多樣化

這仍然是不夠的,因為之前看不到的新的良性文件有時可能被錯誤地檢測到。 我們將此考慮在內並實施靈活的模型設計,使我們能夠即時修復誤報,而無需對模型進行完全重新訓練。 這方面的示例在我們的執行前和執行後模型中實現,這些模型將在以下部分中介紹。

演算法必須快速適應惡意軟體編寫者的對抗行為

在惡意軟體檢測域之外,機器學習演算法在固定數據分布的假設下定期工作,這意味著它不會隨時間變化。 當我們有足夠大的訓練集時,我們可以訓練模型,以便有效地推理測試集中的任何新樣本。 隨著時間的推移,模型將繼續按預期工作,在將機器學習應用於惡意軟體檢測之後,我們必須面對這樣一個事實,即我們的數據分布不是固定的:

·主動攻擊者(惡意軟體編寫者)不斷致力於避免檢測和發布新版本的惡意軟體文件,這些文件與在培訓階段看到的版本大不相同。

·成千上萬的軟體公司生產新型的良性可執行文件,這些可執行文件與以前已知的類型有很大不同。 關於這些類型的數據在訓練集中缺乏,但該模型需要將其識別為良性。

這導致數據分布的嚴重變化,並且在任何機器學習實現中引起檢測率隨時間降低的問題。 在反惡意軟體解決方案中實施機器學習的網路安全供應商面臨著這個問題,需要克服它。 該架構需要靈活,並且必須允許在再培訓之間「即時」進行模型更新。 供應商還必須擁有有效的流程來收集和標記新樣本,豐富培訓數據集並定期重新培訓模型。根據數據驗證,在一個月以後模型的準確率降低到65%

4、我們的方法

使用相似性散列檢測預執行中的新惡意軟體

在反病毒行業興起之際,計算機上的惡意軟體檢測基於啟發式功能,通過以下方式識別特定惡意軟體文件:

·代碼片段

·哈希的代碼片段或整個文件

·文件屬性

·以及這些功能的組合。

主要目標是創建一個可靠的指紋 - 一系列功能 - 可以快速檢查的惡意文件。 此前,此工作流程需要手動創建檢測規則,方法是仔細選擇代表性的位元組序列或發送惡意軟體的其他功能。 在檢測期間,產品中的抗病毒引擎檢查文件中是否存在惡意軟體指紋,以防止存儲在防病毒資料庫中的已知惡意軟體指紋。但是,惡意軟體編寫者發明了伺服器端多態等技術。 這導致每天發現數十萬個惡意樣本。 同時,使用的指紋對文件中的微小變化很敏感。 現有惡意軟體的微小變化使其無法發揮作用。 之前的方法很快變得無效,因為:

·手動創建檢測規則無法跟上新出現的惡意軟體流程。

·針對已知惡意軟體庫檢查每個文件的指紋意味著在分析人員手動創建檢測規則之前,您無法檢測到新的惡意軟體。

我們對能夠抵禦文件中的小變化的功能感興趣。 這些功能可以檢測惡意軟體的新修改,但不需要更多資源進行計算。 性能和可伸縮性是反惡意軟體引擎處理的第一階段的關鍵優先順序。

為了解決這個問題,我們專註於提取可能的功能:

·快速計算,例如從文件位元組內容或代碼反彙編得到的統計信息,

·直接從可執行文件的結構中檢索,如文件格式描述。

深度學習對抗罕見的攻擊

通常,當在訓練集中多次表示惡意和良性樣本時,機器學習面臨任務。 但是有些攻擊非常罕見,我們只有一個用於培訓的惡意軟體示例。 這是高調目標攻擊的典型特徵。 在這種情況下,我們使用非常特定的基於深度學習的模型架構。 我們將此方法稱為示例網路(ExNet)

這裡的想法是我們訓練模型以構建輸入特徵的緊湊表示。 然後我們使用它們來同時訓練多個每個示例分類器 - 這些是檢測特定類型惡意軟體的演算法。 深度學習允許我們將這些多個步驟(對象特徵提取,緊湊特徵表示和本地或每個示例,模型創建)組合到一個神經網路管道中,該管道為各種類型的惡意軟體提煉出辨別特徵。 該模型可以有效地概括有關單個惡意軟體樣本和大量乾淨樣本的知識。 然後,它可以檢測相應惡意軟體的新修改。

深度學習檢測行為

在執行前階段的靜態分析具有許多顯著優點。 主要優點是對用戶來說是安全的。 可以在開始對真實用戶的計算機執行操作之前檢測對象。 但它面臨著高級加密,混淆技術以及各種高級腳本語言,容器和無文件攻擊場景的使用問題。 這些是執行後行為檢測發揮作用的情況。

我們還使用深度學習方法來解決行為檢測的任務。 在執行後階段,我們正在處理威脅行為引擎提供的行為日誌。 行為日誌是在流程執行期間發生的系統事件序列,以及相應的參數。 為了檢測觀察到的日誌數據中的惡意活動,我們的模型將獲得的事件序列壓縮為一組二進位向量。 然後,它訓練深度神經網路來區分乾淨和惡意日誌。

1、日誌轉換為二分行為圖。該圖包含兩種類型的頂點:事件和參數。 在每個事件和參數之間繪製邊緣,它們一起出現在日誌中的同一行中。 這種圖表表示比初始原始數據緊湊得多。 它對通過跟蹤相同多處理程序的不同運行或分析過程的行為混淆所導致的任何線條排列保持穩健。

2、之後,我們會自動從此圖中提取特定的子圖或行為模式。 每個模式包含與過程的特定活動相關的事件子集和相鄰參數,例如網路通信,文件系統探索,系統寄存器的修改等。

3、我們將每個「行為模式」壓縮為稀疏二進位向量。此向量的每個組件負責在模板中包含特定事件或參數的標記(與Web,文件和其他類型的活動相關)。

4、訓練的深度神經網路將行為模式的稀疏二進位向量轉換為稱為模式嵌入的緊湊表示。 然後通過採用元素最大值將它們組合成單個向量或對數嵌入。

5、最後,基於日誌嵌入,網路預測日誌的可疑性。

所使用的神經網路的主要特徵是所有權重的正面性和所有激活函數的單調性質。 這些屬性為我們提供了許多重要的優勢:

·我們的模型的懷疑分數輸出僅在從日誌處理新行時隨時間增長。 因此,惡意軟體無法通過與其主要負載並行執行額外雜訊或「乾淨」活動來逃避檢測。

·由於模型的輸出在時間上是穩定的,因此我們可能會受到保護,以防止在掃描乾淨日誌時預測的波動引起的最終誤報。

·在單調空間中處理日誌樣本使我們能夠自動選擇導致檢測的事件並更方便地管理錯誤警報。

這樣的方法使我們能夠訓練能夠使用高級可解釋行為概念進行操作的深度學習模型。 這種方法可·安全地應用於整個用戶環境的多樣性,並在其體系結構中包含虛假警報修復功能。 總而言之,所有這一切為我們提供了行為檢測最複雜的現代威脅的有力手段。

5、在雲端基礎架構中的應用

聚類傳入的惡意軟體樣本

每天有數十萬個樣本進入公有雲以及手動注釋新類型樣本的高成本,減少分析師需要查看的數據量成為一項至關重要的任務。 使用高效的聚類演算法,我們可以從難以忍受的單獨的未知文件數量轉換為合理數量的對象組。 這些對象組的一部分將根據其中已注釋的對象的存在自動處理。

所有最近收到的傳入文件都通過我們的實驗室內惡意軟體檢測技術進行分析,包括執行前和執行後。 我們的目標是儘可能多地標記對象,但某些對象仍然是未分類的。 我們想要標記它們。 為此,所有對象(包括標記的對象)都由多個特徵提取器處理。 然後,它們通過幾種聚類演算法(例如K-means和dbscan)一起傳遞,具體取決於文件類型。 這會產生類似對象的組。

此時,我們面臨四種不同類型的帶有未知文件的結果集群:

1)包含惡意軟體和未知文件的集群;

2)包含乾淨和未知文件的集群;

3)包含惡意軟體,乾淨和未知文件的集群

4)僅包含未知文件的集群。

對於類型1-3的聚類中的對象,我們使用其他機器學習演算法(如置信傳播)來驗證未知樣本與分類樣本的相似性。 在某些情況下,即使在類型3的集群中,這也是有效的。這允許我們自動標記未知文件,僅為人類留下類型4和部分類型3的集群。 這導致每天所需的人類注釋急劇減少。

蒸餾檢測手段

我們在實驗室中檢測惡意軟體的方式與針對用戶產品的最佳演算法不同。 一些最強大的分類模型需要大量資源,如CPU / GPU時間和內存,以及昂貴的功能提取器。

在實驗室中保持和運行那些「重型」模型更有效。 一旦我們知道某個特定文件是惡意軟體,我們就會使用從模型中獲得的知識來訓練一些可以在我們的產品中使用的輕量級分類器。

訓練過程:

良性樣本/惡意樣本 -> 耗時的原始數據提取(sandbox logs/disassembler log )-> 訓練->大規模預測模型

升級檢測過程:

未知樣本->使用大規模預測模型->判斷出良性/惡意樣本-> 輕量級功能提取(文件結構,內容統計,API等)->訓練輕量模型

1.在我們的實驗室中,我們首先從標記文件中提取一些耗時的功能,並在其上訓練「重型」實驗室模型。

2.我們採用一組未知文件,並使用我們的「重型」實驗室模型來標記它們。

3.然後,我們使用新標記的文件來增加訓練集輕量級分類模型。

4.我們為用戶產品提供輕量級模型。

通過蒸餾流程,我們可以有效地向用戶輸出有關新的和未知威脅的知識。

6、總結

擁有正確的數據。這是機器學習的動力。數據必須具有代表性,與當前惡意軟體格局相關,並在需要時正確標記。我們成為了提取和準備數據以及訓練演算法的專家。我們用數十億個文件樣本進行了充分的收集,以促進機器學習。

了解理論機器學習以及如何將其應用於網路安全。我們了解機器學習的總體運作方式,並了解該領域出現的最先進的方法。另一方面,我們也是網路安全方面的專家,我們預見到每種創新理論方法對網路安全實踐的價值。

了解用戶的實際需求,並成為將機器學習應用於幫助用戶滿足其需求的產品的專家。我們有效,安全地進行機器學習。我們構建了主要由網路安全市場所需的創新解決方案。

獲得足夠的用戶群。這引入了「眾包」對檢測質量的影響,並為我們提供了反饋,如果我們對或錯,我們自己要知道。

保持檢測方法的多層次協同作用。只要今天的高級威脅攻擊載體非常多樣化,網路安全解決方案就應該在多個層面提供保護。在我們的產品中,基於機器學習的檢測與現代網路安全保護的多層次控制中的其他檢測協同工作。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

2013諾獎得主Michael Levitt:機器學習關鍵在歸納數據
突破標準量子極限 「量子比特+機器學習」可精準測磁場

TAG:機器學習 |