您所在的位置: 首頁 >
新聞資訊 >
技術前沿 >
針對隱匿高危勒索病毒攻擊的檢測
摘 要:近年來,勒索病毒攻擊事件頻發(fā),勒索病毒隱匿性逐漸增強,為勒索病毒檢測及防御帶來了新的挑戰(zhàn)。通過對勒索病毒的快速檢測與家族分類,可以更有效地保護企業(yè)信息安全。從電力系統(tǒng)的實際情況出發(fā),構建了勒索病毒數(shù)據(jù)集,并采用動態(tài)分析的方法,利用沙盒獲得各家族勒索病毒樣本的行為信息,從動態(tài)行為分析報告中提取勒索病毒行為信息;再利用決策樹、隨機森林算法、卷積神經(jīng)網(wǎng)絡模型訓練了勒索病毒檢測器和勒索病毒家族分類器。測試結果表明,勒索病毒檢測器檢測準確率達到了 97%,勒索病毒家族分類器分類準確率達到了 94%。
內(nèi)容目錄:
1 背景介紹
1.1 隱匿高危勒索病毒
1.2 Cuckoo 沙盒
1.3 機器學習算法
2 動態(tài)分析與行為特征提取
2.1 實驗數(shù)據(jù)
2.2 Cuckoo 動態(tài)行為分析
2.3 行為特征提取
3 勒索病毒檢測器訓練
3.1 API 函數(shù)特征選擇
3.2 API 函數(shù)特征向量預訓練
3.3 分類器測試效果
3.3.1 決策樹模型
3.3.2 隨機森林算法
3.3.3 卷積神經(jīng)網(wǎng)絡模型
4 結 語
近年來,隨著勒索病毒的部分技術細節(jié)的公開,以及在暗網(wǎng)中代碼交易的出現(xiàn),勒索病毒的制作和利用勒索病毒進行犯罪的成本不斷降低,勒索病毒攻擊方式也更加簡單,但其贖金收益依然非??捎^。隨著網(wǎng)絡犯罪的組織化、規(guī)?;[匿行為攻擊的復雜化和商業(yè)化,目前,隱匿高危勒索病毒呈蔓延之勢。已知的勒索病毒家族利用多態(tài)、代碼混淆等手段,可以快速產(chǎn)生大量新版本,使得勒索病毒數(shù)量激增。
隨著網(wǎng)絡規(guī)模的擴大和信息化水平的提高,電力企業(yè)對網(wǎng)絡的依賴程度不斷增強,也在不知不覺中受到隱匿高危行為的威脅。電力企業(yè)的敏感數(shù)據(jù)也容易受到勒索病毒的關注,這些風險影響著電力企業(yè)網(wǎng)絡安全和穩(wěn)定。為了保證計算機網(wǎng)絡和計算機應用系統(tǒng)的正常運行,電力企業(yè)需要對隱匿高危勒索病毒的攻擊作出應對。
在過去幾年中,已經(jīng)有許多針對勒索病毒的防御策略,每種策略都實施了幾種保護和檢測策略,例如,基于欺騙的保護方法(deception-basedprotection)、控制安全隨機數(shù)發(fā)生器(controlling secure random number generator)、應用程序的行為分析(behavioral analysis of applications)、密鑰托管、網(wǎng)絡級防御,以及利用機器學習算法的勒索軟件程序檢測。
按照是否運行軟件樣本,勒索病毒的檢測可以分為靜態(tài)檢測與動態(tài)檢測兩種。其中靜態(tài)惡意軟件特征包括字節(jié)序列 N-grams、操作碼和 PE 報頭字段等。隨著開發(fā)技術的發(fā)展,惡意軟件的作者往往使用壓縮、加密、加殼等方法阻止靜態(tài)特征的提取,但許多反病毒技術和工具已經(jīng)可以有效實現(xiàn)程序的解包。Wang 等人針對惡意軟件通過加殼逃脫檢測的問題,提出了一種加殼檢測框架以檢測可執(zhí)行文件是否加殼,以提升惡意代碼檢測效果。在動態(tài)檢測中,程序運行時調(diào)用的 API 的序列經(jīng)常被視作為主要特征,這是因為惡意軟件為了減小代碼的體積,往往通過調(diào)用 API 函數(shù)來實現(xiàn)文件、注冊表、網(wǎng)絡、進程等操作行為。
現(xiàn)有的勒索病毒防御方法中,傳統(tǒng)的分類算法難以及時響應零日漏洞勒索病毒,而人工逆向分析的方法使得成本顯著提高,但是效果提升不明顯。隨著機器學習等算法的發(fā)展,一些啟發(fā)式檢測工具不斷出現(xiàn),但是這些工具普遍存在局限性和滯后性,并且不利于迭代。與此同時,勒索病毒的開發(fā)也在不斷發(fā)展,加殼、代碼混淆、反沙盒、內(nèi)存動態(tài)映射等策略的使用也為勒索病毒的防御帶來了很大難題。
本文從 Virus Total 等開源網(wǎng)站上收集了勒索病毒等惡意軟件樣本,利用動態(tài)分析方法提取軟件的應用程序編程接口(Application Programming Interface,API)函數(shù)調(diào)用特征,在此基礎上訓練了勒索病毒檢測器和勒索病毒家族分類器。
1 背景介紹
1.1 隱匿高危勒索病毒
勒索病毒,或稱勒索軟件,是一種特殊的惡意軟件,其主要通過鎖定受害者主機的操作系統(tǒng)或者使用密碼學加密受害者主機上的某些文件的方式,使得受害者無法獲得對其主機或主機上的文件的訪問控制權限,并威脅受害者向指定的賬戶支付贖金以解鎖文件。為了防止在感染受害者機器的初期就被察覺,隱匿勒索病毒往往在進行加密等核心操作前先模仿正常軟件活動一段時間。
隨著各種新型網(wǎng)絡攻擊的出現(xiàn),企業(yè)信息安全形勢變得不容樂觀,特別是銀行、電力、大型國企等機構,正在成為受攻擊的主要對象。當前,隱匿高危行為是企業(yè)面臨的最嚴重的威脅之一,其中,高級持續(xù)性威脅(Advanced Persistent Threat,APT)是最主要的表現(xiàn)手段之一。所謂 APT 攻擊就是針對特定的目標,進行長期持續(xù)性的網(wǎng)絡攻擊的攻擊方式,其對企業(yè)造成了非常嚴重的困擾,而結合了 APT 的勒索病毒攻擊則更是為企業(yè)的數(shù)據(jù)安全帶來了極大的威脅。
對抗隱匿高危勒索病毒攻擊,保護用戶數(shù)據(jù)的關鍵措施在于預防,即在勒索軟件攻入受害者主機但尚未造成實質性破壞前及時檢測并攔截攻擊。目前,針對勒索病毒的防護主要采用分層次防護措施,即提倡同時部署多種獨立、領域互相重疊的安全措施以創(chuàng)建穩(wěn)固的安全防護架構,并且各安全層被設計為和其他安全層互補,使得威脅不易穿透重重防護。
勒索病毒的家族分類指的是根據(jù)勒索病毒產(chǎn)生的變種來源對勒索病毒進行分類。同屬一個家族的勒索病毒往往會共享一些通用模塊,因此會有相似的勒索行為。近年來,家族內(nèi)的勒索病毒的技術不斷更新迭代,可以更好地逃避現(xiàn)有工具的檢測。此外,可以對勒索病毒的結構進行轉換,從而迅速產(chǎn)生大量變種。
此外,近年來勒索軟件即服務(Ransomware as a Service,RaaS)的商業(yè)模型的規(guī)?;l(fā)展使得勒索病毒家族中的病毒變種出現(xiàn)得更加頻繁,Cerber家族的出現(xiàn)和發(fā)展就是其中的典型。據(jù)報道,惡意代碼工廠軟件生成使用代碼混淆技術且擁有獨特Hash 的惡意代碼變種所需時間僅僅只有 15 s,而這些惡意軟件的變種可以繞過傳統(tǒng)的靜態(tài)簽名匹配的惡意軟件檢測技術的檢測。
1.2 Cuckoo 沙盒
Cuckoo 沙盒是一個開源的惡意軟件分析工具,用戶可以提交待分析樣本或待檢測統(tǒng)一資源定位符(Uniform Resource Locator,URL),快速獲得它的行為分析報告。Cuckoo 沙盒的主要組件可以分為主機和客戶機兩部分。其中主機是沙盒的核心控制部分,負責樣本的傳入、分析報告的生成、客戶機的啟動和恢復等,而客戶機可以有一個或多個,可以是在 VirtualBox 等軟件上配置的虛擬機,也可以是真實的物理機器。
Cuckoo 沙盒記錄的待檢測樣本的行為信息主要有軟件執(zhí)行期間調(diào)用的所有進程,創(chuàng)建、刪除、修改的文件及其信息,網(wǎng)絡連接與流量信息,客戶機運行期間的屏幕截圖,軟件運行期間的內(nèi)存轉儲記錄。這些信息由客戶機內(nèi)的監(jiān)控腳本(agent.py)獲取,并將所有信息發(fā)回主機,樣本運行完成后,再由主機生成名為 report.json 的行為分析日志。
1.3 機器學習算法
決策樹算法的雛形最早由 Hunt 等人 在 1966年提出。該算法對整個決策空間進行劃分,認為位于同一塊空間內(nèi)的樣本就屬于同一類別。決策樹的結構是一種樹形的有向圖結構,分為決策結點與葉子結點。在決策結點,決策樹會根據(jù)樣本特征做出決策;當?shù)竭_葉子結點時,根據(jù)葉子結點被劃分的空間就完成了對樣本的分類。
隨機森林 是一種集成的、基本單元是決策樹的機器學習算法,使用了 bagging 方法集成學習。隨機森林將訓練集分為多個子集,每個子集獨立訓練一個決策樹模型。在模型預測時,隨機森林會收集每個決策樹的模型結果,依據(jù)算法進行整合,得到最終的預測結果。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN) 是 用 卷 積 核 代 替 參 數(shù) 的 多 層 感 知 器(Multilayer Perceptron,MLP)的一種變體,屬于一種前饋神經(jīng)網(wǎng)絡,其利用卷積核構建學習模型。卷積神經(jīng)網(wǎng)絡的模型構成通常有多個卷積層、池化層和全連接層。
在自然語言處理方面,Kim提出使用卷積神經(jīng)網(wǎng)絡對句子的情感進行分類,如圖 1 所示,其模型由卷積層、池化層和全連接層構成。
圖 1 API 序列分類模型架構
用k 表示 API 序列中第 i 個 API 函數(shù)的 k維特征向量,API 序列的長度為 n,則整個 API 序列特征表示就可以用 n 個 API 函數(shù)的特征向量拼接得到,即:
同樣的,可以用表示從到的特征向量的拼接。對拼接后得到的進行矩陣卷積操作,卷積核設置為,即 1 次對 API 函數(shù)調(diào)用序列中的 h 個連續(xù) API 函數(shù)進行特征提取。如對卷積得到一個新特征該過程可以表示為:
式中:b 為偏移參數(shù);f 為非線性函數(shù)。對 1 個長度為 n 的 API 函數(shù)調(diào)用序列中間每一個大小為 h 的子序列進行卷積操作,就可以得到整個序列的特征映射為:
對進行一次池化操作(max-overtime pooling),即選擇特征映射中最大值作為卷積核 w卷積后的對應特征。進行池化操作的原因一方面是減少特征數(shù)量,保留最典型的特征;另一方面是API 函數(shù)調(diào)用序列長度各不相同,池化后避免了由于長度差異導致的缺失特征值對模型的影響。
整個模型的卷積層有多個卷積核,每個卷積核經(jīng)過卷積、池化后都可以得到一個特征。將這些特征一起傳入全連接層,就可以輸出一個類別的概率分布,其中概率最大的類別就作為輸入 API 函數(shù)序列的類別。
2 動態(tài)分析與行為特征提取
在本節(jié)中,將介紹本文勒索病毒數(shù)據(jù)集的構建與軟件特征提取的過程和結果。
2.1 實驗數(shù)據(jù)
本文研究的軟件樣本類別是 Windows 平臺上的可執(zhí)行軟件樣本(exe),其可以分為惡意軟件樣本和良性樣本兩大類。在惡意軟件樣本的選擇上結合了電力系統(tǒng)的實際情況,包含了隱匿高危勒索病毒樣本。課題使用的惡意軟件樣本主要來自 Virus Total 等惡意樣本開源網(wǎng)站。課題使用的良性軟件樣本來自 360 應用商店,樣本均經(jīng)過 360 惡意軟件檢測確認。本課題總共收集到 1 000 個惡意軟件樣本(不包括勒索病毒家族樣本)、100 個良性軟件樣本。
由于目前尚沒有根據(jù)勒索病毒家族分類的公開的數(shù)據(jù)集,因此勒索病毒樣本及其所屬家族只能通過其在 Virus Total、VirusShare 等開源網(wǎng)站上的分析信息判斷,將反病毒廠商檢測引擎給出的占比最大的家族定為該病毒樣本的所屬家族。最終獲得的勒索病毒家族名稱與樣本數(shù)量分布如表 1 所示。
表 1 數(shù)據(jù)集勒索病毒家族構成
2.2 Cuckoo 動態(tài)行為分析
本文搭建的 Cuckoo Sandbox 環(huán)境中主機使用的是 Ubuntu 18.04.1 LTS 操作系統(tǒng),在主機上安裝了Cuckoo Sandbox 2.0.7、VirtualBox 5.2 等軟件。客戶機使用的操作系統(tǒng)是 Windows 7 專業(yè)版并以虛擬機的形式通過 VirtualBox 5.2 安裝在主機上。
為了便于主機對客戶機的控制和軟件樣本的運行,客戶機關閉了防火墻、系統(tǒng)自動更新、用戶賬戶控制,并安裝了 Python、pip、pillow 等軟件用于運行 agent.py 腳本。
2.3 行為特征提取
軟件在與操作系統(tǒng)進行交互時通常使用 API 函數(shù)。為了使文件大小更小、更加隱蔽、傳播更迅速,勒索病毒往往利用系統(tǒng) API 函數(shù)實現(xiàn)文件管理、網(wǎng)絡連接、注冊表訪問等行為。本小節(jié)在 Cuckoo Sandbox 提供的分析報告的基礎上,提取了勒索病毒等軟件樣本的 API 調(diào)用信息,并在提取的行為信息中分析了勒索病毒的部分典型行為。
從軟件行為分析報告中提取 API 函數(shù)調(diào)用行為信息的流程如圖 2 所示。提取的行為報告位置是 [“behavior”][“process”] 字段,該字段記錄軟件運行期間每個進程的 API 函數(shù)調(diào)用情況。
圖 2 API 函數(shù)調(diào)用信息提取流程
3 勒索病毒檢測器訓練
本節(jié)在 2.3 節(jié)特征提取的基礎上,訓練了勒索病毒檢測器與家族分類器。
3.1 API 函數(shù)特征選擇
本節(jié)中,訓練勒索病毒家族分類器使用的特征是軟件樣本調(diào)用的 API 函數(shù)名稱及相應的頻率。如果將全部出現(xiàn)過的 API 函數(shù)名稱作為特征直接進行分類器的訓練,不僅會增加模型訓練的時間消耗,還會因為無效或者干擾特征的保留使模型的分類效果下降。
利用 2.3 節(jié)獲得的軟件 API 函數(shù)調(diào)用頻率信息,并利用 R 語言的 Boruta 算法包對 API 函數(shù)進行特征選擇。由于分類任務分為勒索病毒檢測的二分類和勒索病毒家族分類的多分類,兩種分類數(shù)據(jù)集不同、數(shù)據(jù)標簽不同,因此需要分別進行特征篩選,保留與各自分類任務相關的 API 函數(shù)特征。
3.2 API 函數(shù)特征向量預訓練
第 2 節(jié)獲得的 API 函數(shù)的調(diào)用序列可以看作軟件的“句子”的文本分析和分類,但是序列長度基本在 3 萬以上,這給后續(xù)的分析帶來了極大的數(shù)據(jù)讀取和存儲壓力,也會影響卷積神經(jīng)網(wǎng)絡分類勒索病毒的效果,因此需要對 API 序列進行去重處理。對軟件樣本的 API 函數(shù)調(diào)用序列進行去重的算法結合軟件的 API 函數(shù)調(diào)用的現(xiàn)實情況,設置重復序列的長度范圍為 ,遍歷一遍序列后刪去所有重復子序列。
利用全部樣本的 API 函數(shù)調(diào)用序列構成了一個文檔輸入 Word2vec 模型,獲得 API 函數(shù)的特征表示。特征向量預訓練使用了 Skip-gram 模型結構,設置API 函數(shù)的特征向量的維數(shù)為 50 維,迭代次數(shù)為10 輪,模型訓練結束后將特征向量保存為“APIvec.bin”文件,用于后續(xù)的分類器訓練。
3.3 分類器測試效果
在本節(jié)中,分別使用傳統(tǒng)的機器學習算法決策樹、隨機森林模型和卷積神經(jīng)網(wǎng)絡的方法訓練勒索病毒的檢測器與家族分類器。
3.3.1 決策樹模型
決策樹模型設定勒索病毒檢測與分類的訓練集與測試集的劃分比例為 9 ∶ 1。使用決策樹算法訓練勒索病毒檢測器與勒索病毒分類器,其中勒索病毒檢測器的模型測試混淆矩陣如圖 3 所示,勒索病毒檢測器的準確率為 94.56%,分類精度為97.05%,召回率為 89.18%。勒索病毒家族分類器的模型測試混淆矩陣如圖 4 所示,勒索病毒檢測器的準確率為 82.35%。
圖 3 決策樹算法檢測器測試混淆矩陣
圖 4 決策樹算法家族分類器測試混淆矩陣
3.3.2 隨機森林算法
隨機森林算法設定勒索病毒檢測與分類的訓練集與測試集的劃分比例為 9 ∶ 1,設置隨機森林中的決策樹數(shù)量為 150,訓練勒索病毒檢測器與勒索病毒分類器。其中勒索病毒檢測器的模型測試混淆矩陣如圖 5 所示,勒索病毒檢測器的準確率為96.73%,分類精度為 94.72%,召回率為 97.29%。勒索病毒家族分類器的模型測試混淆矩陣如圖 6 所示,勒索病毒檢測器的準確率為 90.19%。
圖 5 隨機森林算法檢測器測試混淆矩陣
圖 6 隨機森林算法家族分類器測試混淆矩陣
3.3.3 卷積神經(jīng)網(wǎng)絡模型
設置卷積神經(jīng)網(wǎng)絡模型訓練集與測試集的比例劃分為 8 ∶ 2。模型訓練時設定平均序列長度為 5 000,batchsize 為 10,丟棄概率為 0.5,學習率為 0.001。設置序列的最大長度為 5 000。預訓練得到的 API函數(shù)名稱特征向量維度為 50 維,結合軟件的 API函數(shù)調(diào)用的現(xiàn)實情況設置卷積核大小為 2×50,3×50,4×50,5×50。
勒索病毒檢測器的模型測試混淆矩陣如圖 7 所示,勒索病毒檢測器的準確率為 97%,分類精度為95.62%,召回率為 95.09%,F(xiàn)1-score 為 96.03%。勒索病毒家族分類器的模型測試混淆矩陣如圖 8 所示,勒索病毒檢測器的準確率為 94%,分類精度為89.1%,召回率為 82.04%,F(xiàn)1-score 為 76.42%。
圖 7 卷積神經(jīng)網(wǎng)絡檢測器測試混淆矩陣
圖 8 卷積神經(jīng)網(wǎng)絡家族分類器測試混淆矩陣
綜上,無論是使用決策樹算法還是隨機森林算法,都可以有效實現(xiàn)對勒索病毒的檢測與家族分類。其中,隨機森林模型的勒索病毒檢測和家族分類測試效果都明顯優(yōu)于決策樹算法。使用卷積神經(jīng)網(wǎng)絡的方法對勒索病毒的檢測和家族分類效果都有提升,其中檢測準確率高達 97%。在家族分類方面,卷積神經(jīng)網(wǎng)絡的提升更加明顯,模型測試準確率為 94%。此外,可以發(fā)現(xiàn)勒索病毒的檢測效果明顯優(yōu)于勒索病毒家族分類效果。雖然使用卷積神經(jīng)網(wǎng)絡方法的分類器模型準確率較高,但是部分家族的分類精度、召回率不高。勒索病毒家族分類效果不佳可能是因為家族數(shù)據(jù)集的不完善,數(shù)據(jù)集內(nèi)有的家族的樣本較少,這使得模型不能充分學習該家族的特征,導致模型對部分勒索病毒家族的分類效果不好。
4 結 語
近年來,勒索病毒攻擊給企業(yè)和個人帶來了很大困擾,隱匿高危勒索病毒的肆虐也為勒索病毒的防御帶來了新的挑戰(zhàn)。本文從電力系統(tǒng)的實際情況出發(fā),以 Windows 平臺的可執(zhí)行文件格式的勒索病毒為研究對象,研究其及其所屬各勒索病毒家族的行為特征,并利用 Cuckoo Sandbox 軟件獲取勒索病毒軟件的行為分析報告,從中提取中樣本的行為特征。針對獲得的勒索病毒行為特征,分別采用了決策樹、隨機森林的方法和基于卷積神經(jīng)網(wǎng)絡的深度學習算法訓練了分類器實現(xiàn)了勒索病毒的檢測與家族分類。
本文的勒索病毒檢測與家族分類直接對API 函數(shù)調(diào)用序列進行分析,對勒索病毒的應急防護有積極意義,能夠幫助企業(yè)或個人在受到勒索病毒威脅時快速反應,即針對勒索病毒所屬家族做出針對性防御,也可以與動態(tài)行為分析結合用于除勒索病毒外其他種類惡意軟件的分析。
本文的勒索病毒檢測器準確率達到了 97%,勒索病毒家族分類準確率達到 94%。
本文主要的貢獻有 3 項:
(1)收集了 13 個勒索病毒家族共 507 個樣本,并對其進行了動態(tài)行為分析,從中總結出其典型的API 函數(shù)特征;
(2)搭建了卷積神經(jīng)網(wǎng)絡模型,結合文本分類思路訓練了勒索病毒分類器;
(3)訓練了勒索病毒檢測器與勒索病毒家族分類器,準確率超過 90%。
引用格式:陸庭輝 , 饒茜霖 , 薛質 , 等 . 針對隱匿高危勒索病毒攻擊的檢測 [J]. 通信技術 ,2022,55(11):1492-1498.
作者簡介 >>>
陸庭輝,男,碩士,高級工程師,主要研究方向為網(wǎng)絡安全和大數(shù)據(jù);
饒茜霖,女,碩士研究生,主要研究方向為網(wǎng)絡攻防;
薛 質,男,博士,教授,主要研究方向為網(wǎng)絡安全、網(wǎng)絡攻防;
施 勇,男,博士,講師,主要研究方向為網(wǎng)絡攻防、安全評估與管理、工業(yè)控制系統(tǒng)信息安全、人工智能網(wǎng)絡入侵檢測技術。
選自《通信技術》2022年第11期(為便于排版,已省去原文參考文獻)
文章來源: 信息安全與通信保密雜志社