V8 データ保護検証の要件
管理目標 †
データ保護を適切に行うには次の 3つの要素を考慮する必要があります。機密性(Confidentiality)、完全性(Integrity)、可用性(Availability)の CIA です。この標準ではデータ保護が、強固かつ十分な保護を備えるサーバなど信頼できるシステム上でデータ保護が行われていることを想定しています。 アプリケーションは「ユーザデバイスはどれも完全には信頼できない」ことを前提にする必要があります。共有コンピュータや電話、タブレット等の安全でないデバイスに対してセンシティブなデータの送信や保存を行う場合、アプリケーション側が責任を持って、デバイス上に保存するデータを暗号化し、不正な取得や変更、開示が容易にはできないよう保護する必要があります。 検証対象のアプリケーションが次の高次のデータ保護要件を満たすことを確認します。
- 機密性:送信と保存の両方で認可されていない監視や開示からデータが保護されている
- 完全性:攻撃者による悪意のある作成,変更,削除からデータが保護されている
- 可用性:必要なときにデータが許可されたユーザに提供される
V8.1 一般的なデータ保護 †
項番 | 説明 | L1 | L2 | L3 | CWE No | タイトル | 概要 |
8.1.1 | アプリケーションは機密データをロードバランサやアプリケーションキャッシュなどのサーバコンポーネントにキャッシュされないように保護している。 | ✓ | ✓ | 524 | 機密情報を含むキャッシュの使用 | コードは機密情報を含むキャッシュを使用するが、キャッシュは意図された制御領域外のアクターによって読み取られる可能性がある。 | |
8.1.2 | サーバ上に保存されている機密データの、すべてのキャッシュや一時コピーが、認証されていないアクセスから保護されているか、認証されたユーザが機密データにアクセスした後に削除または無効化される。 | ✓ | ✓ | 524 | 機密情報を含むキャッシュの使用 | コードは機密情報を含むキャッシュを使用するが、キャッシュは意図された制御領域外のアクターによって読み取られる可能性がある。 | |
8.1.3 | 1 リクエスト中に含まれるパラメータの数(非表示フィールド、Ajax 変数、Cookie、ヘッダ値など)を最小限にしている。 | ✓ | ✓ | 233 | パラメータの不適切な処理 | 期待される数のパラメータ、フィールド、または引数が入力で提供されていない場合、またはそれらのパラメータが未定義の場合、ソフトウェアは適切に処理しません。 | |
8.1.4 | アプリケーションが、IP 、ユーザ、1時間または1日あたりの総数、またはアプリケーションにとって重要なリクエストなど、異常な数のリクエストを検出および警告できる。 | ✓ | ✓ | 770 | 制限やスロットルのないリソースの割り当て | ソフトウェアは、アクターのために意図されたセキュリティポリシーに反して、割り当て可能なリソースのサイズや数に制限を課すことなく、アクターに代わって再利用可能なリソースまたはリソースのグループを割り当てます。 | |
8.1.5 | 重要なデータの定期的なバックアップが実行され、データのリストアテストが実行されている。 | ✓ | 19 | カテゴリ:データ処理エラー | このカテゴリの弱点は、通常、データを処理する機能にあります。データ処理は、情報を取得または保存するための入力の操作です。 | ||
8.1.6 | データの盗難や破損を防ぐために、バックアップがセキュアに保存されている。 | ✓ | 19 | カテゴリ:データ処理エラー | このカテゴリの弱点は、通常、データを処理する機能にあります。データ処理は、情報を取得または保存するための入力の操作です。 |
V8.2 クライアントサイドのデータ保護 †
項番 | 説明 | L1 | L2 | L3 | CWE No | タイトル | 概要 |
8.2.1 | 最新のブラウザで機密データがキャッシュされないように、アプリケーションは十分なキャッシュ防止ヘッダを設定する。 | ✓ | ✓ | ✓ | 525 | 機密情報を含むWebブラウザキャッシュの利用について | Web アプリケーションは、各 Web ページと関連するフォームフィールドをキャッシュする範囲を指定する適切なキャッシュポリシーを使用していません。 |
8.2.2 | クライアントの記憶域(HTML5 のローカルストレージ、セッションストレージ、IndexedDB、通常の Cookie、FlashCookie など)に保存されるデータにセンシティブなデータや PII が含まれていない。 | ✓ | ✓ | ✓ | 922 | 機密情報の安全でない保存 | このソフトウェアは、権限のない行為者による読み取りアクセスや書き込みアクセスを適切に制限することなく、機密情報を保存します。 |
8.2.3 | セッションの終了後、ブラウザの DOM など認証されたデータがクライアントの記憶域から消去される。 | ✓ | ✓ | ✓ | 922 | 機密情報の安全でない保存 | このソフトウェアは、権限のない行為者による読み取りアクセスや書き込みアクセスを適切に制限することなく、機密情報を保存します。 |
V8.3 機密性の高い個人データ †
このセクションは、特に大量の場合、センシティブなデータを認証なく作成、読み取り、更新、削除することから保護するのに役立ちます。 このセクションへの準拠は V4 アクセス制御、特に V4.2 への準拠を意味します。例えば、認証のない更新やセンシティブな個人情報の開示から保護するには V4.2.1 を順守する必要があります。完全に網羅するにはこのセクションと V4 に従ってください。 注: オーストラリアのプライバシー原則 APP-11 や GDPR などのプライバシー規制や法令は、センシティブな個人情報の保存、使用、および転送の実装にアプリケーションがどのようにアプローチする必要があるかに直接影響します。これには厳しいペナルティから簡単なアドバイスまであります。地域の法令や規制を調べ、必要に応じて資格のあるプライバシーの専門家または弁護士に相談してください。
項番 | 説明 | L1 | L2 | L3 | CWE No | タイトル | 概要 |
8.3.1 | センシティブなデータが HTTP メッセージボディまたはヘッダでサーバに送信される。どんな HTTP verb のクエリストリングパラメータにもセンシティブなデータが含まれない。 | ✓ | ✓ | ✓ | 319 | 機密情報のクリアテキスト送信 | ソフトウェアは、機密情報またはセキュリティ上重要なデータを、許可されていないアクターが盗聴できる通信チャネルでクリアテキストで送信します。 |
8.3.2 | ユーザが自身のデータをオンデマンドで、削除またはエクスポートできる。 | ✓ | ✓ | ✓ | 212 | 保存または転送前の機密情報の不適切な削除 | 本製品は、機密情報を含むリソースを保存、転送、または共有していますが、そのリソースを不正な行為者が利用できるようにする前に、その情報を適切に削除していません。 |
8.3.3 | 個人情報の収集および利用に関する明確なポリシーが、ユーザに提供されている。個人情報が何らかの方法で使用される前に、オプトイン方式で個人情報利用に関する同意を得ている。 | ✓ | ✓ | ✓ | 285 | 不適切な認証 | アクターがリソースにアクセスしたり、アクションを実行しようとしたときに、ソフトウェアが認証チェックを実行しないか、または正しく実行されません。 |
8.3.4 | アプリケーションにより作成および処理される、すべてのセンシティブなデータを特定している。センシティブなデータを処理する方法に関するポリシーが、策定されている。 (C8) | ✓ | ✓ | ✓ | 200 | 機密情報の非公認俳優への暴露について | この製品は、その情報へのアクセスを明示的に許可されていないアクターに機密情報を公開します。 |
8.3.5 | データが関連するデータ保護規制の下で収集されている場合や、アクセスログ記録が必要な場合、センシティブなデータへのアクセスが(センシティブなデータ自体がログに記録されることなく)監査されている。 | ✓ | ✓ | 532 | ログファイルへの機密情報の挿入 | ログファイルに書き込まれた情報は機密性が高く、攻撃者に貴重なガイダンスを与えたり、機密性の高いユーザー情報を暴露したりする可能性があります。 | |
8.3.6 | メモリダンプ攻撃を軽減するため、メモリに保持されたセンシティブな情報は、不要になればすぐに、ゼロまたはランダムデータを使用して上書きする。 | ✓ | ✓ | 226 | 再利用のためのリリース前にリソースにクリアされていない機密情報 | 製品は、メモリやファイルなどのリソースを他のエンティティが再利用できるようにリリースする準備をしていますが、製品は、リソースがリリースされる前に、以前に使用されていた機密情報をそのリソースから完全にクリアしていません。 | |
8.3.7 | 暗号化を必要とするセンシティブなもしくは個人情報は、機密性と完全性の双方を提供する承認済みアルゴリズムを使用して暗号化する。 (C8) | ✓ | ✓ | 327 | 壊れた暗号アルゴリズムやリスクの高い暗号アルゴリズムの使用 | 壊れた暗号アルゴリズムやリスクの高い暗号アルゴリズムを使用することは、機密情報の漏洩につながる不必要なリスクである。 | |
8.3.8 | センシティブな個人情報は、古いデータや期限切れのデータが、自動的、定期的、または状況に応じて削除されるなど、データ保持分類の対象となっている。 | ✓ | ✓ | 285 | 不適切な認証 | アクターがリソースにアクセスしたり、アクションを実行しようとしたときに、ソフトウェアが認証チェックを実行しないか、または正しく実行されません。 |
データ保護を検討する際には、主に一括抽出、一括変更、過度の使用について考慮すべきです。例えば、多くのソーシャルメディアシステムではユーザは1日に新しい友人を100人しか追加できませんが、これらのリクエストがどのシステムから来たのかは重要ではありません。銀行のプラットフォームでは、1000ユーロを超える資金を外部の機関に転送することは、1時間当たり5つの取引まででブロックすることが期待されています。各システムの要件は大きく異なることがあるため、「異常」を判断するには脅威モデルとビジネスリスクを考慮する必要があります。重要な基準はそのような異常な大量のアクションを検出、阻止、または可能であればブロックする能力です。
参考情報 †
詳しくは以下の情報を参照してください。
- Consider using Security Headers website to check security and anti-caching headers : https://securityheaders.io/
- OWASP Secure Headers project : https://www.owasp.org/index.php/OWASP_Secure_Headers_Project
- OWASP Privacy Risks Project : https://www.owasp.org/index.php/OWASP_Top_10_Privacy_Risks_Project
- OWASP User Privacy Protection Cheat Sheet : https://www.owasp.org/index.php/User_Privacy_Protection_Cheat_Sheet
- European Union General Data Protection Regulation (GDPR) overview : https://edps.europa.eu/data-protection_en
- European Union Data Protection Supervisor - Internet Privacy Engineering Network : https://edps.europa.eu/data-protection/ipen-internet-privacy-engineering-network_en