BroadcastしたIntent情報の漏えい

本シナリオでの学習内容

ここでは、BroadcastしたIntent情報の漏えいによって生じる脆弱性について学習します。
実際にサンプルアプリを実行して脆弱性によってどのような被害が発生するのかを体験し、その後、脆弱性の原因と対策についてソースコードを参照しながら学習します。
このシナリオではBroadcastReceiverをサンプルとして説明します。

BroadcastしたIntent情報の漏えいとは

「BroadcastしたIntent情報の漏えい」とはどのような問題でしょうか。ここで概要について理解しておきましょう。
暗黙的Intentの不適切な使用により生じる脆弱性で説明した通り、悪意のあるアプリが暗黙的Intentを受信することにより情報漏えいが起こる可能性があります。

BroadcastReceiverは特定のアプリからのみBroadcastを受け取るように設定することができます。また、Broadcastする側のアプリも特定のアプリがBroadcastを受け取るように指定することができます。 これらの仕組みを適切に利用すれば、暗黙的Intentを使用しても悪意のあるアプリがIntentを受け取ってしまうことを防ぐことができます。

適切な設定をしていれば
想定外のアプリがIntentを受け取る事はない


しかし、暗黙的Intentの使用が適切でない場合、Broadcastした暗黙的Intentが想定外のアプリにも受信されてしまいます。

設定が適切でない場合
想定外のアプリがIntentを受け取る可能性がある

BroadcastReceiverや暗黙的Intentについての知識不足によって、BroadcastしたIntentが想定外のアプリに受信されてしまうことが「BroadcastしたIntent情報の漏えい」による脆弱性です。

学習用アプリについて

このシナリオでは、以下の学習用アプリを使用して学習します。
  • 学習用アプリの概要
    サンプルアプリ「07画像送信」と「07画像受信」、攻撃アプリ「07画像送信スパイ」を使用します。
    サンプルアプリ「07画像送信」が「07画像受信」に画像の送信依頼をする際、暗黙的IntentをBroadcastしていたことにより、攻撃アプリ「07画像送信スパイ」よってIntentが傍受され、画像の情報が盗まれるという想定です。

  • サンプルアプリ「07画像送信」
    「07画像受信」アプリへ画像ファイルを送信するアプリです。
    「07画像受信」アプリと連携する際に、暗黙的IntentをBroadcastしている脆弱性があります。

  • 画像受信「07画像受信」
    「07画像送信」アプリから受け取った画像をあらかじめ指定された場所へアップロードするアプリです。

  • 攻撃アプリ「07画像送信スパイ」
    「07画像送信」アプリが送信した暗黙的Intentを傍受して送信対象の画像の情報を入手するアプリです。

どのような実装がこの脆弱性につながるのか次のページで学習していきましょう。