馮志峰
摘? 要:Android作為當(dāng)今最流行的操作系統(tǒng),已經(jīng)被世界上成千上萬的使用者所使用,但是正是基于Android天生開源的特性,讓很多開發(fā)者在開發(fā)app的過程中,可以利用系統(tǒng)或者是手機(jī)自身的權(quán)限申請(qǐng)以及目前市面上還不健全的應(yīng)用商店審核機(jī)制,開發(fā)惡意軟件從而危害到用戶的手機(jī)內(nèi)的個(gè)人資料和隱私。在此篇論文中,我們提供了一種能夠檢測(cè)惡意軟件的機(jī)制并加以實(shí)踐,通過提取Android APK的權(quán)限[1]申請(qǐng)作為特征點(diǎn),通過已經(jīng)使用大量提取的數(shù)據(jù)訓(xùn)練完的SVM模型對(duì)軟件做檢測(cè),根據(jù)實(shí)驗(yàn)結(jié)果,我們的模型對(duì)于惡意軟件的檢測(cè)率高達(dá)89%-92%之間,符合研究預(yù)期。
關(guān)鍵詞:大數(shù)據(jù);機(jī)器學(xué)習(xí);病毒軟件檢測(cè);SVM模型
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號(hào):2095-2945(2020)18-0018-03
Abstract: Android, as the most popular operating system, has been used by thousands of users in the world, but it is based on the natural open source feature of Andoird that many developers can make use of the permission application of the system or mobile phone and the imperfect application store audit mechanism in the market to develop malicious software to endanger the personal data and privacy of users in the process of developing app. In this paper, we provide a mechanism that can detect malicious software and put it into practice. By extracting the permission of Android APK[1] as a feature point, we use the SVM model trained with a large number of extracted data to detect the software. According to the experimental results, the detection rate of our model for malicious software is as high as 89%, which is in line with the research expectations.
Keywords: big data; machine learning; virus software detection; SVM model
1 概述
目前對(duì)于Android應(yīng)用程序的相關(guān)研究有相當(dāng)多的技術(shù)方向,隨著機(jī)器學(xué)習(xí)以及大數(shù)據(jù)分析的趨勢(shì)越來越火,從早期的Android應(yīng)用程序單一的解包分析到現(xiàn)在多維度人工智能分析,這些技術(shù)的核心就是通過檢測(cè)以及修補(bǔ)Android應(yīng)用程序的在手機(jī)中運(yùn)行整個(gè)周期中所存在的設(shè)計(jì)缺陷和漏洞,代碼的書寫錯(cuò)誤,運(yùn)行異常等,主要可以分為三類方向:(1)靜態(tài)代碼分析;(2)動(dòng)態(tài)代碼分析[2];(3)運(yùn)行大數(shù)據(jù)機(jī)器學(xué)習(xí)的方法[3]進(jìn)行分析。根據(jù)我們的調(diào)查和了解,支持向量機(jī)(Support vector machine)作為目前機(jī)器學(xué)習(xí)中最為常用而且有用的手段,提供了良好的分類性能,與其他機(jī)器學(xué)習(xí)的方法相比,應(yīng)用到Android安全檢的工程當(dāng)中更具有它的優(yōu)勢(shì),本文就是通過分析并且提取Android 軟件中的權(quán)限列表作為特征點(diǎn),因?yàn)檫@些特征點(diǎn)可以比較形象地告訴我們這款app之后可能潛在的行為,所以通過我們對(duì)于這些行為的分析,可以比較準(zhǔn)確地判斷這款app是否為惡意軟件的可能性。
2 研究步驟
2.1 選擇特征點(diǎn)
如果我們要對(duì)每一個(gè)app檢測(cè)判斷它們是否是惡意的軟件,第一步就是對(duì)app進(jìn)行分析。經(jīng)過我們對(duì)大量已經(jīng)存在的惡意軟件進(jìn)行解包分析之后,我們發(fā)現(xiàn)大多數(shù)的惡意軟件都是通過訪問用戶的敏感數(shù)據(jù),竊取用戶的隱私和拒絕訪問設(shè)備的功能來危害用戶。許多的Android惡意軟件在用戶程序退到后臺(tái)之后,偷偷在后臺(tái)運(yùn)行,根據(jù)應(yīng)用的不同,大致上可以分為三類,第一類惡意軟件的作答基本上都是通過調(diào)用后臺(tái)系統(tǒng)中撥打電話的api從而來實(shí)現(xiàn)撥打電話發(fā)送服務(wù)注冊(cè)的簡(jiǎn)訊,攔截服務(wù)確認(rèn)的簡(jiǎn)訊,以及自動(dòng)聯(lián)網(wǎng)下載強(qiáng)制推送廣告。第二類的惡意軟件通常都是在用戶給予apk權(quán)限之后,默默在后臺(tái)手機(jī)用戶的地理位置訊息,聯(lián)系人列表等敏感信息,從而上傳到指定的服務(wù)器中。第三類的惡意軟件會(huì)去獲取Android中最高的root權(quán)限,從而在未經(jīng)使用者同意的情況下刪除更改用戶的數(shù)據(jù),以及其他更加危險(xiǎn)的行為,因此我們選定使用應(yīng)用程序中的權(quán)限作為特征點(diǎn)。
2.2 提取特征點(diǎn)
在2.1中我們已經(jīng)確定使用apk中的permission作為特征點(diǎn),在這一節(jié)中我們來介紹如何提取特征點(diǎn)。
我們知道每一款apk檔所有的權(quán)限申請(qǐng)都在一個(gè)名為AndroidManifest.xml檔中,所以我們需要處理xml的檔同時(shí)考慮到在資料收集階段,我們會(huì)收集上萬筆apk作為data sample(在3.1中會(huì)提到),所以我們需要一個(gè)可以批量處理apk檔并且獲取其中的permission list。我們最終選取使用Androguard 這款開源工具來作為我們的批量處理apk的工具。