Skip to content

Android Malware Detection based on Factorization Machine #4

Description

@palloc

公開日

2018-03-30

1. 概要

androidマルウェアの検知をFactorization machineを使って行うと、高い精度を達成できた。特徴として、API呼び出しや許可などをマニフェストファイルやソースコードから抽出した。

2. 新規性・差分

マルウェア検知は、動的解析、静的解析の2パターンある。

動的解析は、高い精度が出るが、実際に動かさないといけないのと、関係ないパスが含まれていて時間がかかる可能性があるなどの問題点がある。

静的解析は、特徴抽出、分類の2段階があり、分類で機械学習を使う先行研究がある。(k-meansやSVM)
また、近年では、動的解析と静的解析を両方使う研究がされている。

この論文では、特徴間の関係をモデル化可能なFactorization Machine(FM)を用いることで、高い精度を達成した。

3. 手法

4つのパートに分けられる。

Unpacking and Decompile

apkを解凍して、dexをデコンパイルする。

Feature Extraction

まずマニフェストファイルから以下の4つの機能を抽出する。

  • App components
  • Hardware features
  • Permissions
  • Intent filter

次に、デコンパイルしたコードから、以下の3つの機能を抽出する。

  • Restricted APIs
  • Suspicious APIs
  • Used permissions

Encoding

計7つの特徴をエンコードする際、死ぬほど大きいスパース行列とかになるので、t-SNEで次元圧縮する。
(エンコードはone-hot)

Prediction

相互作用する特徴があったりするので、SVMよりもFMの方がいい気がするのでFMを使ってみた。

4. 結果

Algorithm FM SVM NB-Gaussian NB-Bernoulli NB-Multinomial MLP
Precision% 99.91 95.62 90.86 90.53 96.25 99.91
Recall% 99.01 92.35 99.37 99.82 99.28 99.64
F1% 99.46 93.96 94.93 94.95 97.74 99.77
FPR% 0.09 4.19 9.90 10.35 3.84 0.09

普通のAnti-Virusのプロダクト10個と比較した結果:

Scanner FM AV1 AV2 AV3 AV4 AV5 AV6 AV7 AV8 AV9 AV10
Precision% 99.91 99.91 99.64 62.84 99.91 59.03 99.63 50.09 99.84 97.78 61.42
Recall% 99.01 98.74 99.46 99.10 99.28 100.0 97.21 99.91 54.64 94.96 100.0
F1% 99.46 99.32 99.55 76.91 99.59 74.24 98.41 66.73 70.62 96.35 76.10
FPR% 0.09 0.089 0.357 58.073 0.089 68.778 0.357 98.66 0.089 2.141 62.27

速度も申し分無いやで。

5. 議論

FPGAとか使うともっと早くなりそうだから誰かやってね。

6. コメント

FMはnetflixのレコメンドとかで使われてた気がする。気になる方はこちらどうぞ

論文情報・リンク

https://arxiv.org/pdf/1805.11843.pdf

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions