データ漏えい対策「5つの観点」と前提
モバイルアプリの「データ漏えい」を防ぐとは、アプリが扱う情報(個人情報、認証情報、利用履歴など)が、意図しない相手や経路に渡らない状態をつくることです。ここで重要なのは、脅威(誰が、どの状況で、何を狙うか)の前提がズレると対策が空振りする点です。たとえば、通信が暗号化されていても、端末内に保存したデータが他の手段で読み出されれば漏えいは起こりえます。
以下では、設計・運用の観点を「5つ」に整理します。どれも単独で完結するものではなく、相互に支え合う前提で考えます。
1. 暗号化:通信と保存を「同時に」扱う
まず、暗号化は「どこまでを守るか」を分けて考える必要があります。よくある誤解は、通信が守られれば全て安全だと思い込むことです。しかしデータ漏えいは、通信以外の経路(端末内の保存、バックアップ、ログ、画面表示、共有機能など)からも起こりえます。
確認の考え方は次の通りです。
- 通信:アプリがサーバとやり取りする際、盗聴・改ざんを難しくする仕組みが適用されているか。
- 保存:端末に保存するデータが、読み出されにくい形で扱われているか。
- 鍵管理:暗号化していても鍵の扱いが弱いと意味が薄れます。鍵がどこに置かれ、誰が利用できるかを設計上の整合性で確認します。
2. 認証とセッション管理:漏えいは「本人でない誰か」の問題になりやすい
データ漏えいは、必ずしも攻撃者がデータを盗む形だけではありません。認証やセッションの扱いが不適切だと、「本人だけが見られるはずの情報」が他者にも見える形で漏れることがあります。
ここで押さえるのは、
- 認証:ログイン状態が本当に本人のものであるか。
- セッション:ログアウト、期限切れ、端末変更、同時ログインなどの扱いが一貫しているか。
- 権限:ユーザー種別や所有関係の判定が、サーバ側で確実に行われているか(端末側だけに頼らない)。
実務的には「IDを渡したら誰のデータが返るか」をパターンで見ます。アクセス制御が境界を越えないかが核心です。
3. 権限・入力・出力:端末の外へ出る経路を潰す
モバイルでは、OSが提供する権限や共有機能が「データを外へ運ぶ経路」になりがちです。たとえば、カメラ・連絡先・ファイルアクセス、クリップボード、通知のプレビュー、画面スクリーンショット、共有シート、バックアップなどが該当します。
対策の考え方は、
- 最小権限:必要なものだけを要求する。
- 入出力の扱い:ユーザーに表示する情報やコピーされる情報を、漏えいしにくい形にする。
- ログ:デバッグ用のログに機微情報が出ていないか。
確認は「データがどこに出力されるか」を地図のように追うことです。UI表示だけでなく、通知、共有、履歴、バックアップにも目を向けます。
4. 端末内のデータ取り扱い:削除・期限・保護を設計する
保存したデータは、時間が経つほどリスクが増えます。
