Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware論文閱讀筆記


於這一周閱讀了ccs2020最新論文Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware,做了一些筆記。

Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware (用 API 語義加強現有的分類器以檢測不斷改進的安卓惡意軟件)

1.現有的惡意軟件檢測分類器的問題:

performance degrades 當 malware evolution

使用 online learning, retraining, active learning 等技術需要大量新的惡意軟件標記並消耗大量人力資源

2.本文的創新點:

提出 APIGraph (a framwork)

使用 API 語義的相似性,即為 (similarity information among evolved Android Malware)來減緩 performance degrades

similarity information: 語義上等價或類似的API使用

3. 核心

找到不同實現上的語義的相似性 (semantic similarity despite the different implementation)

建立一個 relation graph:

  • node: entity
  • edge: relation between two entities

隨后從圖中提取出 API 語義 (將每個 API entity 轉變為一個 embedding),並將類似語義的進行分組為 API clusters (APIGraph 的 result)

使用指標 AUT (area under time) (在 TESSERACT 中提出:TESSERACT 使用 active learning 選擇一小部分具有代表性的改進的安卓惡意軟件)

作用: 1. 減少了人工標記所需要的勞動量

​ 2.減緩了模型老化,即 performance degrades

將 APIGraph 應用於四個安卓惡意軟件檢測器上並進行測試,分別為 MAMADROID, DROIDEVOLVER (通過 online learning 持續引入新的惡意軟件樣本), BREBIN, DREBIN-DL

4.圖的結構

分為兩部分:

  1. 建立 API Relation Graph: collecting Android API Documents related to a certain API level 並提取 entities 和 relations
  2. 使用 API Relation Graph 去加強現有的惡意軟件檢測技術
    • 將所有 entities 轉換為 vector (使用 graph embedding algorithm),
    • 兩個 entities 之間的 vector difference in the embedding space 即為兩個 entities 之間的語義
    • 使用優化使兩個有相同關系的 entities 的 vector 變為類似的 (similar)
    • 聚類語義類似的 APIs 生成 clusters

5.圖的建立與使用

(1)API Relation Graph (異構圖,有向圖)

G = < E, R> (entities, relations)

entity types: method, class, package, permission

relation types: ten types

使用 API reference document (有明顯的分層結構)

(2)提取 entity

從 API 文件中提取 entity,API 文件以 class 為分類 (organized in class)

1.從每個 per-class document file 提取 class entity

2.從完整 class name 中拆分出 package name (i.e. package entity)

3.phase per-class document files 為 Document Object Model (DOM) 並從中抽取屬於某一個 class 的 method entity

4.phase the manifest file 中的所有 permissions 並從中抽取 permission entity

(3)提取 relation

  • 從 structured texts 中提取 relation (6種)

    直接進行文件解析

  • 從 unstructured texts 中提取 relation (4種)

    使用 NLP 的一種基於模型關系配對的方法

    • 手動生成配對模型 (template set)

      手動檢測1%的 API 文件研究描述 relation 的 pattern

    • 迭代擴展 template set

      用半自動策略迭代生成 template set

    • 使用 NLP 進行加強的模型匹配

      將段落拆分為句子,然后使用 NLP 對每個句子進行預處理:

      • 提取主干:將所有單詞化為基本遠行
      • 基於 declaration 的指代消解 (co-reference resolution):指代消解指在文本中確定代詞指向哪個名詞短語
      • entity 名稱規范化:用 exact value 替代所有的多態名稱

      將預處理后的句子與模型進行匹配

(4)使用 API Relation Graph

將圖中的 API 轉換為 embedding representation (即 vector), 並將這些 embeddings 分類為 clusters

使用 TransE 進行轉換

  • 首先提取出 permission entity, 並且添加基於 permission 的新的 relation

  • 將圖中分實體 e 和關聯 r 分別用向量 Le和 Lr表示

  • 使用 TransE 算法對每個三元組 (h,r,t)最小化 \({||Lh + Lr - Lt||}^2_{2}\) (h,t 為 entities, r 為 relation)

  • 使用 K-Means 算法將 embeddings 分組,使用每個 cluster 中心的 embedding 來表示這個 cluster,並用 Elbow 算法決定 cluster 的數目

對於這四種 classifier, 將其中的 API feature format 替換為 cluster 進行改進

6.測試與討論

  1. 模型可維護性分析
  2. 模型可持續性分析
  3. 特征空間穩定性分析
  4. 同一聚類中的相似程度分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM