SDカードのファイルアクセス制限の理解不足

本シナリオでの学習内容

ここでは、SDカードのファイルアクセス制限の理解不足によって生じる脆弱性について学習します。
実際にサンプルアプリを実行して脆弱性によってどのような被害が発生するのかを体験し、その後、脆弱性の原因と対策についてソースコードを参照しながら学習します。

SDカードのファイルアクセス制限の理解不足とは

「SDカード上のファイルアクセス制限の理解不足」とはどのような問題でしょうか。ここで概要について理解しておきましょう。
SDカード上にファイルを保存する場合と内部ストレージ上にファイルを保存する場合では、ファイルのアクセス権設定に大きな違いがあります。 内部ストレージ上に保存されるファイルは、アプリ自身が許可しない限り他のアプリからはアクセスできないようになっています。
内部ストレージにあるアクセス権設定が適切に設定されたファイル
情報を盗み出すことはできない。


しかし、SDカード上に作成されたファイルは内部ストレージに作成する場合と異なり、アプリからアクセス権設定を行うことができません。 SDカードにアクセスできる全てのアプリからファイルの内容が読み取り可能となります。
SDカード上にあるファイル
他のアプリから情報を読み取ることができる。

また、物理的にSDカードを抜き取って情報を盗み出す事も考えられます。
そのため、SDカード内に重要な情報を保存した場合、その情報が盗まれる可能性は高くなります。
SDカード上に作成したファイルのアクセス権設定を理解せずに重要な情報を保存してしまうことが「SDカードのファイルアクセス制限の理解不足」による脆弱性です。

学習用アプリについて

このシナリオでは、以下の学習用アプリを使用して学習します。
  • 学習用アプリの概要
    サンプルアプリ「02電話帳バックアップ」と攻撃アプリ「02電話帳バックアップスパイ」を使用します。
    攻撃アプリ「02電話帳バックアップスパイ」が、サンプルアプリ「02電話帳バックアップ」によりSDカードに保存されたファイルから、個人情報を盗み出すという想定です。

  • サンプルアプリ「02電話帳バックアップ」
    電話帳アプリに登録されているデータを、バックアップするアプリです。
    電話帳のバックアップファイルを、SDカード内に作成する不備があります。

  • 攻撃アプリ「02電話帳バックアップスパイ」
    「02電話帳バックアップ」アプリが、SDカード内のファイルに保存した電話帳の個人情報を盗み出すアプリです。

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