M6: 不適切なプライバシーコントロール (Inadequate Privacy Controls)

脅威エージェント

アプリケーション依存

プライバシーコントロールは、氏名と住所、クレジットカード情報、電子メールと IP アドレス、健康、宗教、性的志向、政治的意見などの個人を識別できる情報 (PII) を保護することに関係します。

この情報は攻撃者にとっていくつかの理由で価値があります。たとえば、攻撃者は以下のようなことができる可能性があります。

  • 被害者になりすまして詐欺を行います。

  • 被害者の支払いデータを悪用します。

  • 機密情報で被害者を脅迫します。

  • 被害者の重要なデータを破壊または操作して、被害者に損害を与えます。

一般的に、PII は漏洩 (機密性の侵害)、操作 (完全性の侵害)、破壊/遮断 (可用性の侵害) のいずれかの可能性があります。

攻撃手法

悪用難易度 普通

PII の一般的なソースは、アプリのサンドボックス、サーバーとのネットワーク通信、アプリのログやバックアップなど、十分に保護されています。URL クエリパラメータやクリップボードコンテンツなど、保護が十分でないものもありますが、依然としてアクセスは困難です。

そのため、PII を取得するには、攻撃者はまず別のレベルでセキュリティを突破する必要があります。攻撃者はネットワーク通信を盗聴したり、トロイの木馬でファイルシステム、クリップボード、ログにアクセスしたり、モバイルデバイスを手に入れて解析用のバックアップを作成する可能性があります。PII はモバイルデバイスで利用可能なあらゆる手段で保存、処理、転送可能なデータに過ぎないため、それを抽出または操作する可能性は多岐にわたります。

セキュリティ上の弱点

普及度 普通

検出難易度 容易

ほぼすべてのアプリは何らかの PII を処理します。多くの場合、その目的を果たすために必要以上に収集および処理するため、ビジネス上にニーズがなくてもターゲットとしてより魅力的になります。

開発者による PII の不注意な取扱いにより、プライバシー侵害のリスクは増大します。PII は攻撃者が通信や記憶メディアにアクセスできる可能性を常に念頭に置いて処理すべきです。

したがって、アプリが収集する個人データの一部が、不十分に保護されたストレージや伝送メディアを介して、攻撃者にそのようなデータを操作したり悪用する動機を与えるのであれば、アプリはプライバシー侵害に対して脆弱になります。

技術的影響

影響度 低

通常、プライバシー侵害はシステム全体に技術的影響はほとんど与えません。PII に認証データなどの情報が含まれている場合にのみ、追跡可能性などの特定のグローバルセキュリティプロパティに影響を与える可能性があります。

ユーザーデータが操作されると、そのユーザーはシステムを使用できなくなる可能性があります。適切なサニタイゼーションや例外処理が行われていない場合、不正なデータによりバックエンドが妨害される可能性もあります。

ビジネスへの影響

影響度 深刻

プライバシー侵害がビジネスに与える影響の程度と深刻度は、影響を受けるユーザー数、影響を受けるデータの重要性、侵害が発生した場所で適用されるデータ保護規制によって大きく異なります。プライバシー侵害によるビジネスへの影響は一般的に少なくとも以下のような結果をもたらします。

法的規制の違反: 規制がプライバシーコントロールに関する最大の問題です。関連法規の例としては GDPR (欧州), CCPA (カリフォルニア, 米国), PDPA (シンガポール), PIPEDA (カナダ), LGPD (ブラジル), Data Protection Act 2018 (米国), POPIA (南アフリカ), PDPL (中国) があり、ユーザーのデータを保護しない企業に対する制裁措置が知られています。

被害者の訴訟による経済的損害: プライバシー侵害によって個人的な影響を受けた人は、侵害が起きたアプリプロバイダを訴える可能性があります。このような訴訟は適用される法的規制と、適切かつ最新の保護メカニズムを導入していること示すプロバイダの能力によっては勝訴する可能性があります。

風評被害: プライバリー侵害が大規模にユーザーに影響を与える場合、おそらくメディアに掲載され、アプリのプロバイダに否定的な評判がもたらされます。その結果、そのアプリや同じプロバイダの他の無関係な製品の売上や利用が減少するかもしれません。

PII の紛失や窃取: 実際に盗まれた情報はアプリのプロバイダへの攻撃にも悪用されるかもしれません。たとえば、特定のユーザーデータを使用して、被害者になりすましてプロバイダに対してソーシャルエンジニアリング攻撃を行う可能性があります。

「不適切なプライバシーコントロール」の脆弱性があるか?

アプリが不適切なプライバシーコントロールに対して脆弱になる可能性があるのは、何らかの形で個人を識別できる情報を処理する場合のみです。これはほとんどの場合に当てはまります。サーバーから見えるクライアントアプリの IP アドレス、アプリの使用状況のログ、クラッシュレポートやアナリティクスで送信されるメタデータはほとんどのアプリに適用される PII です。通常、アプリはユーザーからアカウント、支払いデータ、位置情報など、さらに機密性の高い PII を収集して処理します。

PII を使用するアプリでは、他の機密データと同様に公開するかもしれません。これは特に以下のようなものを通じて起こります。

  • 安全でないデータストレージと通信 (参照 M5, M9)

  • 安全でない認証と認可でのデータアクセス (参照 M3, M1)

  • アプリのサンドボックスに対するインサイダー攻撃 (参照 M2, M4, M8).

他の OWASP モバイル Top 10 リスクではアプリがさまざまな攻撃ベクトルに対してどのように脆弱になるかについてより深い洞察を提供します。

「不適切なプライバシーコントロール」を防ぐには?

存在しないものは攻撃できないため、プライバシー侵害を防ぐための最も安全なアプローチは、処理される PII の量と種類を最小限に抑えることです。これには特定のアプリ内のすべての PII 資産を完全に認識する必要があります。その認識の上で、以下の質問を評価する必要があります。

  • 処理されるすべての PII は本当に必要ですか? (たとえば名前と住所、性別、年齢など)

  • PII の一部を重要度の低い情報に置き換えることはできますか? (たとえば詳細な位置情報を粗い位置情報に)

  • PII の一部を削減することはできますか? (たとえば位置情報の更新を毎分ではなく毎時に)

  • PII の一部を匿名化や不鮮明化することはできますか? (たとえばハッシュ化、バケット化、ノイズ付加により)

  • PII の一部を一定の有効期限後に削除できますか? (たとえば先週の健康データのみ保持するなど)

  • ユーザーはオプションの PII の使用に同意できますか? (たとえばより良いサービスを受けたいが追加のリスクも承知して)

残りの PII は絶対に必要な場合を除き、保存や転送すべきではありません。保存や転送しなければならない場合、アクセスは適切な認証と場合によっては認可で保護しなければなりません。また、特に重要なデータについては多層防御を考慮すべきです。たとえば、健康データはアプリのサンドボックスへの保存に加えて、デバイスの TPM に封印された鍵で暗号化できます。その場合、攻撃者がサンドボックスの制限を回避できたとしても、データは依然として読み取れません。他の OWASP モバイル Top 10 リスクでは機密データを安全に保存、転送、アクセス、その他の処理を行うための対策を提案します。

脅威モデリングを使用して、特定のアプリでプライバシー侵害が発生する可能性が最も高い方法を判断できます。PII を保護する取り組みはこれらに集中できます。

静的および動的セキュリティチェックツールでは、機密データのログ記録や、クリップボードや URL クエリパラメータへの漏洩などのよくある落とし穴が明らかになるかもしれません。

攻撃シナリオの例

以下のシナリオはモバイルアプリでの不適切なプライバシーコントロールを示しています。

シナリオ #1: ログやエラーメッセージの不適切なサニタイゼーション

ログや例外の報告は生産的なアプリの品質保証に不可欠です。クラッシュレポートや他の使用状況データは開発者がバグを修正したり、アプリがどのように使用されているかを知るのに役立ちます。しかし、開発者がログやエラーメッセージに PII データを含めることを選択した場合、ログやエラーメッセージには PII が含まれるかもしれません。また、サードパーティライブラリも同様にエラーメッセージやログに PII がふくまれるかもしれません。よくある問題の例としてクエリや結果の一部が明らかになるデータベース例外があります。これはクラッシュレポートの収集と評価に使用されるプラットフォームプロバイダに見える可能性が高くなります。エラーが画面に表示される場合はユーザーにも見えるかもしれませんし、デバイスログを読むことができる攻撃者にも見えてしまうかもしれません。開発者はログ記録する内容に特に注意し、例外メッセージをユーザーに表示したりサーバーに報告する前に、必ずサニタイズすべきです。

シナリオ #2: URL クエリパラメータ内での PII の使用

URL クエリパラメータはリクエスト引数をサーバーに送信するためによく使用されます。しかし、URL クエリパラメータは少なくともサーバーログに表示されるだけでなく、多くの場合、ウェブサイト分析や場合によってはローカルブラウザの履歴にも表示されます。そのため、機密情報はクエリパラメータとして決して送信すべきではありません。代わりに、ヘッダやボディの一部として送信すべきです。

シナリオ #3: バックアップ内の個人データの除外 (hasFragileUserData 設定不可)

アプリによって処理される PII のほとんどはそのサンドボックスに保存されます。アプリはどのデータをデバイスバックアップに含めるかを明示的に設定すべきです。攻撃者はデバイスを入手してバックアップを作成したり、別のソースからバックアップを取得し、そこからサンドボックスのコンテンツが抽出される可能性があります。

あるいは、Android で hasFragileUserData を 'true' に設定すると、アプリはアンインストール時にデータを保持できます。後に、攻撃者が同じパッケージ ID で悪意のあるアプリをインストールすることに成功すると、このデータにアクセスできます。

したがって、開発者の意図を透明にし、バックアップやアプリのその後のインストール間の情報フローを制御するために、両方の設定をアプリに対して明示的に設定すべきです。

参考資料

Last updated