[論文レビュー] MaMaDroid: Detecting Android Malware by Building Markov Chains of Behavioral Models (Extended Version)
MaMaDroid は、API 呼び出しシーケンスを抽象化し、ファミリーやパッケージ、クラスごとにグループ化した上で、マルコフ連鎖を用いてアプリの行動をモデル化する静的解析ベースの Android マルウェア検出システムである。これにより、API の進化に対する耐性が向上する。未学習のマルウェアに対して最大 F-スコア 0.99 を達成し、1 年後には 0.86、2 年後には 0.75 の F-スコアを維持する。DroidAPIMiner などの最先端手法を上回る性能を発揮する。
As Android has become increasingly popular, so has malware targeting it, thus pushing the research community to propose different detection techniques. However, the constant evolution of the Android ecosystem, and of malware itself, makes it hard to design robust tools that can operate for long periods of time without the need for modifications or costly re-training. Aiming to address this issue, we set to detect malware from a behavioral point of view, modeled as the sequence of abstracted API calls. We introduce MaMaDroid, a static-analysis based system that abstracts the API calls performed by an app to their class, package, or family, and builds a model from their sequences obtained from the call graph of an app as Markov chains. This ensures that the model is more resilient to API changes and the features set is of manageable size. We evaluate MaMaDroid using a dataset of 8.5K benign and 35.5K malicious apps collected over a period of six years, showing that it effectively detects malware (with up to 0.99 F-measure) and keeps its detection capabilities for long periods of time (up to 0.87 F-measure two years after training). We also show that MaMaDroid remarkably outperforms DroidAPIMiner, a state-of-the-art detection system that relies on the frequency of (raw) API calls. Aiming to assess whether MaMaDroid's effectiveness mainly stems from the API abstraction or from the sequencing modeling, we also evaluate a variant of it that uses frequency (instead of sequences), of abstracted API calls. We find that it is not as accurate, failing to capture maliciousness when trained on malware samples that include API calls that are equally or more frequently used by benign apps.
研究の動機と目的
- Android の API とマルウェア行動の進化に伴う、効果的なマルウェア検出の維持という課題に対処すること。
- 誤検出が多く、頻繁な再トレーニングを要する、パーミッションベースや頻度ベースの検出手法の限界を克服すること。
- 低レベルの API 呼び出しを高レベルのファミリーやパッケージ、クラスに抽象化することで、API 変更に対して耐性を持つ行動モデリング手法を開発すること。
- Android エコシステムの進化に伴っても、再トレーニングなしに長期間にわたり高い検出精度を維持できるシステムを設計すること。
- API 抽象化とシーケンスモデリングの両者が、マルウェア検出の耐性向上に果たす相対的貢献を評価すること。
提案手法
- 低レベルの API 呼び出しを、ファミリー(例:android、java)、パッケージ(例:java.io)、クラス(例:java.lang.Throwable)といった高レベルの抽象化に変換することで、API の非推奨化や変更に対する感受性を低減する。
- Android アプリの静的解析からコールグラフを構築し、抽象化された API 呼び出しのシーケンスを抽出する。
- 抽象化された API 呼び出しのシーケンスを一次のマルコフ連鎖としてモデル化し、行動遷移パターンを捉える。
- マルコフ連鎖の遷移行列から統計的特徴量を抽出し、アプリの行動を表現する。
- これらの特徴量を用いて、バイナリ分類器(例:SVM やランダムフォレスト)をトレーニングし、正規アプリとマルウェアを区別する。
- 2010 年から 2016 年にかけて収集された、合計 8.5K 件の正規アプリと 35.5K 件のマルウェアアプリからなる大規模かつ長期的なデータセットを用いて、システムを評価する。
実験結果
リサーチクエスチョン
- RQ1マーカフ連鎖を用いて抽象化された API 呼び出しのシーケンスをモデル化することで、頻度ベースの手法と比較して、長期的なマルウェア検出の耐性が向上するか?
- RQ2MaMaDroid は、古いデータセットで学習した後、未学習のマルウェアサンプルをどれほど効果的に検出できるか?
- RQ3Android フレームワークの進化に対して、API 抽象化が、生の API 頻度分析と比較してどれほど耐性を高めるか?
- RQ4DroidAPIMiner らしい、頻繁に使用される API 呼び出しに依存するシステムと比較して、MaMaDroid の性能は時間経過とともにどのように低下するか?
- RQ5抽象化とシーケンスモデリングの組み合わせが、単なる抽象化や頻度ベースのモデリングよりも効果的であるか?
主な発見
- MaMaDroid は、トレーニング期間と同じデータセット上でマルウェア検出を実行した際、ピーク F-スコア 0.99 を達成する。
- システムは時間の経過にかかわらず高い検出性能を維持し、トレーニング後 1 年で F-スコア 0.86、2 年後には 0.75 を達成する。
- MaMaDroid は、頻度ベースの最先端手法 DroidAPIMiner よりも、精度と長期的耐性の両面で顕著に優れている。
- 抽象化された API 呼び出しの頻度のみを用いる MaMaDroid の変種(FAM)は、DroidAPIMiner よりも優れてはいるが、完全なマルコフ連鎖モデルよりは精度が低い。
- 本研究では、特にマルウェアと正規アプリが類似した API 頻度を使用する状況において、マルコフ連鎖によるシーケンスモデリングが高精度検出に不可欠であることが確認された。
- 単なる API 抽象化では、耐性のある検出には不十分である。API 変更への耐性と高い検出性能を実現するのは、抽象化とシーケンスモデリングの組み合わせに起因する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。