黃興利,韓艷龍,張長勝,劉笑言,潘永付
(1.西北工業大學,陜西 西安 710072;2.溫州大學,浙江 溫州 325035)
基于云計算的Android惡意程序協同檢測系統
黃興利1,韓艷龍1,張長勝2,劉笑言1,潘永付1
(1.西北工業大學,陜西 西安 710072;2.溫州大學,浙江 溫州 325035)
為檢測Android惡意程序,設計了基于云計算的Android惡意程序協同檢測系統。引入云計算的概念,通過在云平臺上協同調用N個殺毒引擎來檢測Android應用。該系統主要包括兩個模塊:信息管理模塊和協同檢測模塊。在檢測Android應用時,將應用與特征庫進行匹配。若匹配成功,則顯示該應用在特征庫中存儲的檢測結果;若匹配不成功,則調用N個殺毒引擎來對其進行檢測。最終,系統對N個引擎的檢測報告進行匯總。利用信譽積分機制獲得結果,將結果反饋并存入系統特征庫。實驗結果表明,該系統平均檢出率為97.17%,檢測性能良好且可靠性高。
安卓;惡意程序;云計算;信譽積分機制
近年來,移動互聯網技術發展非常迅速。而Android操作系統在全球市場中所占份額遠超50%,并且還在持續增長。但由于Android的開放性,簽名機制的不規范以及應用市場寬松的管理政策,每個用戶都可以編寫和發布自己的Android應用。這些原因使得Android惡意程序的數量與日俱增,并且可以輕松地逃避殺毒引擎的檢測[1-2]。
因為云計算能夠為用戶提供大量的信息服務[3],所以利用開源項目搭建企業級的云平臺成為了一種全新的計算模式。該模式可以將大量的計算機、虛擬機等網絡設備資源整合到云平臺下進行管理,按照一定的商業模式為用戶提供服務。因此,用戶可以在沒有硬件基礎設備的情況下,訪問或操作云平臺上共享的應用和數據等信息。這種全新的計算模式是一系列分布式計算發展和演化的結果,成熟度較高[4]。
針對如今Android惡意程序數量龐大、傳播速度快、惡意代碼家族眾多等特點,文中提出一種基于云計算的Android惡意程序協同檢測系統。該系統能夠給用戶一個最直觀的檢測結果,并且該結果具有非常高的準確性。
1.1 設計思路
目前,每一種惡意程序檢測方法都有各自的局限性,對不同惡意代碼家族而言,檢出率存在巨大的差異。文中利用多個殺毒引擎,以此來彌補各個引擎存在的不足之處。系統框架如圖1所示。首先由信息管理模塊生成應用的唯一標識符(UID),并且與特征庫中已存儲的唯一標識符進行匹配。如果匹配成功,則表示系統已經檢測過該應用。此時,直接顯示系統中存儲的檢測結果;如果匹配失敗,那么信息管理模塊將Android應用提交到協同檢測模塊進行檢測。隨后,協同檢測模塊調用云平臺下的N個殺毒引擎進行檢測,并根據N個殺毒引擎的信譽積分整理出最終檢測結果。最后,信息管理模塊將根據N個殺毒引擎的檢測報告和最終的檢測結果來更新各引擎的信譽積分,作為下次檢測的依據,并且將該應用的唯一標識符和檢測結果存儲到特征庫中。

圖1 基于云計算的Android惡意程序
1.2 工作流程
檢測系統的具體工作流程主要分為以下幾個步驟:
(1)信息生成器利用哈希算法生成Android應用的唯一標識符。
(2)信息匹配器將生成的標識符與特征庫中進行匹配,如果匹配成功,則直接顯示特征庫存儲的結果。否則,將應用提交給協同檢測模塊。
(3)協同調用器調用N個殺毒引擎檢測Android應用,并將檢測結果送到信息聚合器。
(4)信息聚合器根據檢測殺毒引擎的數量、安全策略、延時等條件,匯總各引擎提供的報告,并將匯總信息送到信息處理器。
(5)信息處理器根據信譽積分機制來確定最終的檢測結果,同時更新N個殺毒引擎的信譽積分。最后,將檢測結果存儲到特征庫中。
圖2為檢測系統各功能組件工作流程圖。

圖2 基于云計算的Android惡意程序協同
該系統主要由信息管理模塊和協同檢測模塊構成。
2.1 信息管理模塊
信息管理模塊是檢測系統中的核心模塊,主要包括信息生成器、信息匹配器、特征庫、信息聚合器、信息處理器。
2.1.1 信息生成器
信息生成器的主要任務是生成應用的標識符(UID)。由于Android應用具有嚴格的簽名機制,所以生成的UID具有唯一性。例如一個應用哈希后生成的UID,與該應用重新打包簽名后的UID是不同的。
2.1.2 信息匹配器
信息匹配器的主要任務是將哈希生成的唯一標識符與特征庫進行匹配。如果匹配成功,那么顯示特征庫中存儲的檢測結果。否則,將應用提交給協同檢測模塊。
2.1.3 特征庫的建立
面對大量的Android應用,需要優化系統,避免不必要的檢測。文中通過建立特征庫減少冗余的檢測時間。特征庫的建立有助于優化系統的檢測性能和提高系統整體的檢測速度。文中的特征庫利用python中的MySQLdb模塊[5]來建立,存儲形式如表1所示。

