投稿日: Jan 13, 2023

Amazon CloudFront が新たに 2 つのヘッダー、「Cloudfront-viewer-header-order」および「Cloudfront-viewer-header-count」のサポートを開始しました。これにより、お客様は各リクエストと共に送信された HTTP ヘッダーの総数と、ヘッダーが送信された順序を追跡することができます。お客様はこの 2 つのヘッダーを使用してリクエストパターンを検出および特定し、想定された正当なパターンと比較できます。これを他のアクセスコントロールのルールと関連させて使用することで、リクエストを偽装しようとする試みを検出してブロックすることができます。

「Cloudfront-viewer-header-order」ヘッダーには、指定された順序通りにコロンで区切られたリクエストヘッダーのリストが表示されます。例えば、「Cloudfront-viewer-header-order: Host:User-Agent:Accept:Accept-Encoding」のようになります。「Cloudfront-viewer-header-count」ヘッダーには、リクエストヘッダーの総数が記録されます。例えば、「Cloudfront-viewer-header-count: 4」のように表示されます。お客様は AWS WAF アクセスコントロールルールを使用し、「Cloudfront-viewer-ja3-fingerprint」や「CloudFront-viewer-tls」ヘッダーなどの CloudFront ヘッダーを使用してリクエストのフィンガープリントを検出するための独自のアクセス制御対策を講じていました。この度リリースされた新しいヘッダーを利用し、リクエストのメタデータに関する追加ディメンションを検証することで、アクセス制御対策をさらに強化できます。例えば、同じ HTTP プロトコルバージョンのブラウザは通常、特定の順序で HTTP ヘッダーを送信します。user-agent ヘッダーで示されるブラウザタイプがリクエストヘッダーの順序と一致しない場合、そのリクエストは登録済みのソースから送信されたものではない可能性があります。また、ヘッダー数のヘッダーの値がヘッダー順序のヘッダーに示されるヘッダー数と一致しない場合、詳しい調査を行い、リクエストが送信元を偽装して送信されたものかどうかを検証することができます。さらに、お客様はこの 2 つのヘッダーをオリジンリクエストポリシーに追加することができます。追加後は、オリジンサーバー上、または CloudFront Functions と Lambda@Edge を使用してエッジ上で、カスタムロジックを構築することができます。

「Cloudfront-viewer-header-order」ヘッダーおよび「Cloudfront-viewer-header-count」ヘッダーは、すべての CloudFront エッジロケーションですぐにご利用いただけます。CloudFront コンソールまたは AWS SDK を使用して有効にすることができます。これらのヘッダーを使用しても追加料金は発生しません。詳細については、CloudFront デベロッパーガイドをご覧ください。