Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware

Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware

一、引言

這篇文章的作者分析了已有的惡意應用檢測機制的侷限性,提出大多數漏報的情況是由於大量的惡意應用是通過重打包得來的,很多基於機器學習的檢測技術不能很好的檢測出這類樣本,提出了一種結合程序分割和機器學習來檢測異質代碼團的思想,實驗結果發現所提出的方法能夠降低將近30倍的漏報率

二、重打包研究現狀簡單介紹

重打包顧名思義就是對Android應用軟件進行重新打包,然後簽名從新發布到各大應用市場,重打包應用大量存在於應用市場,這主要的原因有三:

  • 反編譯、靜態分析技術很成熟,重打包技術門檻低,通過重打包,惡意開發者可以向APP中嵌入惡意代碼或者廣告來達到竊取用戶隱私、靜默安裝、以及惡意扣費等目的;

  • Android應用反重打包機制不夠先進,安全防護能力低,造成重打包的難度降低;

  • 應用市場審查不到位,沒有良好的審查措施或者技術針對成千上萬的移動應用進行審覈;

重打包的過程如下圖所示:

2.1 重打包目標:

  • 流行度比較高的應用;藉助應用的流行程度,達到廣泛傳播的目的

  • 第三方庫;第三方庫開源,代碼很多時候未被完整的混淆,便於閱讀插入惡意負載,同時第三方庫也具有一定的流行度

2.2 已有研究:

DroidMoss【1】和DNADroid【2】 主要通過成對的相似度計算來檢測重打包的app,這種方法對於成千上萬的應用市場來說,檢測的時間複雜度是很高的

DNADroid主要通過計算程序依賴圖之間的相似度

DroidMoss根據程序的操作碼來計算模糊哈希值,以此來構建app的指紋庫,用作相似度比較

作者【3】使用程序依賴圖的幾何特性來衡量兩個應用程序之間的相似性的方法,然後計算兩個應用程序的相似性得分。

【4】和【5】提出以APK的資源文件內容爲特徵提取對象,包括GUI的描述文件等,以此來計算應用間的相似度,檢測重打包

2.3 基於機器學習的檢測惡意應用的過程:

已有基於機器學習的惡意應用檢測,主要是通過提取應用中使用的權限、敏感API、常量字符、URL等特徵構造特徵向量,以此來檢測惡意應用。

三、現有研究的不足與挑戰

3.1 限制一:similarity-based detection

(1) Relies on the availability of original apps for comparison
(依賴於與原始APP進行比較)

(2) The pairwise based similarity computation is of quadratic complexity
(N個APK檢測時間複雜度爲o(N^2),也就是要成對計算相似度)

3.2 限制二:general purpose detection

基於機器學習的惡意檢測方案

(1)文章中作者對已有現狀分析了之後就總結提了一句話,就是說現在的惡意檢測當中大多數漏檢的案例基本都是由於重打包的惡意引用造成的

(2)依據是什麼呢?我覺得一個比較直觀的理解就是:對重打包的惡意應用提取特徵時候,現有的方案主要站在整個APP的角度提取特徵,這樣會帶來一個問題就是很多時候APP的整體行爲特徵會掩蓋惡意負載的行爲特徵,可能是造成誤報一個重要原因

四、文章中作者提出的檢測方案

4.1 Workflow

具體的工作流程分爲三個步驟,預處理,代碼區域分割,特徵提取與訓練

  • 步驟一:預處理

利用已有的反編譯工具,對APK進行反編譯,得到APK的smali代碼

  • 步驟二:代碼區域分割

(1)首先使用Androguard進行構建程序class級別的依賴圖,類與類之間的依賴主要包括調用依賴、字段依賴以及ICC依賴(組件間通信),這些依賴可以理解圖的邊

(2)然後使用networkX圖分析工具進行圖的可達性分析,將依賴圖分割成具有相對獨立數據流/控制流的代碼團;基於獨立的代碼團找到其函數級別的調用關係圖;

  • 步驟三:特徵提取與訓練

對分割得到的各個代碼團,主要提取以下三類特徵:

  • User Interaction Features(與用戶進行交互的函數特徵、頻繁度等)

    user-related functions and the graph-related impact features

  • Sensitive API Features(敏感API)

    sensitive Java and Android APIs

  • Permission Request Features(請求的權限信息)

    permissions used in each region

對訓練集進行訓練,得到分類器,分類的評判標準(得分函數)是使用分類爲惡意的代碼團佔該應用所有代碼團總數的比例,該比例超過一定閾值,則判斷爲重打包的惡意應用

五、實驗評估結果

參考文獻

【1】Wu Zhou, Yajin Zhou, Xuxian Jiang, and Peng Ning. Detecting repackaged smartphone applications in third-party android marketplaces.

【2】Jonathan Crussell, Clint Gibler, and Hao Chen. Attack of the clones: Detecting cloned applications on android markets

【3】Kai Chen, Peng Liu, and Yingjun Zhang. Achieving accuracy and scalability simultaneously in detecting application clones on android markets.

【4】Yury Zhauniarovich, Olga Gadyatskaya, Bruno Crispo, Francesco La Spina, and Ermanno Moser. Fsquadra: Fast detection of repackaged applications

【5】Yuru Shao, Xiapu Luo, Chenxiong Qian, Pengfei Zhu, and Lei Zhang. Towards a scalable resource-driven approach for detecting repackaged android applications.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章