惡意軟體檢測常見方法

2020-12-06 貴州發現未來

轉自---中國保密協會科學技術分會

摘 要

隨著網絡的快速發展,大規模惡意軟體的自動化攻擊已經成為網絡攻擊的主要形式。這不僅給普通用戶帶來了極大的困擾,同時也給企業與政府部門帶來了不可小覷的損失。研究人員已經提出了一些惡意軟體檢測方法,包括靜態分析和動態分析及混合分析法。

一、惡意軟體引發的安全問題

惡意軟體是一種破壞受害者的工作站、行動裝置、伺服器和網關的程序。常見的惡意軟體程序有病毒、蠕蟲、木馬、間諜軟體、勒索軟體、恐嚇軟體、殭屍程序和rootkit。網絡罪犯利用惡意軟體攻擊個人和組織,實現破壞作業系統、破壞電腦或網絡、竊取機密數據、收集個人信息、劫持或加密敏感數據等目標。

惡意軟體是目前網際網路上的主要威脅之一,網絡中的設備都可能會受到惡意軟體的攻擊。瑞星的安全報告中指出[1],在2019年「雲安全」系統共截獲1.03億個病毒樣本量,病毒感染次數4.38億次,病毒總體數量比2018年同期上漲32.69%。2020年8月,國家網際網路應急中心發布的網絡安全信息與動態周報指出[2],境內感染網絡病毒的主機數量達到了58.6萬,被木馬或殭屍程序控制的主機約52.7萬個,感染飛客蠕蟲的主機約5.9萬,木馬和殭屍程序較上周增長了3.4%,飛客蠕蟲較上周增長了4.5%,企業、政府和學校都受到了複雜多樣的威脅。隨著惡意軟體的數量和多樣性的不斷增加,傳統的惡意軟體檢測方法已然失效。因此,研究更加快速、高效的惡意軟體檢測方法是十分有必要的。

二、常見檢測方法及改進

傳統的惡意軟體分析方法主要分為靜態分析法和動態分析法[3]。靜態方法準確性高,動態方法靈活性高,這兩種方法都存在一定的缺陷。研究人員通過機器學習技術,提出了新的混合分析法。

表格 1 常見惡意軟體檢測方法的總結對

1. 靜態分析法

同一惡意軟體家族代碼復用導致惡意軟體作者或團隊編碼具有編碼相似性[4],因此當同一家族惡意軟體載入內存執行時其結構信息和數據也應該具有一定的相似性。鑑於上述相似性,靜態分析法通過對惡意軟體本身二進位文件、可執行文件或者通過反編譯文件提取到的靜態特徵進行分析,對比惡意軟體與正常軟體的靜態特徵的異同來發現惡意軟體。通過將 EXE 文件以 PE 文件格式解析,提取樣本的文本、全局、頭部、導入導出表、節特徵,再通過對比分析即可精準地識別出惡意軟體。

圖 1PE文件的結構

Schultz 等[5]通過樸素貝葉斯分類算法,將數據挖掘的算法首次應用於惡意軟體分析,檢測結果比基於特徵匹配的傳統靜態檢測法更準確。Santos 等[6]根據操作碼的出現頻率以及操作碼之間的關聯性來識別和分類惡意軟體。Zhang等[7] 通過將可執行文件反編譯得到操作碼序列轉換成圖像,輸入卷積神經網絡CNN來進行識別。這使得圖像的概念被引入了惡意軟體檢測領域。Conti G等[8]首次提出將惡意軟體的二進位文件轉化為灰度圖像。

靜態方法可以準確地捕捉到惡意軟體的靜態特徵,但是由於特徵類型單一,混淆或加殼等技術可以讓惡意軟體逃過檢測,使得檢測效果下降。

1. 動態分析法

