Web アプリケーションファイアウォール (WAF)
最終更新日 2020-07-14
2020年7月13日をもって、Fastly がこれまで提供してきた WAF はレガシー (旧) 製品となりました。旧バージョンをご使用のすべての既存のお客様は、引き続きサポートをご利用いただけます。Fastly Next-Gen WAF (powered by Signal Sciences) は、お客様のアプリケーションやオリジンサーバーに対する疑わしい異常な Web トラフィックをプロアクティブに監視し、お客様のシステムを保護します。いずれも、コントロールパネルのダッシュボードまたはアプリケーション・プログラミング・インターフェイス (API) を介してコントロールできます。Fastly Next-Gen WAF 製品をご検討、またはそれらへの移行に興味がおありの場合は、japan@fastly.com または Fastly のアカウントチームまでお問い合わせください。
Fastly の Web アプリケーションファイアウォール (WAF) は、悪意のあるリクエストを検出し、Web アプリケーションに到達する前にログに記録したりブロックできるセキュリティプロダクトです。Fastly WAF では潜在的な攻撃を検出してブロックするルールを使用することができます。これらのルールはポリシーとしてまとめられ、エッジに配置された Fastly のサービスにデプロイされます。WAF 機能の利用をご希望の場合は、詳細について Fastly のセールスチームまでメールでお問い合わせください。
Fastly WAF の仕組み
Fastly WAF は、HTTP または HTTPS で実行される Web アプリケーションを、既知の脆弱性に加え、クロスサイトスクリプティング (XSS) や SQL インジェクションなどの一般的な攻撃から保護します。Fastly WAF は、分散アプリケーションのクライアントエッジに戦略的に保護レイヤーを配置し、Web アプリケーションおよび API の脆弱性を悪用した悪質なアクティビティを検出してブロックします。
Fastly WAF は、従来のネットワーク・ファイアウォール・アプライアンスと同様に、所定のセキュリティルールを使用して Web アプリケーションへのトラフィックを監視および制御します。ネットワークファイアウォールは IP レベルで動作し、信頼できないネットワークの IP アドレスをブロックし、プライベートネットワークへのアクセスを防ぎます。Fastly WAF は、ネットワークまたはトランスポート層レベルのファイアウォールとは異なり、主に HTTP アプリケーション層で Web トラフィックを分析することによって機能します。すべての HTTP(S) ヘッダーと、 POST リクエストのボディを読み取り、サービス環境にて指定されたルールセットに基づいて検査を実行します。
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
) できませんのでご注意ください。type:prefetch
WAF 向けに の条件が作成されていない場合、POST メソッドを使用して作成する必要があります。以下に例を示します。
1
$ 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 にプリフェッチ条件を添付できます。以下に例を示します。
1
$ 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 の検査の対象として追加することが可能です。
1
$ 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 エラーページを作成できます。詳細については、カスタム WAF エラーページの作成に関するガイドをご覧ください。
カスタマーサポートが作成した Fastly WAF レスポンスの Status と Description は変更しないで下さい。
Fastly WAF のモニタリング
Fastly WAF ダッシュボードでは、Fastly サービスにデプロイされている Fastly WAF をモニタリングできます。
Fastly WAF の無効化
Fastly WAF を無効にするには、カスタマーサポートチーム (support@fastly.com) までご連絡下さい。