Skip to main content
QUICK REVIEW

[論文レビュー] Security Issues in the Android Cross-Layer Architecture

Alessandro Armando, Alessio Merlo|arXiv (Cornell University)|Sep 4, 2012
Advanced Malware Detection Techniques参考文献 8被引用数 4
ひとこと要約

本稿では、Androidアーキテクチャ内のクロスレイヤー相互作用を分析するためのフローベースモデルを提案し、Androidセキュリティフレームワーク(ASF)がレイヤー間通信を制御していないことを明らかにした。実験の結果、悪意あるアプリケーションが監視されていないシステムコール(特にZygoteプロセス経由)を悪用することで、サービス拒否攻撃を引き起こすことが判明し、従来認識されていた範囲よりも広い攻撃表面を有していることが示された。

ABSTRACT

The security of Android has been recently challenged by the discovery of a number of vulnerabilities involving different layers of the Android stack. We argue that such vulnerabilities are largely related to the interplay among layers composing the Android stack. Thus, we also argue that such interplay has been underestimated from a security point-of-view and a systematic analysis of the Android interplay has not been carried out yet. To this aim, in this paper we provide a simple model of the Android cross-layer interactions based on the concept of flow, as a basis for analyzing the Android interplay. In particular, our model allows us to reason about the security implications associated with the cross-layer interactions in Android, including a recently discovered vulnerability that allows a malicious application to make Android devices totally unresponsive. We used the proposed model to carry out an empirical assessment of some flows within the Android cross-layered architecture. Our experiments indicate that little control is exercised by the Android Security Framework (ASF) over cross-layer interactions in Android. In particular, we observed that the ASF lacks in discriminating the originator of a flow and sensitive security issues arise between the Android stack and the Linux kernel, thereby indicating that the attack surface of the Android platform is wider than expected.

研究の動機と目的

  • Androidのレイヤードアーキテクチャにおけるクロスレイヤー相互作用のセキュリティ的影響を調査すること。
  • AndroidレイヤーとLinuxカーネルの間のレイヤー間システムコールに対する制御不足に起因する脆弱性を同定すること。
  • Androidセキュリティフレームワーク(ASF)が、レイヤー間で正当な呼び出しと悪意ある呼び出しを効果的に区別できるかを評価すること。
  • 傍受したシステムコールのリプレイが、利用可能な攻撃フローを示すために可能かどうかを評価すること。
  • Androidの攻撃表面がAndroidスタックを超えて広がっていることを実証すること。

提案手法

  • Androidの5層アーキテクチャ(アプリケーション、フレームワーク、ランタイム、ライブラリ、Linuxカーネル)における相互作用を表現するためのフローベースモデルを提案する。
  • カスタムカーネルモジュールを用いたシステムコールログ記録により、アプリケーションフレームワーク層のAndroidシステムサーバーが開始するシステムコールをキャプチャ・ログ化する。
  • ログを読み取り、Androidデバイス上で傍受したシステムコールを再実行するためのテストアプリケーション(SysCallTester)を開発する。
  • Androidバージョン2.3.3および3.2において、21個の重要なシステムコール(例:bind, close, ioctl, socket)の再実行成功率を実証的に評価する。
  • LinuxカーネルとASFが、システムコールの発信元がシステムサーバーである正当なプロセスか、信頼できないアプリケーションかを識別できるかを分析する。
  • 制御のないプロセスフォークがサービス拒否脆弱性を引き起こすメカニズムを示すために、Zygoteプロセスを事例として焦点化する。

実験結果

リサーチクエスチョン

  • RQ1Androidセキュリティフレームワーク(ASF)は、AndroidコンponentsとLinuxカーネルの間のクロスレイヤーシステムコールをどの程度制御または監視しているか?
  • RQ2監視されていないシステムコールが悪意あるアプリケーションによって利用され、リソース枯渇などの深刻な脆弱性を引き起こす可能性があるか?
  • RQ3Zygoteプロセスのプロセスフォーク機能は、不正な呼び出しに対して十分に保護されているか?
  • RQ4Linuxカーネルは、システムサーバーからのシステムコールと、信頼できないアプリケーションからのシステムコールをどの程度正確に区別できるか?
  • RQ5Androidスタックを超えたクロスレイヤー相互作用を考慮した場合、Androidの実際の攻撃表面はどの程度か?

主な発見

  • Androidセキュリティフレームワーク(ASF)は、システムコールの正当な発信者と悪意ある発信者を効果的に区別できず、悪用の可能性を生じさせている。
  • Linuxカーネルは、システムサーバー(通常のユーザープロセス)からのシステムコールと、悪意あるアプリケーションからのシステムコールを区別できず、隔離保証が弱体化している。
  • SysCallTesterは、Android 2.3.3および3.2の両方で傍受したシステムコールの85%(21個中18個)を正常に再実行できた。これは、多くのシステムコールがリプレイ可能で、攻撃可能な状態にあることを示している。
  • Zygoteの脆弱性により、悪意あるアプリケーションが制限のないプロセスフォークを引き起こし、デバイスの応答不能を引き起こす可能性がある。これは、forkシステムコールに対するアクセス制御が欠如しているためである。
  • Androidの攻撃表面は、従来の認識よりも著しく広く、特にAndroidスタックとLinuxカーネルの間のクロスレイヤー相互作用が不十分に保護されていることが要因である。
  • Androidの現在の設計には、フローレベルのセキュリティモデリングと実装が欠如しているため、従来検出されなかった脆弱性が、依然として検出されず、攻撃可能である状態に置かれている。

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

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

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

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