分層惡意軟體偵測模型

圖片來源: 

微軟

惡意軟體日新月異,突變的速度越來越快,單純靠資安專家以人力防範惡意攻擊可能不足,微軟揭露了機器學習如何應用在自家防毒軟體Windows Defender Antivirus上,以自動化及多層機器學習架構,試圖縮小新的惡意軟體出現到被偵測的時間差。

Windows Defender Antivirus使用倒金字塔分層惡意軟體偵測模型(上圖),像濾網一層層篩出隱藏的惡意軟體,偵測模型第一層為本機端啟發式與通用型偵測,接著是元資料機器學習模型、樣本分析機器學習模型、引爆式的機器學習模型,然後到最底層的大資料分析。

疑似惡意軟體的檔案會經過各層把關,每一層所負責偵測檔案的特徵不同,但多數的惡意軟體,在第一層本機端啟發式與通用型偵測階段就會被發現,當經過第一層偵測後,仍存在疑慮時,便往下層移動進行更複雜的分析,越下層的分析便越精確,但是相對,所花的時間也會增加,耗費時間從第一、二層的幾毫秒到第三層的數秒,第四層數分鐘甚至是大資料分析的數小時。

微軟表示,Windows Defender Antivirus用了許多不同演算法來偵測惡意軟體,有一些是二元分類器,結果便是非0即1,有一些則是多元分類器,做出機率性的結果,像是分類惡意軟體、乾淨檔案、可能不需要的應用程式等類型。每一層的機器學習都被訓練來偵測不同的程式特徵,有些需要負責數百個特徵,有些則需要偵測數十萬個特徵。

在倒金字塔分層惡意軟體偵測模型,最快動作的分類器便是本機端啟發式與通用型偵測,用來偵測特定事件(Events)發生時的靜態屬性(Static attributes),當第一層分析結果為未定論,Windows Defender Antivirus便會把檔案放到沙盒中執行,藉由分析其運作時的行為,這個階段微軟稱他為引爆式分析,或是稱為動態分析。

(下圖)執行引爆式分析的時候,Windows Defender Antivirus會記錄像是註冊檔變更、檔案的產生與刪除甚至是程序注射等動態特徵,並把這些特徵供給其他機器學習模型使用,而其他的機器學習模型便可以綜合動態與靜態特徵,做出更加可信的預測。

微軟舉了一個14分鐘防護勒索軟體的例子。2017年10月14日早上11點47分,在俄國聖彼得堡的一名Windows Defender Antivirus的使用者,從一個惡意網站下載了一個名為FlashUtil.exe的檔案,這看似是一個Flash的更新軟體,實則是Tibbar勒索軟體。

Windows Defender Antivirus本機端認為這是一個可疑的檔案,便查詢雲端防護服務,發現有幾個元資料機器學習模型認為此檔案有嫌疑,但是不到需要阻擋的層級。於是Windows Defender Antivirus暫時鎖住檔案,並將完整檔案上傳處理,等待發落。

數秒鐘後,經過多重深度類神經網路的樣本分析機器學習模型回傳結果,認為這個檔案有81.6%機會是惡意軟體,但是Windows Defender Antivirus設定阻擋的閾值是90%,因此檔案仍可以繼續執行。但與此同時,全世界已經有8位受害者電腦被勒索軟體控制,不過也因為勒索軟體在這些受害者的電腦上運作,讓Windows Defender Antivirus有機會進行引爆式分析,紀錄勒索軟體的動態特徵,當多重深度類神經網路再次分析這些動態特徵時,對於預測此檔案是惡意軟體的信心高達90.7%,雲端防護便開始在發布封鎖指令。

就在11點31分,Windows Defender Antivirus取得了這個新的勒索軟體的第一滴血。第10位使用者在烏克蘭下載了同樣的勒索軟體,Windows Defender Antivirus同樣上傳勒索軟體的特徵,不過這次在查詢雲端防護系統後發現此為惡意軟體,便封鎖了這個檔案而成功保護了使用者的電腦。從發現惡意軟體到防護中間歷時14分鐘。


Advertisement

更多 iThome相關內容