Skip to main content
QUICK REVIEW

[論文レビュー] Ripple: Reflection Analysis for Android Apps in Incomplete Information Environments

Yifei Zhang, Tian Tan|arXiv (Cornell University)|Dec 16, 2016
Advanced Malware Detection Techniques参考文献 32被引用数 4
ひとこと要約

本稿では、不完全情報環境下での型推論を活用することで、従来の文字列推論よりもより整合的な反射呼び出しの解決が可能な、Androidアプリ向けの最初のIIE対応静的リフレクション解析であるRippleを紹介する。17の代表的なアプリで評価した結果、RippleはFlowDroidが以前に見逃していた数百件の機微なデータ漏洩を低誤検出率で検出可能にした。

ABSTRACT

Despite its widespread use in Android apps, reflection poses graving problems for static security analysis. Currently, string inference is applied to handle reflection, resulting in significantly missed security vulnerabilities. In this paper, we bring forward the ubiquity of incomplete information environments (IIEs) for Android apps, where some critical data-flows are missing during static analysis, and the need for resolving reflective calls under IIEs. We present Ripple, the first IIE-aware static reflection analysis for Android apps that resolves reflective calls more soundly than string inference. Validation with 17 popular Android apps from Google Play demonstrates the effectiveness of Ripple in discovering reflective targets with a low false positive rate. As a result, Ripple enables FlowDroid, a taint analysis for Android apps, to find hundreds of sensitive data leakages that would otherwise be missed. As a fundamental analysis, Ripple will be valuable for many security analysis clients, since more program behaviors can now be analyzed under IIEs.

研究の動機と目的

  • 実世界のAndroidアプリにおける不完全情報環境(IIE)の広がりを特定し、実証的に調査すること。IIEとは、リフレクション解析に不可欠なデータフローが欠落している状況を指す。
  • クラス/メソッド/フィールド名が定数でない、あるいはnullである場合に失敗する、従来のリフレクション解析技術(特に文字列推論)の限界を是正すること。
  • ユーザーのアノテーションを必要とせず、型情報に基づいて自動的にリフレクションのターゲットを推論するIIE対応リフレクション解析Rippleの設計および実装を行うこと。
  • Rippleが、たんぱく質分析などの下流のセキュリティ解析(例:トランスファーバイアス解析)を向上させ、以前に見逃されていたプログラム動作の検出を可能にすることを実証すること。

提案手法

  • Rippleは、クラス/メソッド/フィールド名が定数でない、あるいは不明な状況下で、リフレクションのターゲットが定数文字列推論では解決できない不完全情報環境(IIE)をモデル化する。
  • Rippleは、静的に不明またはnullの受信オブジェクトおよびクラス/メソッド名を含むリフレクション呼び出しサイトにおいても、自動的な型推論を実行する。
  • SootのSparkポインタ解析と統合し、型情報を伝搬させることで、文字列定数が利用できない状況下でも、実行時における実際にターゲットとなるクラス、メソッド、またはフィールドを推論する。
  • 標準的な文字列推論を包含するアプローチであり、定数および非定数文字列(nullを含む)の両方のケースを、整合的な過剰近似によって処理する。
  • フローやコンテキストに依存しないポインタ解析を用いて、オブジェクトの型を追跡し、実行時におけるリフレクションのターゲットとなる実際のクラス、メソッド、またはフィールドを推論する。
  • Rippleは、FlowDroidなどの既存の静的セキュリティ解析フレームワークに統合可能であり、コードカバレッジと精度の両方を向上させることを目的として設計されている。

実験結果

リサーチクエスチョン

  • RQ1実世界のAndroidアプリにおける不完全情報環境(IIE)はどの程度広がっており、その主な原因は何か?
  • RQ2クラス/メソッド/フィールド名が非定数またはnullである場合に、従来の文字列推論に基づくリフレクション解析手法がIIEでどの程度失敗するのか?
  • RQ3RippleのようなIIE対応リフレクション解析は、機微なデータ漏洩の検出において、静的トランスファーバイアス解析の精度と整合性をどの程度向上できるか?
  • RQ4Rippleの型推論ベースのアプローチは、文字列推論と比較して、誤検出率と検出カバレッジの両面でどの程度優れているか?
  • RQ5実世界のAndroidアプリにおいて、Rippleを下流のトランスファーバイアス解析ツール(例:FlowDroid)と統合した場合、どのような影響が生じるか?

主な発見

  • IIEは実世界のAndroidアプリに広く存在しており、オブフェスケーション、不正確なライブラリサマリー、モデル化されていないAndroidサービス、コールバックやICCといった複雑な機能が主な原因である。
  • 文字列推論に基づくリフレクション解析は、クラス/メソッド/フィールド名が非定数またはnullの場合に、リフレクションのターゲットを失敗し、セキュリティ解析における顕著な偽陰性を引き起こす。
  • Rippleは、自動的な型推論を実行することで、IIE下でもリフレクションのターゲットを正常に解決し、従来の文字列推論を包含するとともに整合性を向上させた。
  • 17のGoogle Playで人気のアプリを対象とした評価では、RippleがFlowDroidが以前に見逃していた数百件の機微なデータ漏洩を検出可能にした。
  • RippleとFlowDroidの統合により、誤検出率は低く抑えられつつ、セキュリティ脆弱性の検出カバレッジが顕著に向上した。
  • Rippleのアプローチは効果的かつスケーラブルであり、IIE対応リフレクション解析がAndroidアプリにおける整合的かつ正確な静的セキュリティ解析に不可欠であることが示された。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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