データ漏えい対策「5つの観点」と前提

モバイルアプリの「データ漏えい」を防ぐとは、アプリが扱う情報(個人情報、認証情報、利用履歴など)が、意図しない相手や経路に渡らない状態をつくることです。ここで重要なのは、脅威(誰が、どの状況で、何を狙うか)の前提がズレると対策が空振りする点です。たとえば、通信が暗号化されていても、端末内に保存したデータが他の手段で読み出されれば漏えいは起こりえます。

以下では、設計・運用の観点を「5つ」に整理します。どれも単独で完結するものではなく、相互に支え合う前提で考えます。

1. 暗号化:通信と保存を「同時に」扱う

まず、暗号化は「どこまでを守るか」を分けて考える必要があります。よくある誤解は、通信が守られれば全て安全だと思い込むことです。しかしデータ漏えいは、通信以外の経路(端末内の保存、バックアップ、ログ、画面表示、共有機能など)からも起こりえます。

確認の考え方は次の通りです。

  • 通信:アプリがサーバとやり取りする際、盗聴・改ざんを難しくする仕組みが適用されているか。
  • 保存:端末に保存するデータが、読み出されにくい形で扱われているか。
  • 鍵管理:暗号化していても鍵の扱いが弱いと意味が薄れます。鍵がどこに置かれ、誰が利用できるかを設計上の整合性で確認します。

2. 認証とセッション管理:漏えいは「本人でない誰か」の問題になりやすい

データ漏えいは、必ずしも攻撃者がデータを盗む形だけではありません。認証やセッションの扱いが不適切だと、「本人だけが見られるはずの情報」が他者にも見える形で漏れることがあります。

ここで押さえるのは、

  • 認証:ログイン状態が本当に本人のものであるか。
  • セッション:ログアウト、期限切れ、端末変更、同時ログインなどの扱いが一貫しているか。
  • 権限:ユーザー種別や所有関係の判定が、サーバ側で確実に行われているか(端末側だけに頼らない)。

実務的には「IDを渡したら誰のデータが返るか」をパターンで見ます。アクセス制御が境界を越えないかが核心です。

3. 権限・入力・出力:端末の外へ出る経路を潰す

モバイルでは、OSが提供する権限や共有機能が「データを外へ運ぶ経路」になりがちです。たとえば、カメラ・連絡先・ファイルアクセス、クリップボード、通知のプレビュー、画面スクリーンショット、共有シート、バックアップなどが該当します。

対策の考え方は、

  • 最小権限:必要なものだけを要求する。
  • 入出力の扱い:ユーザーに表示する情報やコピーされる情報を、漏えいしにくい形にする。
  • ログ:デバッグ用のログに機微情報が出ていないか。

確認は「データがどこに出力されるか」を地図のように追うことです。UI表示だけでなく、通知、共有、履歴、バックアップにも目を向けます。

4. 端末内のデータ取り扱い:削除・期限・保護を設計する

保存したデータは、時間が経つほどリスクが増えます。