Web アプリケーションファイアウォール (WAF)

重要

発表どおり、2023 年 4 月 30 日が Fastly の 正式な廃止 となります。 WAF (WAF レガシーおよび WAF 2020)。当社の Fastly Next-Gen WAF も同様の機能を提供します。疑わしい異常な Web トラフィックを監視し、指定したアプリケーションやオリジン サーバーに対する攻撃をリアルタイムで保護します。

Fastly の Web アプリケーションファイアウォール (WAF) は、悪意のあるリクエストを検出し、Web アプリケーションに到達する前にログに記録したりブロックできるセキュリティプロダクトです。Fastly WAF では潜在的な攻撃を検出してブロックするルールを使用することができます。これらのルールはポリシーとしてまとめられ、エッジに配置された Fastly のサービスにデプロイされます。WAF 機能の利用をご希望の場合は、詳細について Fastly のセールスチームまでメールでお問い合わせください。

Fastly WAF の仕組み

Fastly WAF は、HTTP または HTTPS で実行される Web アプリケーションを、既知の脆弱性に加え、クロスサイトスクリプティング (XSS) や SQL インジェクションなどの一般的な攻撃から保護します。Fastly WAF は、分散アプリケーションのクライアントエッジに戦略的に保護レイヤーを配置し、Web アプリケーションおよび API の脆弱性を悪用した悪質なアクティビティを検出してブロックします。

攻撃者が Fastly WAF でブロックされる様子を示した図

Fastly WAF は、従来のネットワーク・ファイアウォール・アプライアンスと同様に、所定のセキュリティルールを使用して Web アプリケーションへのトラフィックを監視および制御します。ネットワークファイアウォールは IP レベルで動作し、信頼できないネットワークの IP アドレスをブロックし、プライベートネットワークへのアクセスを防ぎます。Fastly WAF は、ネットワークまたはトランスポート層レベルのファイアウォールとは異なり、主に HTTP アプリケーション層で Web トラフィックを分析することによって機能します。すべての HTTP ヘッダーと HTTPS ヘッダーと、HTTPS リクエストのポストボディを読み取り、サービス環境のために選択されたルールセットを使用して実行します。

Fastly が提供するデフォルトの WAF ルールセットに、個別のアプリケーションを狙った攻撃から保護するためのルールセットを追加することが可能です。Fastly WAF がご利用のサービスのバージョンに対して有効化されると、個々のルールのステータスをログ、ブロック、無効化モードに変更できるようになります。ルールへの変更は、バージョンに関係なく変更後すぐに有効になります。

注意

Fastly WAF は、トラフィックが Fastly を経由する場合にのみ機能します。サービスのご利用には、Fastly アカウントを作成し、サービスを作成した後、ドメイン名の CNAME DNS レコードを追加してトラフィックを Fastly に向け、Fastly WAF を経由するようにする必要があります。

Fastly WAF を有効にする

Fastly WAF を利用するために Web アプリケーションやオリジンサーバーの設定を変更する必要はありません。

有効化後のデフォルト WAF ポリシーの調整

WAF サービスをご購入頂くと、Fastly のカスタマーサポートチームが、ご指定のサービスに対してデフォルトの WAF ポリシーを有効化します。カスタマーサポートチームは、その後以下を含む追加設定の調整をサポートします。

上記の設定が完了後、ログの監視を開始し、正当なリクエストと、オリジンを保護するためにブロックすべきリクエストを見分けることができます。

ログエンドポイントの設定

悪意のあるアクティビティのリクエストをモニタリングするため、リモートログストリーミングを設定して WAF 変数をログに取得します。既存のログエンドポイントを利用することや、新規のログエンドポイントを Fastly WAF 用に作成することも可能です。ログで提供された情報を使用して WAF イベントを監視することができます。

ルールセットの設定

Fastly では Trustwave ModSecurity Rules と、OWASP Top 10 をベースとした WAF のルールセットをデフォルトとして提供します。デフォルトのルールセットでは Web アプリケーションに対する幅広い一般的な攻撃を検出できるように設計されています。

Fastly では、デフォルトのプリフェッチ条件 (req.backend.is_origin) を WAF ポリシーに適用しています。これにより、サービスに対するオリジンシールドの適用の有無にかかわらず、オリジンに送信されるトラフィックが Fastly WAF によって確実に検査されます。

プリフェッチ条件の変更は可能ですが、作成後は条件のタイプを変更 (type:request から type:prefetch) できないのでご注意ください。WAF 向けに type:prefetch の条件が作成されていない場合、POST メソッドを使用して作成する必要があります。例:

$ curl -s -X POST https://api.fastly.com/service/$service_id/version/$version/condition -H "Fastly-Key:$token" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"name": "Waf_Prefetch","priority": "10","statement": "req.backend.is_origin", "type": "prefetch"}'

また、PATCH メソッドを使用して、既存の WAF にプリフェッチ条件を添付できます。例:

$ curl -s -X PATCH https://api.fastly.com/service/$service_id/version/$version/wafs/$waf_id -H "Fastly-Key:$token" -H "Content-Type: application/vnd.api+json" -H "Accept: application/json" -d '{"data": {"attributes": {"prefetch_condition": "WAF_Prefetch"}, "type": "waf", "id": "$WAF_ID" }}'

PUT メソッドを使用して、既存のプリフェッチステートメントを変更できます。例えば、ホワイトリストに登録されていない IP アドレスからのリクエストとオリジントラフィックを WAF の検査の対象として追加することが可能です。

$ curl -v -X PUT https://api.fastly.com/service/$service_id/version/$version/condition/Waf_Prefetch -H "Fastly-Key:$token" -H "Content-Type: application/json" -d '{"statement": "req.backend.is_origin && !(client.ip ~ allowlist)"}' -H "Accept: application/json"

Fastly では、特定のアプリケーションや技術 (例: WordPress、Drupal、PHP、.Net) 用のルールセットを追加することも可能です。ルールセットを追加すると、WAF ポリシーに基づいてリクエストを評価するのに時間がかかり、レイテンシが増える可能性があるのでご注意ください。

ルールセットを選択すると、Fastly によって提供されたルールが随時更新されます。ただし、オリジンで使用されるアプリケーションやプラットフォームを変更した場合は Fastly に通知する必要があります。

レスポンスのカスタマイズ

Fastly のカスタマーサポートチームは WAF がブロックしたリクエストに返すカスタムレスポンスを作成し、HTTP ステータスコードを割り当てます。Fastly WAF がリクエストをブロックするように設定されている場合、リクエストがルールに一致するとキャッシュから直接レスポンスが配信されます。レスポンスをカスタマイズしたい場合は、Fastly のコントロールパネルから以下の内容を変更して下さい。

  • MIME Type: レスポンスのコンテンツタイプ。
  • Response: レスポンスを返す際に配信されるコンテンツ。
ヒント

Fastly WAF のレスポンスオブジェクトによってブロックされたユーザーに表示されるカスタム HTML エラーページを作成することができます。詳細については、カスタム HTML エラーページの作成に関するガイドを参照してください

警告

カスタマーサポートが作成した Fastly WAF レスポンスの StatusDescription は変更しないで下さい。

Fastly WAF のモニタリング

Fastly WAF ダッシュボードでは、Fastly サービスにデプロイされている Fastly WAF をモニタリングできます。

Fastly WAF の無効化

サービスの Fastly WAF を無効にするには、カスタマーサポートチーム https://support.fastly.com/ までご連絡下さい。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください