張小莉 程光
摘? ?要:云基礎設施的惡意軟件檢測是必要的。為了避免被惡意軟件發(fā)現(xiàn),針對云基礎設施的特點,設計了一個外部的惡意軟件檢測器。首先,利用一個具有特殊權限且位于目標之外的虛擬機收集可疑進程的系統(tǒng)調(diào)用;然后,將收集到的系統(tǒng)調(diào)用轉(zhuǎn)換為進程的行為圖;最后,利用行為圖間的相似性來判斷可疑進程是否為惡意軟件。實驗結(jié)果表明,平均檢測率為89%,誤報率低于5%,檢測器對客戶虛擬機的性能影響不大,且能夠抵抗添加率低于30%的系統(tǒng)調(diào)用攻擊。
關鍵詞:惡意軟件;行為圖;云基礎設施
中圖分類號: TP309? ? ? ? ? 文獻標識碼:A
1 引言
惡意軟件不僅破壞傳統(tǒng)的計算環(huán)境,而且對云計算構(gòu)成了極大威脅。在云安全聯(lián)盟識別的七種頂級威脅中就有五種與惡意軟件直接或間接相關[1,2]。多年來,科技工作者在惡意軟件檢測方面開展了許多研究工作,也取得了豐富的研究成果。然而,隨著檢測技術的提升,惡意軟件自身也在不斷發(fā)展,這給惡意軟件檢測提出了許多挑戰(zhàn)。特別是近年來出現(xiàn)的云計算在給人類帶來便利的同時,也給惡意軟件提供了更加廣闊的生存空間。為了更好地發(fā)現(xiàn)云基礎設施環(huán)境中的惡意軟件,本文針對云基礎設施環(huán)境的特點,設計了一種新的惡意軟件檢測器。
如何描述惡意軟件是檢測惡意軟件的前提,本文使用惡意軟件的系統(tǒng)調(diào)用來刻畫惡意軟件的行為進而實現(xiàn)惡意軟件的描述。系統(tǒng)調(diào)用信息可進一步劃分為兩大類:空間信息和時間信息。本文使用系統(tǒng)調(diào)用的時間信息,待識別進程的行為與已知惡意軟件行為間的相似性被用于識別惡意軟件,進程行為使用一個帶權有向圖描述,這個有向圖產(chǎn)生于系統(tǒng)調(diào)用的軌跡。
云基礎設施中資源的豐富性引起了黑客的極大關注,惡意軟件是黑客的主要攻擊工具,研究云基礎設施中的惡意軟件檢測意義重大。與傳統(tǒng)計算環(huán)境下的惡意軟件檢測相比,云計算環(huán)境下的惡意軟件檢測不僅關注識別率,更關注惡意軟件檢測器的可伸縮性,當然透明性也是比較重要的。研究的目標就是要在云基礎設施環(huán)境中設計一個可伸縮性好、識別率高、且難以被惡意軟件發(fā)現(xiàn)的惡意軟件檢測器。
2 相關工作
借助逆向工程或受控環(huán)境下的進程分析技術可提取惡意軟件的行為特征。常見的一些機器學習算法,比如關聯(lián)規(guī)則、支持向量機、決策樹、隨機森林、樸素貝葉斯和聚類算法,正是利用這些靜態(tài)或動態(tài)特征來識別惡意軟件。
Schultz等人率先將機器學習算法應用于惡意軟件的識別研究,在他們的研究中,使用PE、特征字符串和字節(jié)順序等多種特征描述惡意軟件[3]。Mahdi等人也提出一種云計算環(huán)境下運用混合機器學習方法的新型惡意軟件檢測與識別系統(tǒng),包括數(shù)據(jù)預處理及識別模塊,并采用UNSW-NB15數(shù)據(jù)集進行模型性能評估[4]。Patil等人提出一種超級監(jiān)督者級別的分布式網(wǎng)絡安全(HLDNS)框架,將其部署在云計算的每個物理服務器上,該框架結(jié)合了特征選擇和機器學習技術,監(jiān)視來自網(wǎng)絡的相關流量,進而分析惡意軟件流量特征[5]。Balram Neil等人選擇一組關鍵PE頭特征進行分析,開發(fā)特征提取程序提取APT1數(shù)據(jù)集中的重要特征,并使用機器學習分類器方法實現(xiàn)了6個惡意軟件檢測器[6]。此外,An Yujie等人也曾使用關鍵指令的順序來識別惡意軟件,在這篇文獻中,提出一種有效的序列模式挖掘算法,通過分析結(jié)構(gòu)序列發(fā)現(xiàn)具有識別性的惡意軟件[7]。
現(xiàn)在,越來越多的研究人員為了克服靜態(tài)特征的局限性,傾向于使用動態(tài)特征來描述惡意軟件。Carlin等人通過動態(tài)運行時的分析方法獲得操作碼(Opcode),運用機器學習的方法來檢測惡意軟件[8]。Acarman等人綜合利用Windows系統(tǒng)調(diào)用軌跡中的API調(diào)用序列及動態(tài)特征來檢測惡意軟件[9]。Park Y.等人基于系統(tǒng)調(diào)用產(chǎn)生的圖提出了一種新的惡意軟件分類方法[10]。在其他研究中,Islam R等人綜合使用靜態(tài)和動態(tài)特征設計了第一個分類算法[11]。總的來講,以上這些惡意軟件識別算法的計算復雜度較高。
云計算環(huán)境下惡意軟件檢測的研究工作相對較少,這主要是因為云環(huán)境下惡意軟件檢測面臨著諸多挑戰(zhàn),Ali Mirza、Preeti等人提出一種云環(huán)境下惡意軟件檢測框架[12,13]。虛擬化是云基礎設施中資源的主要組織方式,本研究針對云基礎設施,并綜合利用圖匹配技術、可信計算技術以及虛擬機自省技術設計了一種可伸縮性好、識別率高,且透明性好的惡意軟件檢測器。
可信計算技術[14]可對信息提供完整性保護,研究中主要利用其來保證系統(tǒng)調(diào)用序列的完整性。虛擬機自省技術允許從外部查看一臺虛擬機的狀態(tài),本研究中主要用于設計診斷虛擬機FVM,F(xiàn)VM被用于監(jiān)控目標機VM的狀態(tài)。
3 惡意軟件檢測模型
虛擬機自省技術主要用于保證惡意軟件檢測器的透明性[15],可信計算技術主要用于確保能夠收集到真實的系統(tǒng)調(diào)用[16],圖匹配技術被用于識別惡意軟件。如圖1所示,惡意軟件檢測器由三種組件構(gòu)成,即代理Agent、診斷虛擬機FVM和TPM模塊。代理管理FVM的生命周期并且判定可疑惡意軟件是否確為惡意。FVM負責收集可疑惡意軟件的系統(tǒng)調(diào)用。為了讓FVM給代理程序提供真實的系統(tǒng)調(diào)用,TPM模塊被引入惡意軟件檢測器。此外,通過給每一個目標機VM配置FVM的方式,有效地解決了惡意軟件檢測器的可伸縮性問題。
3.1 惡意軟件檢測協(xié)議
如表1和表2所示,惡意軟件檢測協(xié)議被分成了四個階段:初始化、挑戰(zhàn)、驗證和決策。
初始階段:代理Agent首先給目標虛擬機創(chuàng)建一個診斷虛擬機FVM。然后,它調(diào)用TPM模塊的擴展命令TPM_Extend將診斷虛擬機FVM的哈希值擴展到寄存器PCR-20,同時,將診斷虛擬機FVM的哈希值添加到存儲度量日志。
挑戰(zhàn)階段:代理Agent首先發(fā)送惡意軟件檢測請求到診斷虛擬機FVM。請求當中包括隨機數(shù)nonce、PCR索引PCR-20和可疑惡意軟件的名稱。當診斷虛擬機FVM收到請求時,診斷虛擬機FVM收集可疑惡意軟件的系統(tǒng)調(diào)用。同時,診斷虛擬機FVM將每一個系統(tǒng)調(diào)用的哈希值擴展到PCR-20,并且添加對應的哈希值到存儲度量日志。最后,診斷虛擬機FVM生成響應并發(fā)送給代理Agent。
驗證階段:代理Agent首先檢查響應的真實性和診斷虛擬機FVM及收到的系統(tǒng)調(diào)用的完整性。通過所有檢查后,代理Agent將系統(tǒng)調(diào)用轉(zhuǎn)換成行為圖,并通過與已知行為圖的比較做出決策。
3.2 模型生成
首先,定義一個帶權的有向圖用于表示惡意軟件的行為。該圖對應一個惡意軟件的系統(tǒng)調(diào)用圖,用一個三元組表示,其中表示節(jié)點的集合,每一個節(jié)點表示惡意軟件執(zhí)行過程中的一個系統(tǒng)調(diào)用。表示邊的集合,每一個邊意味著系統(tǒng)調(diào)用和之間存在順序依賴。是一個給邊賦權的標簽函數(shù),表示賦予邊大于0的權值。
依據(jù)攔截的系統(tǒng)調(diào)用可以構(gòu)造惡意軟件的行為圖。具體來講,當惡意軟件運行時首先獲得一個系統(tǒng)調(diào)用序列。然后,計算每一個邊的權值,邊的權值等于。表示惡意軟件運行時從系統(tǒng)調(diào)用到系統(tǒng)調(diào)用。表示系統(tǒng)調(diào)用出現(xiàn)的次數(shù)。最后,據(jù)此來構(gòu)造惡意軟件的行為圖。
3.3 惡意軟件檢測
本文將惡意軟件的識別問題泛化為一個圖的匹配問題。首先生成一個可疑惡意軟件的行為圖,將生成的行為圖與數(shù)據(jù)庫中已知惡意軟件的行為圖進行比較??梢蓯阂廛浖慌卸閻阂廛浖臈l件是當且僅當?shù)仁剑?)被滿足。在等式(1)中,關鍵路徑由權值大于預定義閾值的邊組成。在等式(2)中,符號表示兩個行為圖之間的距離函數(shù)。表示節(jié)點的數(shù)量,表示圖和的最大公共子圖。
(1)
(2)
總之,當且僅當兩個軟件和的行為圖的關鍵路徑被匹配,且兩個軟件行為圖之間的距離小于預定義的閾值時判定可疑惡意軟件相似于惡意軟件。
4 評估
模型性能的評估需要有大量數(shù)據(jù)進行支撐。為了評估檢測器,共收集了六個流行的惡意軟件家族,它們分別是Allaple (Exploit-based Worm)、Sober (Email-Worm)、Bagle、Mytob、Netsky和Mydoom (Mass-mailing worm)[17],其中每個家族包括100個不同的惡意軟件。
4.1 識別率的評估
評估時,首先從每一個家族中挑選了100個惡意軟件,同時配備了100個正常軟件作為數(shù)據(jù)集。然后,借助Ether[18]程序收集了608個系統(tǒng)調(diào)用軌跡,其中510個惡意軟件,98個正常軟件。
為評估識別能力,首先從每個家族中選擇了80個惡意軟件,80個正常軟件。然后,根據(jù)對應的系統(tǒng)調(diào)用軌跡生成了各自的行為圖。最后,依據(jù)這些行為圖做了三個實驗。
實驗一:首先把480個惡意軟件的行為圖分成兩個組,每一個組中包含240個惡意軟件樣本。一個組作為測試組,另一個組作為參照組。(實驗中,沒有檢查行為圖中的關鍵路徑。)換句話說,就是僅檢查條件是否符合,來判斷兩個圖是否相似。如圖2所示,展示了所提惡意軟件檢測器針對各惡意軟件家族的識別率,平均識別率為89%,高于文獻[19]的87%的識別率。
實驗二:為了評估關鍵路徑對識別率的作用,在實驗1的基礎上增加了關鍵路徑比較。實驗中,關鍵路徑的權值是0.7。如圖3所示,增加關鍵路徑能夠提高惡意軟件的識別率。
實驗三:為了評估誤報率,分別在兩個惡意軟件組中增加了40個正常軟件的行為圖。如表3所示,實驗中,關鍵路徑的權值仍然選取0.7,并且閾值 選取0.3。如表3所示,展示誤報率低于5%,遠低于文獻[20]的誤報率13.10%。
4.2 性能評估
為了評估診斷虛擬機FVM對客戶虛擬機的影響,實驗中選擇了一個壓縮工具7-zip,測試環(huán)境是IBM System x3650 M4 2.4GHz Intel Xeon處理器,英飛凌TPM模塊1.2,主機的操作系統(tǒng)是Windows 2008 Server,客戶機的操作系統(tǒng)是Windows XP Hypvisor是Xen 3.1。為了測試CPU、IO和混合情況下的負載,分別做了三個實驗。如表4所示,診斷虛擬機FVM對客戶機的虛擬機影響不大。
4.3 健壯性評估
為了評估健壯性,從40個正常軟件樣本中隨機選擇了一些正常軟件的系統(tǒng)調(diào)用軌跡。然后,將這些軌跡被增加到每個惡意軟件的軌跡中。最后,重復了實驗二。結(jié)果表明,當增加率低于30%時,對惡意軟件的識別率影響不大。此外,針對系統(tǒng)調(diào)用的篡改攻擊也能被檢測器成功感知。
5 結(jié)束語
本文設計了一個針對云基礎實施的惡意軟件檢測器。設計過程中,把惡意軟件抽象為一個圖的匹配問題,并利用虛擬機內(nèi)省技術保證了檢測器的透明性,利用可信計算技術保證了診斷虛擬機能夠收集到真實的系統(tǒng)調(diào)用序列,同時通過給每一個目標機配備診斷虛擬機的方式保證了惡意軟件檢測器的可伸縮性。
從不同的角度評估了這個惡意軟件檢測器。首先,針對惡意軟件的識別能力做了實驗。結(jié)果表明,針對所有惡意軟件家族的惡意軟件識別率大于80%,平均識別率是89%。此外,誤報率低于5%。其次,針對診斷虛擬機FVM對客戶機的影響做了實驗。結(jié)果表明,所產(chǎn)生的負載是可接受的。最后,針對抵抗系統(tǒng)調(diào)用加性攻擊做了實驗。結(jié)果表明,在增加率低于30%時能夠抵抗針對系統(tǒng)調(diào)用的加性攻擊。同時,檢測器也能夠發(fā)現(xiàn)針對系統(tǒng)調(diào)用篡改的攻擊。
基金項目:
國家重點研發(fā)計劃“寬帶通信和新型網(wǎng)絡”重點專項自主可控高性能路由器及關鍵技術項目(項目編號:2018YFB1800600)。
參考文獻
[1] Cloud Security Alliance.Top Threats to Cloud Computing (V1.0)[EB/OL].https://cloudsecurityalliance.org/topthreats/csathreats, 2020-6-25.
[2] Watson M R, Shirazi N U H, Marnerides A K, et al. Malware Detection in Cloud Computing Infrastructures[J]. IEEE Transactions on Dependable & Secure Computing. 2016.13(2):192-205.
[3] Schultz M G, Eskin E, Zadok E, et al. Data mining methods for detection of new malicious executables[A].Proceedings of the IEEE Computer Society Symposium on Research in Security and Privacy[C]. Oakland:Elsevier Inc,2001.38-49.
[4] Mahdi Rabbania,?, Yong Li Wanga,??, Reza Khoshkanginib, Hamed Jelodara,Ruxin Zhaoa, Peng Hua. A hybrid machine learning approach for malicious behaviour detection andrecognition in cloud computing[J]. Journal of Network and Computer Applications.2020.151:1-13.
[5] Patil, Rajendra, Dudeja, Harsha, Modi, Chirag. Designing an e?cient security framework for detecting intrusions in virtual network of cloud computing[J]. Comput. Secur.2019. 85:402–422.
[6] Balram Neil, Hsieh George,McFall Christian.Static Malware Analysis using Machine Learning Algorithms on APT1 Dataset with String and PE Header Features[A]. CSCI 2019[C].Las Vegas: Elsevie Inc,2019.90-95.
[7] an Yujie ,Ye,Yanfang, Chen, Lifei. Malicious sequential pattern mining for automatic malware detection[J].Expert Systems with Applications. 2016.52:16-25.
[8] D. Carlin, P. OKane, S. Sezer. A cost analysis of machine learning using dynamic runtime opcodes for malware detection[J].Computers & Security. 2019.85:138-155.
[9] Acarman, Tankut. Malware classification based on API calls and behaviour analysis[J].IET Information Security. 2018. 12: 2.
[10] Park Y, Reeves D S, Stamp M. Deriving common malware behavior through graph clustering[J]. Computers & Security. 2013. 39: 419-430.
[11] Islam R, Tian R, Batten L M, et al. Classification of malware based on integrated static and dynamic features[J]. Journal of Network and Computer Applications. 2013. 36(2): 646-656.
[12] Ali Mirza, Qublai K, et al. A Cloud-Based Energy Ef?cient Hosting Model for Malware Detection Framework [A].2018 IEEE Global Communications Conference, GLOBECOM 2018-Proceedings[C].Abu Dhabi:Elsevier Inc,2018.
[13] Preeti Mishra,IshitaVerma,SaurabhGupta. KVMInspector: KVM Based introspection approach to detect malware in cloud environment[J]. Journal of Information Security and Applications.2020.51:1-12.
[14] Priyadarsi Nanda, Xiangjian He, Laurence T.Yang. Security,Trust and Privacy in Cyber(STPCyber):Future trends and challenges[J].Future Generation computer System .2020(109):446-449.
[15] 劉哲元,徐雋,汪興,等.一種基于虛擬機自省的安全檢測框架[J].計算機工程.2016.42(3):182-187.
[16] 馬亮,錢雪忠.基于可信計算的Web服務調(diào)用關鍵路徑研究[J].計算機工程與應用. 2016. 52(3):230-235.
[17] 郭春生.基于動態(tài)分析的勒索軟件檢測方法研究[D].南京:東南大學,2019.
[18] A. Dinaburg, P. Royal, M. I. Sharif, and W. Lee. Ether:malware analysis via hardware virtualization extensions[A]. 15th ACM Conference on Computer and Communications Security[C]. Alexandria:ACM,2008.51-62.
[19] Islam R, Tian R, Batten L M, et al. Classification of malware based on integrated static and dynamic features[J]. Journal of Network and Computer Applications. 2013. 36(2): 646-656.
[20] Nikolopoulos S D, Polenakis I. A graph-based model for malicious code detection exploiting dependencies of system-call groups[A]. Computer Systems and Technologies -16th International Conference[C]. Dublin: Elsevie Inc,2015.228-235.
作者簡介:
張小莉(1982-),女,漢族,山西呂梁人,太原理工大學,碩士,山西鐵道職業(yè)技術學院,副教授;主要研究方向和關注領域:計算機網(wǎng)絡、計算機網(wǎng)絡安全。
程光(1973-),男,漢族,東南大學,博士,東南大學網(wǎng)絡空間安全學院,教授;主要研究方向和關注領域:SDN網(wǎng)絡測量與管理、網(wǎng)絡流量測量與大數(shù)據(jù)分析、僵尸網(wǎng)絡、APT攻擊檢測。