V8: データ保護
管理目標
堅実なデータ保護には機密性、完全性、可用性 (CIA) という三つの重要な要素があります。この標準規格では、堅牢化され十分な保護が施されているサーバなど、信頼できるシステムでデータ保護が実施されていることを前提としています。
アプリケーションはすべてのユーザデバイスが何らかの方法で危殆化されていると想定する必要があります。共有コンピュータ、スマホ、タブレットなどのセキュアでないデバイスにアプリケーションが機密情報を転送または保存する場合、アプリケーションはこれらのデバイスに保存されたデータが保護され、容易かつ不正に入手、改竄、開示されないようにする責任があります。解決策としては、永続化されないようにすることや、暗号化された形で保存されるようにすることなどが考えられます。
この章には、どのようなデータを保護する必要があるのか、どのように保護すべきなのか、実装すべき具体的なメカニズム、回避すべき落とし穴といった定義に関連する要件を含んでいます。
データ保護に関するもう一つの懸念事項は、一括抽出や変更、過度の使用に関するものです。たとえば、多くのソーシャルメディアシステムでは、ユーザーが一日に 100 人の新しい友達を追加することしか許可していませんが、これらのリクエストがどのシステムから行われたかは重要ではありません。銀行プラットフォームでは、1000 ユーロを超える資金を外部機関に送金するトランザクションは、一時間あたり 5 件を超えるものをブロックすることを希望するかもしれません。各システムの要件は大きく異なる可能性が高いため、「異常」の判断には脅威モデルとビジネスリスクを考慮しなければなりません。ASVS の観点からは、これらの問題の検出はセキュリティログ記録およびエラー処理の章で扱われ、制限の設定はビジネスロジックの章で扱われます。
オーストラリアのプライバシー原則 APP-11 や GDPR などのプライバシー規制や法令があり、機密性の高い個人情報の保存、使用、および転送の実装にアプリケーションがどのようにアプローチする必要があるかに影響します。このセクションではこのような種類のデータ保護やプライバシー法と重複するようなことはせず、機密データを保護するための重要な技術的留意点に焦点を当てます。地域の法令や規制を調べ、必要に応じて資格のあるプライバシーの専門家または弁護士に相談してください。
V1.8 データ保護とプライバシードキュメント
データを保護できるための重要な前提条件は、どのデータが機密とみなされるかを分類できることです。機密性にはいくつかのレベルがあり、機密性のレベルごとに、そのレベルのデータを保護するために必要なコントロールが異なります。
1.8.1
[修正, 8.3.4, 6.1.1, 6.1.2 からマージ, 6.1.3 をカバー] アプリケーションにより作成および処理されるすべての機密データが特定され、保護レベルに分類されている。機密データの取り扱い方法に関するポリシーが整備されている。これは Base64 や JWT などの復元可能な形式でエンコードされている機密データを含むことに注意する。保護レベルでは、アプリケーションが準拠する必要のあるデータ保護やプライバシー規制を考慮する必要がある。
2
v5.0.be-1.8.1
1.8.2
[修正, 8.1.9 へ分割, 8.3.7 をカバー] 文書化された保護要件一式がすべての保護レベルにある。これには一般的な暗号化、完全性検証、リテンション、データのログ記録方法、ログ内の機密データに関するアクセス制御、データベースレベルの暗号化、プライバシー、使用されるプライバシー強化技法に関連する要件、およびその他の機密性要件が含まれている (ただし、これらに限定されない) 。
2
v5.0.be-1.8.2
V8.1 一般的なデータ保護
このセクションにはデータの保護に関連するさまざまな実用的な要件を含みます。ほとんどは意図しないデータ漏洩などの特定の問題に固有のものですが、各データ項目に必要な保護レベルに基づいて保護コントロールを実装するという一般的な要件もあります。
8.1.11
[修正, 8.3.1 から移動, 3.1.1, 13.1.3 からマージ] 機密データが HTTP メッセージボディまたはヘッダフィールドでのみサーバに送信され、URL とクエリ文字列には API キーやセッショントークンなどの機密データが含まれていない。
1
v5.0.be-8.1.11
8.1.1
[修正, 8.1.2 からマージ] アプリケーションは機密データをロードバランサやアプリケーションキャッシュなどのサーバコンポーネントにキャッシュされないように防止している、もしくはデータを使用後に安全に削除している。
2
v5.0.be-8.1.1
8.1.8
[追加] アプリケーションの制御外で望ましくないデータ収集を防ぐために、定義された機密データは信頼できないパーティ (ユーザトラッカーなど) には送信されない。
2
v5.0.be-8.1.8
8.1.9
[追加, 1.8.2 から分割] 暗号化、完全性検証、保持、データのログ記録方法、ログ内の機密データへのアクセス制御、プライバシー、プライバシー強化テクノロジに関連する機密データに関するコントロールは、特定のデータの保護レベルに対するドキュメントで定義されているとおりに実装されている。
2
v5.0.be-8.1.9
8.1.7
[追加] 正しいコンテンツタイプを持ち、機密性の高い動的コンテンツを含まないレスポンスのみをキャッシュするように、キャッシュメカニズムが設定されている。存在しないファイルがアクセスされる場合、Web サーバーは有効な別のファイルを返すのではなく 404 または 302 レスポンスを返す必要がある。これにより Web Cache Deception 攻撃を防ぐことができる。
3
v5.0.be-8.1.7
8.1.10
[追加] アプリケーションは、アプリケーションの機能に必要な最小限の機密データのみを返している。たとえば、クレジットカード番号の一部の数字のみを返しており、番号全体は返していない。完全なデータが絶対に必要な場合は、ユーザが明示的に表示しない限り、ユーザインタフェースでマスクする必要がある。
3
v5.0.be-8.1.10
8.3.8
[レベル L2 > L3] 機密性の高い個人情報は、古いデータや期限切れのデータが自動的、定期的、または状況に応じて削除される、データ保持分類の対象となっている。
2
v5.0.be-8.3.8
8.3.9
[追加] ユーザーが保存に同意しない限り、ユーザーが送信したファイルのメタデータから機密情報が削除されている。
3
v5.0.be-8.3.9
V8.2 クライアント側のデータ保護
このセクションにはアプリケーションのクライアントサイドまたはユーザエージェントサイドでデータが漏洩する可能性のある特定の方法に関連する要件を含みます。
8.2.3
[修正] クライアントやセッションが終了した後、ブラウザ DOM などのクライアントストレージから認証データがクリアされる。"Clear-Site-Data ヘッダ" で対応できるかもしれないが、サーバ接続が失われた場合にはクライアント側でもクリアできるようにしておく必要がある。
1
v5.0.be-8.2.3
8.2.1
[修正] 機密データがブラウザでキャッシュされないように、アプリケーションは十分なキャッシュ防止 HTTP レスポンスヘッダフィールド (つまり Cache-Control: no-store) を設定している。
2
v5.0.be-8.2.1
8.2.2
[修正, 3.2.3 からマージ] ブラウザストレージ (localStorage、sessionStorage、IndexedDB、クッキーなど) に保存されているデータに、セッション識別子を除いて、機密データが含まれていない。
2
v5.0.be-8.2.2
参考情報
詳しくは以下の情報を参照してください。
Last updated
Was this helpful?