クイックスタート
eCDN でサポートされている暗号スイート
eCDN Logpush
eCDN Logpush フィルター
eCDN Logpush ログフィールド
eCDN 自動証明書
サポートされている CSP ディレクティブ
違反ログへのアクセス
eCDN WAFv2
eCDN カスタムルール
eCDN レート制限ルール
Inventory IMPEX ベストプラクティス
Ask the Community
eCDN PCI ツールは、Cloudflare Page Shield を活用して、最新の PCI 4.0 要件への準拠を支援します。Page Shield は、PCI DSS v4.0 標準で概説されている特定のクライアント側のセキュリティ要件を監視および対処するためのツールを提供します。
eCDN はコンプライアンスに大きく貢献しますが、PCI 認証プロセスを引き続き管理し、適用されるすべての要件に準拠していることを確認する必要があります。特定のニーズを満たすように PCI Page Shield ポリシーを構成します。
Page Shield は、Web サイトの訪問者によって読み込まれたスクリプトを管理し、リソースの変更が発生したとき、または悪意のあるものとしてフラグが立てられたときに、セキュリティチームへのアラート通知をトリガーします。
Page Shield の有効化:
Page Shield の監視はサンプリングに基づいているため、スクリプトをデプロイしてからこのデータを結果で利用できるようにするまでに若干の遅延が生じる場合があります。
Page Shield は、スクリプト、またはスクリプトによる接続が悪意があるかどうかを判断するために、さまざまなメカニズムを実装しています。これらのメカニズムには、次のものが含まれます。
脅威フィードの更新により、以前に検出されたスクリプトや接続に対する新しいチェックがトリガーされるため、Page Shield の監視には常に最新の分類が反映されます。
アラートは、次の項目に対して構成できます。
悪意のある URL と悪意のあるドメインのアラートは、PCI 4.0 要件の一部ではないため、Webhook を介したアラートと通知には含まれません。
Note
ポリシーは、コンテンツセキュリティポリシー (CSP) ディレクティブを使用して、アプリケーションで許可されるリソースを定義します。ポリシーでは、違反をログに記録し、リソースの許可リストを適用して、ポリシーに含まれていないリソースを効果的にブロックできます。このモデルに従って、許可するリソースを定義し、それ以外のリソースはすべて拒否します。このアプローチにより、アプリケーション内の不要なサードパーティスクリプトの攻撃対象領域を削減できます。Business Manager で Page Shield ポリシーを設定するには、Salesforce ヘルプ の eCDN の Page Shield ポリシーの構成を参照してください。
各 Page Shield ポリシーは、次のいずれかのアクションを実行します。
Log: Page Shield は、ポリシーでカバーされていないリソースをログに記録しますが、リソースをブロックすることはありません。Log アクションを使用して、新しいポリシーを展開する前に検証します。ポリシーの対象とならないリソースは、ポリシー違反として報告されます。Allow: Page Shield は、ポリシーで明示的に許可されていないリソースをブロックします。Log アクションを使用して新しいポリシーを検証した後は、Allow アクションに切り替えます。そうすることで、ポリシーが重要なアプリケーションリソースをブロックして、アプリケーションのエンドユーザーに影響を与えるのを防げます。Allow アクションのポリシーでは、ブロックされたリソースのポリシー違反がログに記録されます。次の場合にアラートが表示されます。
Allow アクションを使用してゾーンのポリシーが作成されたとき。次の場合にはアラートを受信しません。
Log アクションで構成された場合。ポリシー違反情報を取得するには、次のようにします。
ポリシーの追加または変更の監査イベントは、Log Center でのみ使用できます。
Note
Page Shield スクリプトの監視では、次のことができます。
PCI 準拠が必要なページでスクリプト監視を設定するには、次のようにします。
CDN Zones API の Get page shield scripts エンドポイントを呼び出して、スクリプトと依存関係のリストを取得します。
limit パラメーター値を指定します。pageUrl、prioritizeMalicious、status、urls など、さまざまなクエリパラメーターを使用して、目的のページで実行されているスクリプトに焦点を合わせます。1curl "https://{shortcode}.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/f_ecom_bcxj_prd/zones/{zoneId}/page-shield/scripts?excludeCdnCgi=true&orderBy=last_seen_at&direction=desc&offset=0&limit=3" --request 'GET' \
2--header 'Authorization: Bearer <access_token>' \
3--header 'Content-Type: application/json'次のビデオは、検出されたスクリプトを取得する方法の例を示しています。
Page Shield 認証ポリシーを使用すると、次のことができます。
ポリシーを使用してスクリプトを承認するには、次のようにします。
1curl "https://{shortcode}.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/f_ecom_bcxj_prd/zones/{zoneId}/page-shield/policies"
2 --request POST
3 --header 'Authorization: Bearer <access_token>' \
4 --header 'Content-Type: application/json'
5 --data '{
6 "action": "allow",
7 "description": "Policy for payment page",
8 "enabled": true,
9 "expression": "ends_with(http.request.uri.path, \"/payments\")",
10 "value": "script-src 'none' '*.stripe.com' '*.klarna.com'"
11 }次のビデオは、Page Shield スクリプト監視の設定方法の例を示しています。
Page Shield 通知を設定するには、新規または変更されたスクリプト通知を Cloudflare から受信するように Webhook エンドポイントを設定します。ゾーン名は、CDN API の getZonesInfo エンドポイントを使用して取得できます。以下に例を示します。
1`curl "https://{shortCode}.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/{organizationId}/page-shield/notifications"
2--request POST
3--header "content-type: application/json" --header "Authorization: Bearer <token>"
4--data '{ "webhookUrl": "https://my.webhook.url/pageshield-notification", "secret": "<my_secret>",
5 "zones": [ "mystorefront.com", "prd-abcd-my-proxy-zone-storefront-com.cc-ecdn.net" ] }'`Webhook を削除するには:
1curl "https://{shortCode}.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/{organizationId}/page-shield/notifications/{webhookId}"
2--request DELETE
3--header "content-type: application/json" --header "Authorization: Bearer <token>"Log Center で使用可能な違反ログにアクセスするか、eCDN Logpush ジョブを設定して違反を S3 バケットにストリーミングします。
Page Shield ポリシー違反ログは、イベントがブラウザーで発生したときではなく、イベントが受信されたときに生成されます。Firefox ブラウザーは CSP イベントをリアルタイムで送信します。
Note
次のビデオは、アラートの構成方法、Slack 統合、およびゾーンごとにアラートを管理する方法の例を示しています。
| 定義された要件 | 定義された要件の達成 | 関連リソース |
|---|---|---|
| 各スクリプトが承認されていることを確認するための方法が実装されていること。 | 監視対象のデータの提案や、インラインスクリプトやサードパーティスクリプトのハッシュに基づいて、支払ページにポリシーを展開します。 許可ポリシーを作成して、選択した JavaScript を支払ページで実行するように定義し、明示的に許可されていない JavaScript をデフォルトで拒否します。 | |
| 各スクリプトの完全性を保証するための方法が実装されていること。 | ハッシュベースのポリシー/ディレクティブを構成することで、スクリプトの整合性をより効果的に検証できるようになります。 インラインスクリプトとサードパーティスクリプトのハッシュに基づいてアラートと違反レポートを確認します。 ストアフロントゾーンで悪意のあるリソースの検出が有効になっており、悪意のあるコードの検出に対するアラートを設定します。 | |
| すべてのスクリプトのインベントリが管理されており、各スクリプトがなぜ必要かについて、ビジネス上または技術上の理由が文書で明確にされていること。 | CDN-API を使用してページで確認されたスクリプトのリストを取得し、レスポンスをキャプチャします。CDN-API を通じてスクリプトのリストを定期的に取得し、お客さま側でインベントリを管理することができます。スクリプトのインベントリを管理する責任はマーチャントにあります。 |
| 定義された要件 | 要件を満たす方法に関するガイドライン | 関連リソース |
|---|---|---|
| 不正な改ざん (侵害の兆候、変更、追加、削除を含む) が、HTTP ヘッダーおよび消費者のブラウザーで受信される支払ページの内容に対して行われた場合に、担当者に警告すること。 | コード変更アラート、新しいリソースアラート、および新しい悪意あるスクリプトアラートに Page Shield 通知を使用すると、買い物客のブラウザーに読み込まれている、または悪意があると見なされる新しいスクリプト/リソースを特定し、通知を受け取ることができます。これらのアラートを構成するのはユーザーの責任です。 また、Page Shield の通知とポリシーやポリシー違反を構成することで、新しいリソースとコードの変更を監視することもできます。 違反したリソースはポリシーによってブロックされ、ダッシュボードを通じてさらに確認するためにリアルタイムで報告されます。Logpush を使用して、これらの違反ログを S3 バケットに送信するか、Log Center で表示します。許可されたリソースは、変更や悪意のある動作がないか、Cloudflare によって常にチェックされています。これらのアラートは、右側で強調表示されている CDN-API を使用して構成できます。 | |
メカニズム機能は、以下のいずれかの頻度で実行します。
| デプロイされたポリシーの違反レポートは、Log Center で表示することも、S3 バケットに取得するように logpush ジョブを構成することで取得することもできます。 |
/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 ポリシーのアクションはどのように機能しますか?
Page Shield はインラインスクリプトを検出しますか?
CSP レポートはサンプリングされていますか?
Page Shield をアクティブ化した後、スクリプトが表示されないのはなぜですか?
見覚えのないスクリプトが表示されるのはなぜですか?
ブラウザーの開発者ツールにコンテンツセキュリティポリシー (CSP) に関する警告が表示されるのはなぜですか?
Page Shield は、CSP のレポート専用ディレクティブを使用して、アプリケーションで実行されているすべてのスクリプトのリストを収集します。一部のブラウザーでは、これらのスクリプトが開発者ツールのコンソールウィンドウに警告として表示されます。以下に例を示します。
1[Report Only] Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'none'".
2Either the 'unsafe-inline' keyword, a hash ('sha256-RFWPLDbv2BY+rCkDzsE+0fr8ylGr2R2faWMhq4lfEQc='), or a nonce ('nonce-...') is required to enable inline execution.これらの警告は、読み込まれたスクリプトを検出するために Page Shield が必要とするレポートに関連しているため、無視しても問題ありません。
許可リストに登録したドメインのポリシー違反レポートが表示されるのはなぜですか?
CSP のレポート専用ディレクティブを介して報告されたポリシー違反では、リダイレクトまたはリダイレクト HTTP ステータスコードは考慮されません。これはセキュリティ上の理由による設計です。Page Shield によって追加される CSP レポート専用 HTTP ヘッダーの形式は次のとおりです。
1content-security-policy-report-only: script-src 'none'; connect-src 'none'; report-uri https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report?<QUERY_STRING>adservice.google.com ドメインを許可ポリシーに追加すると、許可ポリシーに存在しない別のドメインへのリダイレクトにより、このドメインのポリシー違反レポートを受け取る可能性があります。このような場合、違反レポートには、リダイレクトされた宛先ドメインではなく、元のドメインが引き続き記載されるため、混乱が生じる可能性があります。この問題に対処するには、リダイレクトされた宛先のドメインを許可ポリシーに追加します。リダイレクトのために、ポリシーに複数のドメインを追加する必要がある場合があります。Note
マーチャントは PCI 3.x コンプライアンスを達成するために eCDN をどのように使用していますか?
買い物客のブラウザーに読み込まれて実行される支払ページスクリプトの完全なリストを取得するにはどうすればよいですか?
PCI Webhook 通知にはどのアラートが含まれますか?
Page Shield ポリシーを作成せずに Webhook 通知を受け取ることはできますか?
Policies configured のあるゾーンでは、許可ポリシーによってブロックされたリソースに関する通知は受信されません。これらのポリシー違反ログは、Logpush を使用して Log Center で確認できます。PCI 4.0 ツールはレガシーゾーンとプロキシゾーンの両方で機能しますか?