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

Fastly の Web アプリケーションファイアウォール (WAF) は、悪意のあるリクエストを検出し、Web アプリケーションに到達する前にログおよびブロックするセキュリティプロダクトです。Fastly WAF では、潜在的な攻撃を検出し、ブロックするルールを使用することができます。これらのルールはポリシーとしてまとめられ、エッジでの Fastly サービスでデプロイされます。WAF 機能の利用を開始するためにはセールスチームまでメール でご連絡下さい。

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) を変更できませんのでご注意ください。 WAF 向けに type:prefetch の条件が作成されていない場合、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