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

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(S) ヘッダーと、 POST リクエストのボディを読み取り、サービス環境にて指定されたルールセットに基づいて検査を実行します。

Fastly が提供するデフォルトの WAF ルールセットに、個別のアプリケーションを狙った攻撃から保護するためのルールセットを追加することが可能です。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:prefetchWAF 向けに の条件が作成されていない場合、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 のモニタリング

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

Fastly WAF の無効化

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

Back to Top