曹敏志
摘 要:文章提出一種基于系統(tǒng)調(diào)用功能的Android惡意軟件檢測方法。通過構(gòu)建Android系統(tǒng)應(yīng)用程序數(shù)據(jù)文件保護(hù)機(jī)制,針對(duì)手機(jī)病毒、惡意軟件損害及木馬入侵等安全隱患,設(shè)計(jì)了一種專用的基于系統(tǒng)調(diào)用的Android惡意軟件檢測架構(gòu)。結(jié)合系統(tǒng)調(diào)用頻數(shù)特征,描述應(yīng)用程序執(zhí)行時(shí)的非法行為,并以kNN算法為基礎(chǔ),結(jié)合實(shí)例對(duì)某Android系統(tǒng)手機(jī)惡意軟件進(jìn)行檢測分析。
關(guān)鍵詞:系統(tǒng)調(diào)用;Android系統(tǒng);惡意軟件;檢測
中圖分類號(hào):TP309.2 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2018)02-0193-02
Abstract: This paper presents an Android malware detection method based on system call function. Through the construction of Android system application data file protection mechanism, aiming at mobile phone virus, malicious software damage and Trojan invasion and other security risks. A special Android malware detection architecture based on system call is designed. According to the characteristics of system call frequency, this paper describes the illegal behavior when the application program is executed, and based on the kNN algorithm, analyzes the malware of a mobile phone in a Android system with examples.
Keywords: system call; Android system; malware; detection
Android系統(tǒng)自從2007年11月5日問世以來,其一直以開源移動(dòng)操作系統(tǒng),基于“software stac”架構(gòu)及Linux內(nèi)核、Dalvik虛擬機(jī)、數(shù)據(jù)庫及各種應(yīng)用程序?yàn)榛A(chǔ),為用戶提供移動(dòng)終端智能服務(wù)[1]。但隨著Android系統(tǒng)快速發(fā)展,基于Android平臺(tái)的應(yīng)用程序也逐漸增多,其成為眾多移動(dòng)終端惡意軟件開發(fā)者攻擊的目標(biāo),使智能Android系統(tǒng)移動(dòng)終端可能遭受的威脅與非法攻擊安全隱患越來越多,導(dǎo)致用戶信息資料失竊、隱私被泄漏及惡意扣費(fèi),甚至?xí)鼓承┸浖欢劝c瘓。
1 問題的提出
通常在對(duì)手機(jī)惡意軟件進(jìn)行分析時(shí),主要采用“靜態(tài)”與“動(dòng)態(tài)”分析兩種方法,結(jié)合惡意攻擊行為進(jìn)行判斷,結(jié)合系統(tǒng)安全檢測記錄分析惡意未知代碼。無論靜態(tài)還是動(dòng)態(tài)檢測分析,均需事先對(duì)惡意行為特征進(jìn)行收集與分析。該方法難以識(shí)別特殊惡意行為特征。倘若軟件開發(fā)者采用加殼、偽裝等方法一旦改變軟件特征,則很難對(duì)其中存在的惡意損害風(fēng)險(xiǎn)進(jìn)行檢測與識(shí)別。對(duì)此,為了彌補(bǔ)上述檢測技術(shù)缺陷,本文基于系統(tǒng)調(diào)用的Android惡意軟件檢測方法,結(jié)合實(shí)例對(duì)其檢測效果進(jìn)行分析。
2 基于系統(tǒng)調(diào)用的Android惡意軟件檢測概述
通常情況下,Android系統(tǒng)為每位智能用戶的每個(gè)應(yīng)用程序均分配了唯一的LinuxID,且通過創(chuàng)建沙箱以保證用戶應(yīng)用程序免受外來干擾。在此安全機(jī)制下,用戶Android系統(tǒng)文件訪問控制系統(tǒng)中每個(gè)文件由9個(gè)訪問權(quán)限位,分別與其它用戶、文件擁有者所在用戶組及文件擁有者三種用戶權(quán)限所對(duì)應(yīng)。在此過程中,Android系統(tǒng)中的MMU(內(nèi)存管理單元)負(fù)責(zé)虛擬與物理地址間的映射,確保每個(gè)應(yīng)用服務(wù)進(jìn)程均有屬于自己的獨(dú)立地址空間,并通過設(shè)置內(nèi)存訪問權(quán)限,保護(hù)用戶應(yīng)用軟件服務(wù)進(jìn)程不受惡意軟件損害。
3 基于系統(tǒng)調(diào)用的Android惡意軟件檢測架構(gòu)
隨著Android智能手機(jī)全面普及,其功能不斷增多,無線上網(wǎng)、電子交易、郵件及社交、電商交易服務(wù)等,都需通過智能終端來完成。但其安全性不斷降低,手機(jī)中的惡意軟件也相繼出現(xiàn),如手機(jī)病毒、木馬及拒絕服務(wù)供給等,都影響了智能手機(jī)用戶正常使用。用戶隱私被竊取,惡意軟件開發(fā)者可輕易修改甚至解包用戶Android應(yīng)用商店下載的程序壓縮包。這種非法行為不僅侵犯了原程序開發(fā)者,同時(shí)也對(duì)用戶信息安全造成了很大影響。
針對(duì)以上現(xiàn)象,本研究設(shè)計(jì)了基于系統(tǒng)調(diào)用的惡意軟件檢測架構(gòu),將用戶手機(jī)移動(dòng)終端對(duì)未知應(yīng)用程序的檢測工作轉(zhuǎn)移到系統(tǒng)服務(wù)器端,從而使系統(tǒng)服務(wù)器能夠收集更多移動(dòng)終端的處理數(shù)據(jù),以實(shí)現(xiàn)全面對(duì)用戶手機(jī)移動(dòng)終端惡意軟件程序進(jìn)行檢測、分析,減少對(duì)用戶手機(jī)終端系統(tǒng)資源的占用,加快智能手機(jī)運(yùn)行速度,減緩電量消耗。
本系統(tǒng)架構(gòu)主要將監(jiān)控Linux內(nèi)核系統(tǒng)調(diào)用的應(yīng)用程序安裝于模擬器或用戶Android手機(jī)中。該程序服務(wù)會(huì)自動(dòng)于系統(tǒng)后臺(tái)啟動(dòng),并采用“Strace”工具,對(duì)用戶手機(jī)端相關(guān)應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的系統(tǒng)調(diào)用數(shù)據(jù)進(jìn)行采集,然后將其在文件中存儲(chǔ),并基于Internet向系統(tǒng)遠(yuǎn)程服務(wù)器發(fā)送。在此架構(gòu)下,系統(tǒng)需通過AM.RAPI類調(diào)用監(jiān)控程序,對(duì)用戶相關(guān)應(yīng)用軟件程序包名及進(jìn)程號(hào)PID等正在運(yùn)行的進(jìn)程信息等進(jìn)行獲取。在此基礎(chǔ)上,通過調(diào)取“Strace”相關(guān)命令,對(duì)系統(tǒng)調(diào)用的應(yīng)用軟件進(jìn)程服務(wù)信息相關(guān)命令進(jìn)行執(zhí)行。當(dāng)系統(tǒng)遠(yuǎn)端服務(wù)器收到發(fā)送的文件后,會(huì)自動(dòng)進(jìn)行信息分析與處理,由此生成系統(tǒng)調(diào)用向量。然后,采用“WEKA”數(shù)據(jù)挖據(jù)軟件,基于系統(tǒng)調(diào)用頻數(shù)及kNN分類算法,對(duì)系統(tǒng)正常與異常向量進(jìn)行準(zhǔn)確識(shí)別。一旦系統(tǒng)服務(wù)器檢測到用戶智能終端應(yīng)用程序中含有惡意行為向量類中的向量時(shí),就會(huì)向用戶及時(shí)發(fā)送安全警告,并通知用戶卸載該惡意軟件程序,以保證用戶系統(tǒng)安全。endprint
4 基于系統(tǒng)調(diào)用的Android惡意軟件檢測實(shí)例分析
4.1 調(diào)用系統(tǒng)執(zhí)行應(yīng)用軟件程序頻數(shù)
本研究從某網(wǎng)站下載Android手機(jī)惡意軟件樣本,選擇指紋屏保對(duì)及其對(duì)應(yīng)版本號(hào)相同且?guī)в蠵JApps病毒的指紋屏保惡意軟件安裝并啟動(dòng),后臺(tái)聯(lián)網(wǎng),發(fā)現(xiàn)用戶隱私信息被泄漏;啟動(dòng)應(yīng)用服務(wù)訂購SP業(yè)務(wù),將運(yùn)營商訂購回復(fù)短信屏蔽后,發(fā)現(xiàn)用戶話費(fèi)在毫不知情的情況下被惡意扣?。煌瑫r(shí),發(fā)現(xiàn)用戶上網(wǎng)流量被惡意程序消耗,計(jì)算器程序無法啟動(dòng),用戶手機(jī)存儲(chǔ)讀寫服務(wù)持續(xù)重啟,由此判斷用戶智能終端遭受惡意軟件攻擊。
于是,啟動(dòng)本研究設(shè)計(jì)的基于系統(tǒng)調(diào)用的Android惡意軟件檢測架構(gòu),基于系統(tǒng)調(diào)用程序的頻數(shù)特征,判斷程序行為是否確實(shí)存在異常。Linux系統(tǒng)內(nèi)核空間與用戶空間,在Linux系統(tǒng)中,當(dāng)系統(tǒng)調(diào)用程序時(shí),用戶程序會(huì)由用戶態(tài)切換到內(nèi)核態(tài),并執(zhí)行相應(yīng)的內(nèi)核態(tài)函數(shù)。完成交互式操作后,系統(tǒng)會(huì)返回至用戶態(tài)。在此空間內(nèi),系統(tǒng)通過接口調(diào)用,使用戶所有應(yīng)用程序資源均在內(nèi)核控制下實(shí)現(xiàn)交換。
因Android系統(tǒng)內(nèi)存管理、安全加密管理與進(jìn)程管理等核心服務(wù)均需依賴于Linux內(nèi)核,從而保證系統(tǒng)上層相關(guān)訪問請(qǐng)求均需經(jīng)過系統(tǒng)調(diào)用接口。在此環(huán)境下,系統(tǒng)調(diào)用時(shí)獲取應(yīng)用程序運(yùn)行時(shí)的信息都會(huì)被系統(tǒng)調(diào)用接口所捕獲。據(jù)此即可基于“trace工具”,收集每個(gè)應(yīng)用程序執(zhí)行時(shí)的行為數(shù)據(jù)。本研究從Linux2.6內(nèi)核中萃取了如下10個(gè)具有代表性的系統(tǒng)調(diào)用,然后結(jié)合其啟動(dòng)調(diào)用頻數(shù)特征,采用kNN分類算法分析特征向量屬性。
4.2 引入kNN分類算法分析離待測向量最近向量的所屬類別
本文采用歐式距離表示向量之間的相似度,kNN分類算法公式如下:
式中:dist(x,y)表示特征向量x,y間的歐式距離距離。
每個(gè)Android應(yīng)用程序都會(huì)將數(shù)據(jù)分為“惡意”與“正?!眱深?。惡意程序下產(chǎn)生的所有向量歸結(jié)為惡意行為向量量類。在weka下采用kNN分類算法將得到的系統(tǒng)調(diào)用特征向量進(jìn)行分類,k=1,然后進(jìn)行檢測。
5 結(jié)束語
綜上所言,在智能手機(jī)逐漸普及的社會(huì)環(huán)境下,惡意軟件越來越多。對(duì)于Android系統(tǒng)而言,需采用有效的安全措施,阻止惡意軟件對(duì)手機(jī)系統(tǒng)造成損害。本文采用系統(tǒng)調(diào)用的Android惡意軟件檢測方法進(jìn)行異常檢測,結(jié)果表明,該方法能夠準(zhǔn)確區(qū)分含有惡意程序的應(yīng)用軟件與正常軟件,并通過檢測結(jié)果趨勢分析,自動(dòng)向用戶發(fā)出警告,以增強(qiáng)智能手機(jī)Android系統(tǒng)運(yùn)行安全性。
參考文獻(xiàn):
[1]鄭忠偉,歐毓毅.基于圖模式與內(nèi)存足跡的Android惡意應(yīng)用與行為檢測[J].計(jì)算機(jī)應(yīng)用研究,2017,12:1-7.
[2]陳鵬,趙榮彩,韓金,等.基于動(dòng)靜結(jié)合的Android惡意代碼行為相似性檢測[J].計(jì)算機(jī)應(yīng)用研究,2017,05:1-2.
[3]姜海濤,郭雅娟,陳昊,等.一種混合的Android惡意應(yīng)用檢測方法[J].計(jì)算機(jī)應(yīng)用研究.
[4]劉魁.Android平臺(tái)的一種數(shù)據(jù)安全隔離方案[J].科技創(chuàng)新與應(yīng)用,2016(27):48-49.
[5]閆廣華,呂曉晨,郝小輝,等.淺談網(wǎng)絡(luò)攻擊與終端安全防護(hù)[J].科技創(chuàng)新與應(yīng)用,2014(35):72.endprint