動態分析方法主要是通過在虛擬環境中執行惡意軟體樣本,記錄惡意軟體的行為特徵,如行為日誌、系統調用名稱、上下文參數、環境變量等[9]。惡意軟體在運行時會做出各類威脅行為,包括修改文件系統 (如寫入設備驅動程序、更改系統配置文件) 、修改註冊表(如修改註冊表鍵值、更改防火牆設置)、網絡行為(如解析域名、發出HTTP請求)等。在獨立、安全的沙(Sandbox) 環境中運行PE文件,通過行為分析來判定其是否為惡意軟體。動態檢測通常與可視化技術相結合,便於分析動態行為軌跡。

鄭銳等[10]使用雙向LSTM模型和Cuckoo Sandbox平臺收集樣本的API調用序列,對6681個惡意軟體樣本進行分類,取得了99.28%的準確率。Tandon和Chan[11]通過用規則算法學習系統調用中的規則信息,來檢測新型的惡意軟體行為。Rieck等[12] 通過沙箱採集了惡意軟體運行時的行為特徵,並基於這些行為特徵使用機器學習算法進行識別和分類。Ki 等[13]通過構建API特徵資料庫,利用對比API序列特徵的方法來判斷是否屬於惡意軟體。

但動態分析需要惡意軟體完整運行,再進行判斷,所以惡意軟體的檢測時效性較差。更重要的是,攻擊者能夠讓惡意軟體避開檢測軟體的檢測[14],

2. 混合分析法——機器學習

隨著惡意軟體的數量劇增,類型也逐漸變得多樣和複雜,傳統的技術顯得效率不足。因此研究者逐漸趨向於使用機器學習技術,來應對惡意軟體難以預測的變種和日益龐大的數量。

基於機器學習的惡意軟體檢測方法關鍵在於特徵和算法的選擇。靜態特徵和動態特徵都可用於機器學習,但無關特徵和噪聲特徵會影響模型的準確性。利用數據挖掘選擇數據、特徵,再結合機器學習技術完成檢測,是現有研究中常見的解決方案。一般分為四個步驟:數據準備、特徵提取及特徵選擇、訓練機器學習模型、獲取檢測結果。目前,大部分安全平臺公開了大量惡意軟體的數據集,其中包括可以在Windows平臺,Linux平臺以及移動端等各個環境下運行的惡意樣本。而樣本類型多種多樣,例如木馬,蠕蟲,後門等,可以根據當前需求進行篩選。獲取到數據集後,進行特徵提取。特徵提取分為靜態特徵(如PE頭特徵、二進位內容特徵等)以及動態特徵(如API調用特徵、系統修改特徵和網絡行為特徵等)。然後選擇一種機器學習算法,使用提取的特徵集合訓練模型。最終使用模型進行惡意軟體的檢測與判定。將用於測試的惡意樣本以相同的方式進行特徵提取,把測試特徵集合送入已經訓練完成的模型中,模型會自動判定測試樣本的分類,是否屬於惡意樣本,從而實現惡意軟體的檢測。

趙中軍等[15]通過優化的K-means算法,快速有效地識別出惡意軟體;張瑩等[16]解決了傳統K-means選擇初始質心不穩定的問題,提出一種基於PSO-K-means的惡意代碼檢測方法。楊宏宇等[17]提出的改進隨機森林算法在惡意軟體檢測實驗中準確率達到98%。目前硬體計算能力的大幅提高,使得深度學習的普及成為可能,逐漸步入人們的視野。在惡意軟體檢測中,CNN、RNN以及兩者的結合應用較多,PE文件的二進位字節內容可以直接作為深度神經網絡的輸入[18],也可以提取序列化的特徵作為輸入[19-22]。

參考文獻

[1] 呂雲峰.2019年瑞星網絡安全報告與趨勢展望[J].信息安全研究,2020.

[2] 國家網際網路應急中心網絡安全信息與動態周報[R/OL].(2020-02-29)[2020-03-10].https://www.cert.org.cn/publish/main/upload/File/202008.pdf.

[3] BoYU,FangY,YangQ,etal.Asurveyofmalwarebehaviordescriptionandanalysis[J].FrontiersofInformationTechnology&ElectronicEngineering,2018,19(5):583-603.

