Android Task Hijacking

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

Try Hard Security Group


タスク、バックスタック、フォアグラウンドアクティビティ

Android では、タスク は、特定のジョブを完了するためにユーザーが対話するアクティビティのセットであり、バックスタック 内に整理されます。このスタックは、アクティビティが開かれた順に順序付けられ、最新のアクティビティが フォアグラウンドアクティビティ としてトップに表示されます。いつでも、画面上にはこのアクティビティのみが表示され、これが フォアグラウンドタスク の一部となります。

以下は、アクティビティの遷移の簡単な概要です:

  • アクティビティ 1 は最初にフォアグラウンドで単独で開始します。

  • アクティビティ 2 を起動すると、アクティビティ 1 がバックスタックに押しやられ、アクティビティ 2 がフォアグラウンドに表示されます。

  • アクティビティ 3 を開始すると、アクティビティ 1アクティビティ 2 がスタック内でさらに後ろに移動し、アクティビティ 3 が前面に表示されます。

  • アクティビティ 3 を閉じると、アクティビティ 2 が再びフォアグラウンドに表示され、Android のスムーズなタスクナビゲーションメカニズムが示されます。

タスクアフィニティ攻撃

タスクアフィニティと起動モードの概要

Android アプリケーションでは、タスクアフィニティ は、通常アプリのパッケージ名と一致するアクティビティの優先タスクを指定します。このセットアップは、攻撃をデモンストレーションするための PoC アプリを作成する際に重要です。

起動モード

launchMode 属性は、タスク内のアクティビティインスタンスの処理を指示します。この攻撃には重要な singleTask モードがあり、既存のアクティビティインスタンスとタスクアフィニティの一致に基づいて3つのシナリオを指示します。攻撃は、攻撃者のアプリがターゲットアプリのタスクアフィニティを模倣し、Android システムを誤解させて意図したターゲットアプリの代わりに攻撃者のアプリを起動する能力に依存しています。

詳細な攻撃手順

  1. 悪意のあるアプリのインストール: 被害者が自分のデバイスに攻撃者のアプリをインストールします。

  2. 初期アクティベーション: 被害者は最初に悪意のあるアプリを開き、攻撃のためにデバイスをセットアップします。

  3. ターゲットアプリの起動試行: 被害者はターゲットアプリを開こうとします。

  4. ハイジャックの実行: 一致するタスクアフィニティのため、ターゲットアプリの代わりに悪意のあるアプリが起動します。

  5. 欺瞞: 悪意のあるアプリは、ターゲットアプリに似た偽のログイン画面を表示し、ユーザーを機密情報を入力させるようにだまします。

この攻撃の実践的な実装については、GitHub の Task Hijacking Strandhogg リポジトリを参照してください: Task Hijacking Strandhogg

防止策

このような攻撃を防ぐために、開発者は taskAffinity を空の文字列に設定し、singleInstance 起動モードを選択することで、自分のアプリを他のアプリから分離することを確認できます。onBackPressed() 関数をカスタマイズすることで、タスクハイジャッキングに対する追加の保護を提供できます。

参考文献

Try Hard Security Group

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

Last updated