Skip to main content
QUICK REVIEW

[論文レビュー] I know what leaked in your pocket: uncovering privacy leaks on Android Apps with Static Taint Analysis

Li Li, Alexandre Bartel|TUbilio (Technical University of Darmstadt)|Apr 29, 2014
Advanced Malware Detection Techniques参考文献 27被引用数 67
ひとこと要約

本稿では、Androidのライフサイクル、コールバックメソッド、およびIntentベースのコンポonent通信を高精度にモデル化することにより、Androidアプリにおけるコンポonent間およびアプリ間のプライバシー漏洩を検出する静的トレース分析ツールIccTAを提示する。DroidBench上で95.0%の精度と82.6%の再現率を達成し、14のアプリケーションで147件の実世界のプライバシー漏洩を検出、精度は88.4%であった。

ABSTRACT

Android applications may leak privacy data carelessly or maliciously. In this work we perform inter-component data-flow analysis to detect privacy leaks between components of Android applications. Unlike all current approaches, our tool, called IccTA, propagates the context between the components, which improves the precision of the analysis. IccTA outperforms all other available tools by reaching a precision of 95.0% and a recall of 82.6% on DroidBench. Our approach detects 147 inter-component based privacy leaks in 14 applications in a set of 3000 real-world applications with a precision of 88.4%. With the help of ApkCombiner, our approach is able to detect inter-app based privacy leaks.

研究の動機と目的

  • 既存のツールがコンポonent通信のモデル化に限界を抱えることによる、Androidアプリにおけるコンポonent間およびアプリ間のプライバシー漏洩を検出する課題に対処すること。
  • AndroidのライフサイクルコールバックやIntentベースのコンポonent間通信(ICC)を正確にモデル化できない、先行する静的トレース分析ツールの限界を克服すること。
  • 動的Intent解決とライフサイクル管理によって引き起こされる制御フローの不連続性をアプリコードのインストルメンテーションによってモデル化することで、プライバシー漏洩検出の精度を向上させること。
  • 感受性の高いソース(例:連絡先、位置情報)から外部のシンク(例:ネットワーク呼び出し)への、インtraコンポonentおよび複雑なクロスコンポonentまたはクロスアプリケーションデータフローを検出可能にすること。
  • プライバシー漏洩以外のセキュリティ脆弱性を検出するために拡張可能な、コンポonent間データフローアナリシスの汎用フレームワークを提供すること。

提案手法

  • Androidのライフサイクルコールバック(例:onCreate、onResume)および動的に解決されるIntentフローをモデル化するため、元のAndroidアプリコードをインストルメンテーションすること。
  • コンパイル時にIntentフィルタとIntentオブジェクトを解決することで、コンポonent境界とIntentベースの通信を考慮した正確な制御フローグラフを構築すること。
  • メソッド呼び出し、パラメータ、戻り値(Android OSメソッドを含む)を介してtaintを伝搬させることで、コンポonent間で文脈に依存するトレース分析を実行すること。
  • taint伝搬の正確性を保つために、Android OSメソッド(ネイティブ関数を除く)をダミーのmainメソッドでモデル化することにより、保守的な仮定を避けること。
  • 静的トレース追跡とコンポonentレベルの分析を組み合わせることで、感受性の高いソース(例:連絡先、位置情報)から外部のシンク(例:ネットワーク呼び出し)へのデータフローを検出すること。
  • ApkCombinerを活用して、複数のAPKを1つの単位として分析することで、アプリ間のプライバシー漏洩検出を可能にすること。

実験結果

リサーチクエスチョン

  • RQ1ライフサイクルコールバックとIntentベースの通信をモデル化することで、静的トレース分析がAndroidアプリにおけるコンポonent間のプライバシー漏洩を効果的に検出できるか?
  • RQ2コンポonent間での文脈に依存するトレース伝搬は、非文脈的またはフローに依存しないアプローチと比較して、精度をどのように向上させるか?
  • RQ3Androidの動的Intent解決とコンポonentライフサイクルのモデル化は、実世界のプライバシー漏洩の検出にどの程度寄与するか?
  • RQ4標準化されたベンチマーク上で、FlowDroid、AndroidLeaks、SCanDroidといった既存のツールと比較して、IccTAの精度と再現率はどのように異なるか?
  • RQ5提案手法はアプリ間のプライバシー漏洩を検出可能か?実世界のアプリケーションにおいて実用的にどの程度効果的か?

主な発見

  • IccTAはDroidBenchベンチマークで95.0%の精度と82.6%の再現率を達成し、既存のツールに比べてコンポonent間のプライバシー漏洩検出において優れた性能を示した。
  • 本ツールは、3,000個のアプリから選ばれた14の実世界のAndroidアプリケーションで147件のコンポonent間のプライバシー漏洩を検出しており、精度は88.4%であった。
  • ライフサイクルコールバックとIntent解決をモデル化することで、従来の静的トレース分析で一般的な過剰近似を回避し、誤検出を低減した。
  • インストルメンテーションされた制御フローグラフにより、コンポonentが暗黙のIntentで呼び出されても、境界を越えて正確なtaint伝搬が可能になった。
  • IccTAのアプローチは、保守的なヒューリスティクスを用いるマッチングベースのツール(SCanDroid や SEFA)よりも精度が高く、コードインストルメンテーションを採用しているためである。
  • ApkCombinerとの統合により、IccTAはアプリ間のプライバシー漏洩検出が可能となり、単一アプリケーション分析を超えた応用範囲を拡大した。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。