[4] 宋文納,彭國軍,傅建明,等.惡意代碼演化與溯源技術研究[J].軟體學報,2019,30(8):2229-2267.

[5] SchultzMG,EskinE,ZadokF,etal.DataMiningMethodsforDetectionofNewMaliciousExecutables[C]//IEEESymposiumonSecurity&Privacy.IEEE,2002.

[6] SantosI,BrezoF,Ugarte-PedreroX,etal.Opcodesequencesasrepresentationofexecutablesfordata-mining-basedunknownmalwaredetection[J].Informationences,2013,231:64-82.

[7] Zhang,J,Qin,Z.,Yin,H,Ou,L.,&Hu,Y..(2017).IRMD:MalwareVariantDetectionUsingOpcodeImageRecognition.IEEEInternationalConferenceonParallel&DistributedSystems.IEEE.

[8] ContiG,BratusS,ShubinaA,etal.Automatedmappingoflargebinaryobjectsusingprimitivefragmenttypeclassification[J].digitalinvestigation,2010,7:S3-S12

[9] 周楊,蘆天亮,杜彥輝,郭蕊,暴雨軒,李默.基於線程融合特徵的Windows惡意代碼檢測與分析[J/OL].計算機工程與應用:1-11[2020-10-21].http://kns.cnki.net/kcms/detail/11.2127.TP.20200421.1438.006.html.

[10] 鄭銳,汪秋雲,傅建明,姜政偉,蘇日古嘎,&汪姝瑋.(2020).一種基於深度學習的惡意軟體家族分類模型.信息安全學報,005(001),1-9.ZHENGR,WANGQY,FUJM,elal.ANovelMalwareClassificationModelBasedonDeepLearning[J].JournalofCyberSecurity,2020,5(1):1-9.

[11] TandonG,ChanP.Learningrulesfromsystemcallargumentsandsequencesforanomalydetection//ProceedingsoftheInternationalWorkshoponDataMiningforComputerSecurity.Melbourne,2003:20

[12] Rieck,K.,Trinius,P.,Willems,C.,&Holz,T..(2011).Automaticanalysisofmalwarebehaviorusingmachinelearning.Journalofcomputersecurity,19(4),p.639-668.

[13] Ki,Y.,Kim,E.,&Kim,H.K..(2015).Anovelapproachtodetectmalwarebasedonapicallsequenceanalysis.InternationalJournalofDistributedSensorNetworks,2015,1-9.

[14] 張蕾,崔勇,劉靜,等.機器學習在網絡空間安全研究中的應用[J].計算,2018(9):1943-1975.ZhangL,CuiY,LiuJ,etal.ApplicationofMachineLearninginCyberspaceSecurityResearch[J].ChineseJournalofComputers,2018,41(9):1943-1975.

[15] 趙中軍,曾湧泉,王運兵 . 基於優化 K-Means 的 Android系 統 惡 意 軟 件 檢 測 的 研 究 與 設 計 [J]. 通 信 技 術 ,2018 , 51(12) :212-218.

[16] 張瑩.基於網絡行為特徵聚類分析的惡意代碼檢測技術研究[D].哈爾濱:哈爾濱工程大學,2018.

[17] 楊宏宇,徐晉.基於改進隨機森林算法的Android惡意軟體檢測[J].通信學報,2017,38(4):8-16

[18] 王蕊,馮登國,楊軼,等.基於語義的惡意代碼行為特徵提取及檢測方法[J].軟體學報,2012,23(2):378-393.

[19] 李鵬,王汝傳,武寧.基於空間關係特徵的未知惡意代碼自動檢測技術研究[J].計算機研究與發展,2012,49(5):949-957.

[20] WATSONMR,SHIRAZINUH,MARNERIDESAK,etal. Malware detection in cloud computing infrasructures [J].IEEE Transactions on Dependable and Secure Computing,2016,13(2):192-205.

[21] 毛蔚軒,蔡忠閩,童力.一種基於主動學習的惡意代碼檢測方法[J].軟體學報,2017,28(2):384-397.

