當前位置:
首頁 > 新聞 > 安卓惡意軟體檢測:系統調用日誌+機器學習演算法

安卓惡意軟體檢測:系統調用日誌+機器學習演算法

本文內容源自Sanya Chaba等人的學術論文《Malware Detection Approach for Android systems Using System Call Logs》。

基於簽名的靜態檢測技術廣泛應用於安卓平台的惡意應用檢測。該方法主要是提取簽名數據並與病毒等惡意軟體樣本的簽名進行比對,這種方法不能檢測出未知的惡意應用。研究人員提出一種新的基於系統調用日誌+機器學習演算法的方法進行安卓惡意軟體檢測。

背景

惡意軟體的分類主要有:病毒、蠕蟲、木馬、廣告軟體、犯罪軟體、攻擊工具等。

研究人員已經建立了兩種惡意軟體檢測的方法。

一是靜態分析,研究人員在不運行惡意軟體的情況下執行惡意軟體。靜態分析中用到的技術包括反編譯、模式識別、解密等。因為未知的惡意應用因為使用混淆、加密等技術會使簽名不同,所以靜態分析方法不能識別未知的惡意軟體。

二是動態分析,動態分析方法可以檢測應用的行為,比如網路訪問、運行時發送簡訊和打電話等。動態分析是在沙箱環境下運行的,這樣可以防止惡意軟體感染真實的運行環境。

惡意軟體檢測

因為安卓本身加入了一些新的特性,加上手機本身的一些限制,用傳統方法進行手機惡意軟體檢測很難保證成功率和效率。

研究人員提出一種使用系統調用日誌進行惡意軟體檢測的方法。該方法一共分為三步,

1. 生成系統調用日誌。2. 卡方 (Chi-square)過濾,並生成數據集。3. 利用機器學習演算法進行檢測。

研究人員手機了66個應用的系統調用個日誌信息,生成的系統調用日誌數據集中記錄了每個應用的19個特徵。多特徵融合能增加檢測的精確度。研究人員使用的機器學習演算法有樸素貝葉斯演算法、隨機森林演算法和隨機下降梯度演算法(Stochastic Descent Gradient Algorithm)。機器學習的結果會輸出到Weka軟體中進行分析。

註:Weka(Waikato Environment for Knowledge Analysis)是來之紐西蘭懷卡託大學的一款開源軟體,主要是數據挖掘方面的一些演算法的集合。

系統調用日誌生成

首先,要安裝沙箱模擬器Genymotion來運行每個應用,每個應用運行5分鐘左右來觀察應用想行為。系統生成系統調用日誌的命令是strace,Python腳本的運行流程圖為:

應用卡方 (Chi-square)過濾演算法

用每個應用的系統調用日誌創建數據集,數據集包含系統調用信息,有沒有系統調用有1/0來表示。演算法1如下圖所示,演算法複雜度為O(n)。

數據集創建後,為了改善檢測的精確度,需要對提取的特徵進行過濾,過濾的演算法使用的卡方Chi square演算法。演算法2就是用來實現卡方過濾機制的演算法。

研究人員從結果中挑選了18個特徵,並加入到惡意軟體檢測的特徵中。

機器學習演算法

創建的數據集作為3個機器學習演算法的輸入。機器學習演算法有樸素貝葉斯演算法、隨機森林演算法和隨機下降梯度演算法(Stochastic Descent Gradient Algorithm)

下圖是樸素貝葉斯分類的事件流。

輸入到隨機森林演算法中後,數據集會被劃分為隨機的子集,然後每個子集會有一個決策樹。根據這些結果,把決策樹聚合在一起。這樣就可以檢測未知或惡意的應用樣本的了。

實驗結果

機器學習演算法的結果會輸出到Weka中進行分析,分析結果如圖所示,樸素貝葉斯分類演算法的正確率為93.75%,隨機森林分類演算法的正確率為93.84%,SGD演算法正確率為95.5%。

結論

文章提出了一種利用系統調用日誌進行惡意軟體檢測的方法,在生成了應用的系統調用日誌之後,使用了卡方演算法對特徵進行過濾,然後使用樸素貝葉斯、隨機森林、隨機下降梯度演算法三種機器學習演算法進行檢測。實驗結果說明,檢測的正確率很高,SDG演算法的檢測正確率大於95%。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

以溯源為目的蜜罐系統建設
如何使用MitmAP創建一個惡意接入點
嘶吼網站3.0新版上線:專業的內容都在這裡
Invoke-PSImage利用分析

TAG:嘶吼RoarTalk |