表1 特征庫存儲形式
2.1.4 信息聚合器
殺毒引擎的檢測過程存在明顯差異,在協同調用多個引擎時,檢測報告的生成時間并不同步,甚至沒有反饋報告。雖然N個殺毒引擎生成檢測報告的時間并不同步,但是信息聚合器可以利用一個子集來代替總集。這里總集代表全部檢測引擎的檢測報告。文中根據系統部署方案、檢測引擎的數量、安全策略和延時等指標選取子集。
信息聚合器中共聲明了三個關鍵參數:數量閾值、收集時間點和終止時間點。從收集時間點開始,如果接收的報告數量大于數量閾值,那么信息處理器將接收這些報告并終止程序;當時間到達終止時間點時,無論生成的報告數量是否大于閾值,這些報告都將被送到信息處理器。
2.1.5 信息處理器
信息處理器對接收到的檢測報告進行匯總,并生成最終檢測結果。在該階段,文中利用信譽積分機制確定最終檢測結果,同時根據該檢測結果與各引擎的檢測報告更新N個殺毒引擎的信譽積分。最后,將檢測結果存儲到特征庫中。
2.1.6 信譽積分模型
信譽積分代表了殺毒引擎的可信任程度。建立信譽積分機制的目的是根據歷史檢測信息,預測下次檢測的可信任程度。信譽積分機制的提出,有助于提高檢測系統的準確率。
文中設計的信譽積分模型[6-7]的具體思路是:將從信息聚合器發來的報告利用一次加權平均算法,以此確定最終的檢測結果。同時,把最終的檢測結果和各檢測報告進行對比,更新各引擎的信譽積分。
信譽積分機制的模型應遵循以下原則:
(1)當殺毒引擎的報告存在于檢測報告的子集中時,該引擎的信譽積分值才會更新。
(2)更新殺毒引擎的信譽積分值時,設Rinit為殺毒引擎的初始信譽值,Rx為更新后的值,而Rmax為信譽的最大值。三者應滿足條件Rinit≤Rx 信譽積分模型算法包括以下幾個方面: (1)加權平均決策法。 文中使用決策的方法對N個殺毒引擎[8-9]的檢測結果進行最終的識別判斷。加權平均決策法就是在不確定的情況下,憑借經驗對各個方案實施后的情況進行加權平均擇優,它能夠克服樂觀決策法和悲觀決策法的缺點。 將加權平均決策法應用到信譽積分模型中就是將每個殺毒引擎的信譽值作為其對應的權重,結合檢測出的結果進行加權平均計算。 檢測出為良性的取1,檢測出為惡意的取0,用F表示整個向量集F={f1,f2,…,fx};用W表示N個殺毒引擎的信譽值向量集W={R1,R2,…,Rx}。用加權平均決策計算表達式為: (1) (2)權值更新規則。 令原信譽值為Rx-1,新信譽值為Rx。將加權平均決策算法判定出的最終檢測結果與N個殺毒引擎的檢測結果進行對比。若檢測結果一致,便可以采用式(2)進行計算: (2) 若干次計算后Rx無限逼近100%,當達到99%之后變化不明顯。對n的選取上要考慮經過多少次達到99%,次數太少中間數據變化幅度大欠缺準確性。文中采用試差法確定參數n的值,經過多次數據計算得出次數K與n的關系為:K=2+4(n-1)。當n取8時,在第30次的變化幅度上接近0.001,基本上已經達到一個合理的變化范圍。因此n選取8,即: 檢測結果一致的,采用式(3): (3) 檢測結果不一致的,采用式(4): (4) 對于未給出檢測結果的殺毒引擎信譽值降低的幅度比結果顯示不一致的殺毒引擎的信譽值降低的幅度要多。 考慮到降低的幅度過小不如不檢測,但要給其留有一定的回升機會,降低的幅度亦不能過大。因此n選取4,既可以拉開層次,同時對信譽值的變化起到了保護作用。 對未給出檢測結果的,采用式(5): (5) 2.2 協同檢測模塊 協同檢測模塊的主要任務是調用N個殺毒引擎分析檢測Android應用,主要包括協同調用器和N個殺毒引擎集合。協同調用器管理N個殺毒引擎,而N個殺毒引擎則負責相關計算。 文中的協同檢測模塊利用OpenStack[10-11]技術來實現云計算平臺的部署。核心思想是利用虛擬化環境,在一臺物理主機上部署虛擬出的多個虛擬機來共同完成多項任務。同時,在OpenStack部署好的云環境下創建虛擬機并管理虛擬機。 3.1 實驗數據 從2014年3月7日到2014年6月30日,利用網絡爬蟲[12-14]程序從Android Malware Genome Project(北卡)、Droid Analytics(香港中文大學)和virusshare.com網站上爬取了27 593個Android應用程序樣本作為性能評估數據。同時,選取2 600個已知樣本來驗證系統準確率,其中訓練集600個,測試集2 000個。 3.2 訓 練 選取10個殺毒引擎作為訓練工具,利用訓練集進行訓練。隨后,對訓練情況進行總體的匯總,見表2。 表2 殺毒引擎訓練情況匯總表 經訓練可知,系統在檢測時能夠充分考慮當前殺毒引擎的可信程度以及最近幾次檢測時的狀態,而最終檢測結果的確定取決于殺毒引擎集合的決策以及各自信譽值的實際情況。同時,在10個殺毒引擎中,錯誤的檢測結果所占的比例最高達到了27.66%,表明單一引擎在檢測惡意程序時存在明顯不足。 3.3 測 試 將測試集分為10組,測試共持續30天,系統的平均檢出率為97.17%。從圖3中可以看出,系統最后趨于穩定,其檢出率漸漸趨近于97.2%,具有非常高的準確率。 圖3 系統測試檢出率散點圖 文中通過分析當前Android所面臨的安全威脅,結合國內外的研究現狀,以及分析現有的殺毒引擎綜合測試情況,設計并實現了基于云計算的Android惡意程序協同檢測系統。通過對協同檢測系統的相關性能進行訓練和測試,證明了文中所提出的模型、方法及相關算法的正確性。實驗中訓練和測試的檢測結果體現了該方法的優勢,基于協同的檢測方法具有極高的準確率。 [1] 曾健平,邵艷潔.Android系統架構及應用程序開發研究[J].微計算機信息,2011,27(9):1-3. [2] 李 佳.Android 平臺惡意軟件檢測評估技術研究[D].北京:北京郵電大學,2012. [3] Armbrust M,Fox A,Griffith R,et al.A view of cloud computing[J].Communications of the ACM,2010,53(4):50-58. [4] Wang L,von Laszewski G,Younge A,et al.Cloud computing:a perspective study[J].New Generation Computing,2010,28(2):137-146. [5] Dustman A.MySQLdb:a Python interface for MySQL[EB/OL].2010.http://mysqlpython.sourceforge.net/MySQLdb.html. [6] Huynh T D,Jennings N R,Shadbolt N R.An integrated trust and reputation model for open multi-agent systems[J].Autonomous Agents and Multi-agent Systems,2006,13(2):119-154. [7] 辛海濤.P2P網絡中信任模型的研究[D].武漢:武漢理工大學,2011. [8] Oberheide J,Cooke E,Jahanian F.CloudAV:N-version antivirus in the network cloud[C]//Proc of USENIX security symposium.[s.l.]:[s.n.],2008:91-106. [9] 羌衛中,秦 攀,鄒德清,等.云防御系統中多引擎檢測機制[J].武漢大學學報:理學版,2014,60(5):393-398. [10] Pepple K.Deploying OpenStack[M].[s.l.]:O'Reilly Media,Inc,2011. [11] Sefraoui O,Aissaoui M,Eleuldj M.OpenStack:toward an open-source solution for cloud computing[J].International Journal of Computer Applications,2012,55(3):38-42. [12] 周德懋,李舟軍.高性能網絡爬蟲:研究綜述[J].計算機科學,2009,36(8):26-29. [13] 李志義.網絡爬蟲的優化策略探略[J].現代情報,2011,31(10):31-35. [14] 趙茉莉.網絡爬蟲系統的研究與實現[D].成都:電子科技大學,2013. An Android Collaborative Malware Detection System Based on Cloud Computing HUANG Xing-li1,HAN Yan-long1,ZHANG Chang-sheng2,LIU Xiao-yan1,PAN Yong-fu1 (1.Northwestern Polytechnical University,Xi’an 710072,China;2.Wenzhou University,Wenzhou 325035,China) In order to detect Android malwares,an Android collaborative malware detection system is designed based on cloud computing.Introduction of the concept of cloud computing,Android application is detected through collaboratively callingNantivirusenginesincloudplatform.Thesystemmainlyconsistsofinformationmanagementmoduleandcollaborativedetectionmodule.TheapplicationandcharacteristicslibraryismappedwhendetectingAndroidapplications.Ifmatched,thesystemwilldisplaytheresultstoredinthecharacteristicslibrary;otherwise,itwillcallNantivirusenginestodetecttheapplication.Eventually,thesystemsummarizesthereportsfromNantivirusengines.Thecreditscoremechanismisutilizedtogettheresultwhichisfedbackandstoredtothecharacteristicslibrary.Theexperimentsshowthattheaveragedetectionrateofsystemis97.17%.Meanwhile,theperformanceandreliabilityishigh. Android;malwares;cloud computing;credit score mechanism 2015-11-16 2016-03-09 時間:2016-08-01 浙江省自然科學基金(LY14F020030);公益性技術應用研究計劃(2014C31079) 黃興利(1981-),男,碩士,研究方向為網絡安全;導師:慕德俊,教授,研究方向為信息安全。 http://www.cnki.net/kcms/detail/61.1450.TP.20160801.0842.016.html TP A 1673-629X(2016)08-0079-04 10.3969/j.issn.1673-629X.2016.08.017
3 實驗與結果


4 結束語