[22] RAFFE,BARKERJ,SYLVESTERJ,etal. Malware detection by eating a whole exe[J].arXiv:1710.09435,2017.

相關焦點

  • 攻擊者利用惡意軟體繞過DNA檢測,或引發「生物戰」
    攻擊者利用惡意軟體繞過DNA檢測,或引發「生物戰」 用科技「黑」進人體,馬斯克宣布高效實現腦機接口的方法… 「生物黑客」對於人們來說,或許並不陌生。然而,基於此開展的網絡攻擊對於人類本身來說,或許是一場災難。
  • 黑客通過惡意軟體繞過DNS檢測,或引發倫理災難
    打開APP 黑客通過惡意軟體繞過DNS檢測,或引發倫理災難 Sandra1432 發表於 2020-12-02 15:51:16
  • Android惡意軟體開發的新技術 | 360惡意軟體專題報告
    2016年全年,從手機用戶感染惡意程序情況看,360網際網路安全中心累計監測到Android用戶感染惡意程序2.53億,平均每天惡意程序感染量約為70萬人次。釣魚軟體、勒索軟體、色情播放器軟體、頑固木馬成為2016年流行的惡意軟體。
  • Android惡意軟體開發的新技術|360惡意軟體專題報告
    2016年全年,從手機用戶感染惡意程序情況看,360網際網路安全中心累計監測到Android用戶感染惡意程序2.53億,平均每天惡意程序感染量約為70萬人次。釣魚軟體、勒索軟體、色情播放器軟體、頑固木馬成為2016年流行的惡意軟體。
  • mac惡意軟體使用run-only AppleScripts繞過檢測
    mac惡意軟體使用run-only AppleScripts繞過檢測 ​Sentinel One安全研究人員在2020年底發現了一個新的OSAMiner樣本,並對其進行了分析。
  • F5安全研究院發現新型GoLang惡意軟體借漏洞挖掘加密貨幣
    F5研究人員檢測到針對ThinkPHP(CVE-2019-9082和CVE未分配),Atlassian Confluence(CVE-2019-3396)和Drupal(CVE-2018-7600)(也稱為Druppalgeddon2)中漏洞的惡意請求。
  • 如何預防惡意軟體的攻擊?10項防禦措施來幫您!
    在上一篇我們已經了解了最常見的十大惡意軟體類型,那麼針對如此複雜多樣的惡意軟體攻擊,該採取什麼措施保護自己免受惡意軟體的威脅呢?安裝防病毒軟體和防惡意軟體工具在終端設備上安裝使用防病毒,防惡意軟體的的軟體工具,提前做好防禦工作。6. 使用數字證書保護您的網站和電子郵件數字證書可以通過身份認證和加密功能提供安全性。
  • AVG截獲廣告刷錢器 新型惡意軟體預警
    AVG截獲廣告刷錢器 新型惡意軟體預警 2012年11月29日 14:15作者:陳濤編輯:陳濤文章出處:泡泡網原創     泡泡網安全相關頻道11
  • Android最著名的惡意軟體之一——「Joker」丨大東話安全
    大東:惡意軟體的作者首先會克隆一個合法應用程式的功能,然後將其上傳到Play Store。該應用程式功能齊全,當它首次運行時,會請求訪問危險權限,但不會執行任何惡意行為。 小白:這樣就不會被檢測到嘛?
  • 俄語垃圾郵件推送Redaman銀行惡意軟體
    Redaman於2015年首次被發現,它是針對使用俄羅斯金融機構進行交易的客戶的惡意軟體。最初它被報告為RTM銀行木馬,2017年Symantec 和Microsoft 等廠商將該惡意軟體的更新版本描述為Redaman。2018年的最後四個月,我們發現了多個俄語版本Redaman的大規模分發活動。
  • 谷歌Play商店剔除了11款帶有Joker惡意軟體的Android應用
    臭名昭著的 Joker 惡意軟體,可在未經用戶同意的情況下訂閱許多增值服務。以色列網絡安全公司 Check Point 的安全研究人員發現,幕後開發者對這些應用的代碼機型了修改,以繞過 Play 商店的安全性審查。
  • Panda安全軟體鬧烏龍 將自身文件隔離當惡意軟體
    Panda軟體公司是歐洲著名的計算機安全產品公司,但似乎Panda公司這次鬧了個不小的烏龍。
  • 地下市場出現針對比特幣ATM的惡意軟體
    據趨勢科技(Trend Micro)安全研究人員透露,地下黑市現在出現了一種針對比特幣ATM的惡意軟體。比特幣ATM惡意軟體售價達2.5萬美元,這個軟體利用了一個服務漏洞,允許使用該軟體的人購買價值6750美元、英鎊或歐元的比特幣。惡意軟體的購買者可以通過近場通信(NFC)技術或這個惡意軟體提供的歐洲支付卡、萬事達和Visa卡(EMV)的預寫卡去購買比特幣。
  • 過去10年中,濫用機器身份的惡意軟體攻擊增長了8倍
    根據Venafi最新發布的威脅分析報告,利用機器身份的惡意軟體活動正在極速增加。例如,從2018年到2019年,使用機器身份進行的惡意軟體攻擊增加了一倍,其中包括備受矚目的攻擊活動,例如TrickBot、Skidmap、Kerberods和CryptoSink。研究人員通過分析公共領域中的安全事件和第三方報告,收集了有關濫用機器身份的數據。
  • 微軟推出Project Freta服務:可在系統內存快照中查找惡意軟體
    IT之家 7 月 8 日消息 微軟本周推出了一款名為 「Project Freta」的全新反惡意軟體服務,可在系統內存快照中,幫助用戶查找和識別惡意軟體。微軟官方對其的描述為:「微軟研究院開發的免費服務,用於檢測 Live Linux 系統內存快照中的作業系統和傳感器破壞證據,例如 rootkits 和高級惡意軟體。」據悉,Project Freta 基於雲計算,工作原理是捕捉虛擬機中運行的作業系統圖像,並上傳到雲端分析處理。
  • 2020年每天檢測到的最新惡意文件數量增長5.2%, 達到360,000
    過去12個月,卡巴斯基的檢測系統平均每天檢測到360,000個最新惡意文件,較去年增長18,000(增長率為5.2%),2018年,檢測到的平均數量則為346,000個。這些惡意文件中,有60.2%為非特定木馬。整體來看,今年檢測到的木馬百分比較去年增長了40.5%。
  • 阻止了 WannaCry 擴散的研究員承認開發惡意軟體
    據報導,曾阻止了 WannaCry 勒索軟體擴散的英國安全研究員馬庫斯·哈欽斯(Marcus Hutchins)今日發表聲明,承認自己在成為惡意軟體研究員之前曾編寫了惡意軟體
  • 勒索軟體現可檢測虛擬機躲避安全人員分析
    【PConline 資訊】不知各位是否還記得去年發現的那款臭名昭著的勒索軟體Cerber,除了加密文件外該軟體還包含一個.vbs文件,顯示贖金票據以進一步嚇唬受害者。現在,它又有了新動作,獲得了防止網絡安全工具檢測的能力,使惡意軟體難以被安全人員分析。
  • GooglePlay 應用商店不能下載的104個惡意軟體
    12月24日消息,昨日外媒phoneArena發布相關文章表示有相關人士發現GooglePlay 應用商店中出現了104個惡意軟體,下載安裝這些軟體後個人隱私、用戶數據和手機正常使用都會受到一定影響,並強烈建議不要下載這些軟體。
  • 17款Android App被強制刪除,Google Play商店發現惡意軟體已感染數...
    17款Android App被強制刪除,Google Play商店發現惡意軟體已感染數百萬設備 據來自Zscaler的安全研究人員Viral Gandhi稱,這17個應用程式全部感染了Joker(又名Bread)惡意軟體。