eCDN PCI 4.0 準拠ツール
eCDN PCI ツールは、Cloudflare Page Shield を活用して、最新の PCI 4.0 要件への準拠を支援します。Page Shield は、PCI DSS v4.0 標準で概説されている特定のクライアント側のセキュリティ要件を監視および対処するためのツールを提供します。
eCDN はコンプライアンスに大きく貢献しますが、PCI 認証プロセスを引き続き管理し、適用されるすべての要件に準拠していることを確認する必要があります。特定のニーズを満たすように PCI Page Shield ポリシーを構成します。
Page Shield は、Web サイトの訪問者によって読み込まれたスクリプトを管理し、リソースの変更が発生したとき、または悪意のあるものとしてフラグが立てられたときに、セキュリティチームへのアラート通知をトリガーします。
Page Shield の有効化:
- ブラウザーから情報を収集するためにレポート専用ディレクティブを使用してデプロイされたコンテンツセキュリティポリシー (CSP) を追加します。これにより、eCDN は、アプリケーションで実行されているすべてのスクリプトと、それらがサードパーティのエンドポイントに対して行う接続のリストを提供できます。
- ストアフロントのホスト名に対して検出されたスクリプトを、頻度の低いスクリプトや非アクティブなスクリプトも含めてそれぞれキャプチャします。
Page Shield の監視はサンプリングに基づいているため、スクリプトをデプロイしてからこのデータを結果で利用できるようにするまでに若干の遅延が生じる場合があります。
Page Shield は、スクリプト、またはスクリプトによる接続が悪意があるかどうかを判断するために、さまざまなメカニズムを実装しています。これらのメカニズムには、次のものが含まれます。
- 悪意のあるスクリプト検出: Page Shield はスクリプトファイルをダウンロードし、それを分類器で解析します。分類器は機械学習 (ML) モデルであり、Magecart タイプの攻撃などの悪意のある操作パターンを検出できます。また、Page Shield は、さまざまな悪意のあるコードの検出に対して、1 から 99 までの個別のスコアを提供します。スクリプトを悪意があると見なすためのスコアしきい値は、現在 10 に設定されています。スクリプト分類スコアが 10 未満の場合は、Page Shield の getPageShieldScripts エンドポイントを使用して、悪意のあるスクリプトのリストを取得します。
- 悪意のある URL チェック: Page Shield は、JavaScript の依存関係の URL を脅威インテリジェンスフィードで検索し、これらのスクリプトのいずれかを悪意のあるスクリプトとして分類する必要があるかどうかを判断します。悪意のある URL チェックは PCI コンプライアンスに必要ではないため、アラートは発生しません。
- 悪意のあるドメインチェック: Page Shield は、クライアント側の JavaScript 依存関係のドメインを脅威フィードで検索し、これらのスクリプトのいずれかが既知の悪意のあるドメインから提供されているかどうかを判断します。以前に悪意があると報告されたドメインは、さらなる分析の結果、安全であると判断された場合は、悪意がないと報告されることがあります。また、Page Shield は、スクリプトで説明したのと同じ方法に従って、ドメインのページ内のスクリプトによって行われた接続のターゲットドメインもチェックします。悪意のある URL チェックは PCI コンプライアンスに必要ではないため、アラートは発生しません。
脅威フィードの更新により、以前に検出されたスクリプトや接続に対する新しいチェックがトリガーされるため、Page Shield の監視には常に最新の分類が反映されます。
アラートは、次の項目に対して構成できます。
- 新しいリソースのアラート。ストアフロントリクエストに新しいリソースが表示されたときに通知を受け取ります。
- コード変更のアラート。ストアフロントリクエストのページで JavaScript の依存関係が変更されたときに通知を受け取ります。
- 悪意のあるスクリプトのアラート。Cloudflare がストアフロントリクエストで悪意があると分類された JavaScript コードを検出すると、通知を受信します。
悪意のある URL と悪意のあるドメインのアラートは、PCI 4.0 要件の一部ではないため、Webhook を介したアラートと通知には含まれません。
ポリシーは、コンテンツセキュリティポリシー (CSP) ディレクティブを使用して、アプリケーションで許可されるリソースを定義します。ポリシーでは、違反をログに記録し、リソースの許可リストを適用して、ポリシーに含まれていないリソースを効果的にブロックできます。このモデルに従って、許可するリソースを定義し、それ以外のリソースはすべて拒否します。このアプローチにより、アプリケーション内の不要なサードパーティスクリプトの攻撃対象領域を削減できます。
各 Page Shield ポリシーは、次のいずれかのアクションを実行します。
Log: Page Shield は、ポリシーでカバーされていないリソースをログに記録しますが、リソースをブロックすることはありません。Logアクションを使用して、新しいポリシーを展開する前に検証します。ポリシーの対象とならないリソースは、ポリシー違反として報告されます。Allow: Page Shield は、ポリシーで明示的に許可されていないリソースをブロックします。Logアクションを使用して新しいポリシーを検証した後は、Allowアクションに切り替えます。そうすることで、ポリシーが重要なアプリケーションリソースをブロックして、アプリケーションのエンドユーザーに影響を与えるのを防げます。Allowアクションのポリシーでは、ブロックされたリソースのポリシー違反がログに記録されます。
次の場合にアラートが表示されます。
Allowアクションを使用してゾーンのポリシーが作成されたとき。- 許可されたポリシーソースに、新しいスクリプトまたはリソース、あるいは変更されたスクリプトまたはリソースがリストされたとき。
- Page Shield 通知がアラートに対して正しく設定されたとき。
次の場合にはアラートを受信しません。
- ゾーンに構成されたポリシーが存在しない場合。
- ポリシーが
Logアクションで構成された場合。 - ポリシーが無効にされた場合。
ポリシー違反情報を取得するには、次のようにします。
- AWS S3 バケットの Logpush ジョブを作成します。
- Logpush ジョブは、違反ログのみを取得します。
- Log Center のポリシー違反ログにアクセスします
- Log Center には監査ログと違反ログの両方が含まれます。
ポリシーの追加または変更の監査イベントは、Log Center でのみ使用できます。
Page Shield スクリプトの監視では、次のことができます。
- 支払い関連のページを含むすべてのページで JavaScript を追跡します。
- フィルターを使用して、Web サイトの特定の部分、ベンダー、または依存関係に焦点を当てます。
- Web サイトのセキュリティに影響を与える可能性のあるスクリプト関連の問題を特定して修正します。
- Web サイト上のすべてのサードパーティスクリプトを追跡し、それらがポリシーに準拠していることを確認します。
- スクリプト関連のエラーと例外のトラブルシューティングを行います。
PCI 準拠が必要なページでスクリプト監視を設定するには、次のようにします。
CDN Zones API の Get page shield scripts エンドポイントを呼び出して、スクリプトと依存関係のリストを取得します。
- 200 を超えない
limitパラメーター値を指定します。 pageUrl、prioritizeMalicious、status、urlsなど、さまざまなクエリパラメーターを使用して、目的のページで実行されているスクリプトに焦点を合わせます。- 結果はページ分割され、レスポンスヘッダーでページネーション関連のパラメーターを表示できます。
次のビデオは、検出されたスクリプトを取得する方法の例を示しています。
- フィルターを使用して、Web サイトで最も重要なスクリプト (支払いや買い物カゴに関連するページなど) に焦点を合わせます。
- スクリプト関連の問題を通知するアラートを設定します。詳細については、通知の設定と違反ログの表示を参照してください。
- 監視データを定期的に確認して、傾向やパターンを特定します。
- 開発チームと協力して、特定されたスクリプト関連の問題を修正します。
Page Shield 認証ポリシーを使用すると、次のことができます。
- セキュリティ標準への準拠を強化します。
- ページで実行が許可されるスクリプトを制御する適切なコンテンツセキュリティポリシー (CSP) ヘッダーを設定します。
- 承認されていないスクリプトをブロックすることでセキュリティを強化します。
- 悪意のあるコードが実行されるリスクを軽減します。
ポリシーを使用してスクリプトを承認するには、次のようにします。
- 支払ページに必要なスクリプトを特定します。この情報を使用して、特定のページセットを対象とする Page Shield ポリシーを作成します。たとえば、次のようになります。
-
- 式ルールおよび Page Shield ディレクティブを参照して、特定のページやスクリプトを効果的にターゲットにします。
次のビデオは、Page Shield スクリプト監視の設定方法の例を示しています。
Page Shield 通知を設定するには、新規または変更されたスクリプト通知を Cloudflare から受信するように Webhook エンドポイントを設定します。ゾーン名は、CDN API の getZonesInfo エンドポイントを使用して取得できます。以下に例を示します。
Webhook を削除するには:
Log Center で使用可能な違反ログにアクセスするか、eCDN Logpush ジョブを設定して違反を S3 バケットにストリーミングします。
Page Shield ポリシー違反ログは、イベントがブラウザーで発生したときではなく、イベントが受信されたときに生成されます。Firefox ブラウザーは CSP イベントをリアルタイムで送信します。
次のビデオは、アラートの構成方法、Slack 統合、およびゾーンごとにアラートを管理する方法の例を示しています。
- Get Page Shield scripts - 指定したクエリパラメーターに一致するすべてのスクリプトを取得します。結果はページ分けされており、関心のあるスクリプトがこの結果に含まれていない可能性があります。レスポンスヘッダーのページネーション情報を使用して、オフセットを変更し、さまざまなページをスキャンします。クエリパラメーターを使用して、支払いページにとって意味のあるスクリプトに焦点を絞ることができます。
- Get Page Shield script - スクリプト ID で指定された特定のスクリプトの詳細を取得します。
- Get Page Shield policies - 特定のゾーンに設定されたすべての Page Shield ポリシーを取得します。
- Create Page Shield policy - ゾーンの Page Shield ポリシーを作成します。Page Shield ポリシーを作成する際に、式で許可されているフィールドを参照できます。設定されたディレクティブは、ポリシーの values フィールドに取り込まれます。許可されるディレクティブのリストと使用例はこちらに記載されています。
- Get Page Shield policy - ゾーンに指定された Page Shield ポリシーを取得します。
- Update Page Shield policy - ゾーンに指定された Page Shield ポリシーを更新します。
- Delete Page Shield policy - ゾーンに指定された Page Shield ポリシーを削除します。
- Get Page Shield notification - Page Shield アラート通知を受け取ります。
- Put Page Shield notification - Page Shield アラート通知を更新または作成します。
- Delete Page Shield notification - Page Shield アラート通知を削除します。
- eCDN Logpush には、Create a logpush job という Page Shield のジョブタイプがあり、これを使ってポリシー違反を お客様の S3 バケットへストリーミングします。Log Center で違反ログと監査ログの両方にアクセスできます。
| 定義された要件 | 定義された要件の達成 | 関連リソース |
|---|---|---|
| 各スクリプトが承認されていることを確認するための方法が実装されていること。 | 監視対象のデータの提案や、インラインスクリプトやサードパーティスクリプトのハッシュに基づいて、支払ページにポリシーを展開します。 許可ポリシーを作成して、選択した JavaScript を支払ページで実行するように定義し、明示的に許可されていない JavaScript をデフォルトで拒否します。 | |
| 各スクリプトの完全性を保証するための方法が実装されていること。 | ハッシュベースのポリシー/ディレクティブを構成することで、スクリプトの整合性をより効果的に検証できるようになります。 インラインスクリプトとサードパーティスクリプトのハッシュに基づいてアラートと違反レポートを確認します。 ストアフロントゾーンで悪意のあるリソースの検出が有効になっており、悪意のあるコードの検出に対するアラートを設定します。 | |
| すべてのスクリプトのインベントリが管理されており、各スクリプトがなぜ必要かについて、ビジネス上または技術上の理由が文書で明確にされていること。 | CDN-API を使用してページで確認されたスクリプトのリストを取得し、レスポンスをキャプチャします。CDN-API を通じてスクリプトのリストを定期的に取得し、お客さま側でインベントリを管理することができます。スクリプトのインベントリを管理する責任はマーチャントにあります。 |
| 定義された要件 | 要件を満たす方法に関するガイドライン | 関連リソース |
|---|---|---|
| 不正な改ざん (侵害の兆候、変更、追加、削除を含む) が、HTTP ヘッダーおよび消費者のブラウザーで受信される支払ページの内容に対して行われた場合に、担当者に警告すること。 | コード変更アラート、新しいリソースアラート、および新しい悪意あるスクリプトアラートに Page Shield 通知を使用すると、買い物客のブラウザーに読み込まれている、または悪意があると見なされる新しいスクリプト/リソースを特定し、通知を受け取ることができます。これらのアラートを構成するのはユーザーの責任です。 また、Page Shield の通知とポリシーやポリシー違反を構成することで、新しいリソースとコードの変更を監視することもできます。 違反したリソースはポリシーによってブロックされ、ダッシュボードを通じてさらに確認するためにリアルタイムで報告されます。Logpush を使用して、これらの違反ログを S3 バケットに送信するか、Log Center で表示します。許可されたリソースは、変更や悪意のある動作がないか、Cloudflare によって常にチェックされています。これらのアラートは、右側で強調表示されている CDN-API を使用して構成できます。 | |
メカニズム機能は、以下のいずれかの頻度で実行します。
| デプロイされたポリシーの違反レポートは、Log Center で表示することも、S3 バケットに取得するように logpush ジョブを構成することで取得することもできます。 |
- 特定のゾーンには、最大 5 つのポリシーを設定できます。PCI コンプライアンスのポリシーを構成するには、これで十分です。
- 特定のレルムに対して最大 5 つの通知を設定できます。
- Get page shield scripts は、一度に最大 200 個のスクリプトを取得します。offset クエリパラメーターを使用して追加の結果を表示し、他のクエリパラメーターを使用してスコープ検索を特定の支払パスに制限します。
- Log Center のログは 14 日間保持されます。
- Page Shield の監視はサンプリングに基づいています。スクリプトをデプロイしてからスクリプト/ログに表示するまでに若干の遅延が生じる場合があります。また、スクリプトと違反の報告はブラウザーの動作にも依存します。
/cdn-cgi/challenge-platform/ 内のすべてが許可されていることを確認します。CSP では、配信元ドメイン (script-src self) から提供されるスクリプトを許可する必要があります。
CSP がスクリプトタグに nonce を使用している場合、Cloudflare は CSP レスポンスヘッダーを解析して、挿入するスクリプトにこれらの nonce を追加します。
CSP がスクリプトタグに nonce を使用せず、JavaScript 検出が有効になっている場合は、Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-b123b8a70+4jEj+d6gWI9U6IilUJIrlnRJbRR/uQl2Jc='), or a nonce ('nonce-...') is required to enable inline execution. のようなコンソールエラーが表示されることがあります。unsafe-inline の使用は強く推奨しません。代わりに、スクリプトタグで CSP nonce を使用することをお勧めします。これは、CDN で解析およびサポートされています。
私のアカウントで Page Shield は有効になっていますか?
- はい。Page Shield は Salesforce Commerce Cloud (SFCC) のすべてのお客さまにデフォルトで提供されています。ただし、この機能を十分に活用するには、ポリシーと通知を定義する必要があります。
Page Shield ポリシーのアクションはどのように機能しますか?
- Page Shield は、ポリシーでカバーされていないリソースをブロックせずにログに記録します。このアクションを使用して、新しいポリシーを展開する前に検証します。ポリシーでカバーされていないリソースは、ポリシー違反ログで報告されます。
- Page Shield は、ポリシーで明示的に許可されていないリソースをブロックします。[Log] アクションで新しいポリシーを検証した後は、[Allow] アクションに切り替えて、アプリケーションのエンドユーザーに影響を与える可能性のある重要なアプリケーションリソースがポリシーによってブロックされないようにします。[Allow] アクションを指定したポリシーでは、ブロックされたリソースのポリシー違反がログに記録されます。
Page Shield はインラインスクリプトを検出しますか?
- はい、インラインスクリプトは Page Shield ポリシーでブロックできます。ただし、これらは Page Shield によって識別される GET スクリプトでは報告されず、ポリシー違反ログにも含まれません。
CSP レポートはサンプリングされていますか?
- はい、Page Shield は、送信されるレスポンスのサンプルに対して、Web ページリソースを監視するための CSP レポート専用の HTTP ヘッダーを追加します。このため、スクリプトまたは Cookie をデプロイしてから、Page Shield がそれらのデータを GET スクリプトで検出するまでに、若干の遅延が生じる場合があります。
Page Shield をアクティブ化した後、スクリプトが表示されないのはなぜですか?
- Page Shield は、すべてのページビューでデータを収集するのではなく、サンプリングアプローチを使用して情報を効率的に収集します。トラフィックが少ないドメインでは、初期レポートの生成に時間がかかることがあります。レポート作成プロセスを高速化するには、アプリケーションへのトラフィックを積極的に生成し、Page Shield により多くのデータを提供し、レポート生成を高速化します。
見覚えのないスクリプトが表示されるのはなぜですか?
- スクリプトは、多くの場合、アプリケーション外の他のスクリプトを参照します。スクリプトモニターダッシュボードに予期しないスクリプトが表示された場合は、悪意のあるアクティビティの兆候がないか確認します。
ブラウザーの開発者ツールにコンテンツセキュリティポリシー (CSP) に関する警告が表示されるのはなぜですか?
-
Page Shield は、CSP のレポート専用ディレクティブを使用して、アプリケーションで実行されているすべてのスクリプトのリストを収集します。一部のブラウザーでは、これらのスクリプトが開発者ツールのコンソールウィンドウに警告として表示されます。以下に例を示します。
これらの警告は、読み込まれたスクリプトを検出するために Page Shield が必要とするレポートに関連しているため、無視しても問題ありません。
許可リストに登録したドメインのポリシー違反レポートが表示されるのはなぜですか?
-
CSP のレポート専用ディレクティブを介して報告されたポリシー違反では、リダイレクトまたはリダイレクト HTTP ステータスコードは考慮されません。これはセキュリティ上の理由による設計です。Page Shield によって追加される CSP レポート専用 HTTP ヘッダーの形式は次のとおりです。
- SFCC CDN プロバイダーは、Web ページリソースの監視に使用される CSP レポート専用 HTTP ヘッダーを、送信されたレスポンスのサンプルに追加します。Page Shield ログポリシーを構成すると、他の CSP レポート専用ヘッダーがレスポンスに追加されます。SFCC CDN プロバイダーは、顧客定義のポリシーに関連するこれらのレポート専用ヘッダーのサンプリングを実行しません。
- Page Shield でカバーしたい一部のサードパーティサービスでは、ポリシーによるリダイレクトの実行が許可されています。たとえば、Google 広告は CSP ポリシーではうまく機能しません。
adservice.google.comドメインを許可ポリシーに追加すると、許可ポリシーに存在しない別のドメインへのリダイレクトにより、このドメインのポリシー違反レポートを受け取る可能性があります。このような場合、違反レポートには、リダイレクトされた宛先ドメインではなく、元のドメインが引き続き記載されるため、混乱が生じる可能性があります。この問題に対処するには、リダイレクトされた宛先のドメインを許可ポリシーに追加します。リダイレクトのために、ポリシーに複数のドメインを追加する必要がある場合があります。
マーチャントは PCI 3.x コンプライアンスを達成するために eCDN をどのように使用していますか?
- eCDN は、マーチャントが Web Application Firewall (WAF) を通じて PCI DSS 2.0 および 3.0 要件 6.6 を満たすのを支援します。さらに、eCDN は、PCI コンプライアンスに不可欠な最新の TLS 暗号化バージョンをサポートしています。
買い物客のブラウザーに読み込まれて実行される支払ページスクリプトの完全なリストを取得するにはどうすればよいですか?
- ドメインのページに読み込まれたサードパーティスクリプトに関する詳細情報は、CDN Zones API エンドポイントを使用して取得できます。PCI コンプライアンスのために、ページ URL をフィルタリングし、支払ページに読み込まれるスクリプトを一覧表示できます。
PCI Webhook 通知にはどのアラートが含まれますか?
- PCI 4.0 の Webhook 通知タイプは事前設定されており、変更やカスタマイズはできません。含まれるアラートは次のとおりです。
- 新しいコード変更検出アラート: ユーザーが読み込んだ JavaScript ファイルのコードが変更されたときに通知を受け取ります。
- 新しい悪意のあるスクリプトのアラート: ユーザーが読み込んだ JavaScript ファイルが悪意があると分類されたときに通知を受け取ります。
- 新しいリソースに関するアラート: ユーザーが以前に表示されていない新しいリソースを読み込んだときに通知を受け取ります。
Page Shield ポリシーを作成せずに Webhook 通知を受け取ることはできますか?
- いいえ、各プロキシ/レガシーゾーンで、スクリプトの変更、追加、または悪意のあるスクリプトの検出に関するアラートを受信するには、Page Shield ポリシーが必要です。
Policies configuredのあるゾーンでは、許可ポリシーによってブロックされたリソースに関する通知は受信されません。これらのポリシー違反ログは、Logpush を使用して Log Center で確認できます。
PCI 4.0 ツールはレガシーゾーンとプロキシゾーンの両方で機能しますか?
- はい。CDN ZONES API エンドポイントにより、レガシーゾーンとプロキシ ゾーンの両方で PCI ポリシー、通知、およびログの構成が可能になります。プロキシゾーンへの移行が推奨されており、Hyperforce の有効化には必須です。