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

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

Fastly WAF の仕組み

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

Image showing attacker blocked by the Fastly WAF

ネットワークやトランスポートレイヤーでトラフィックを検査する従来のファイアウォールとは異なり、Fastly WAF は主に HTTP アプリケーションレイヤーで Web トラフィックを分析します。Fastly WAF は、お客様の特定のサービス環境に合わせて選択・調整されたポリシーに基づいて、すべての HTTP および HTTPS ヘッダーと POST リクエストのボディを検査します。

Fastly WAF がサービスのバージョンに対して有効化されると、ルールの追加や削除を行うことができます。WAF に追加した後に WAF ルールのステータスを変更することは可能です。アクティブルールのステータスを更新する場合は、ファイアウォールのバージョンをクローンし、更新したいアクティブルールのステータスを変更してから、新しいファイアウォールのバージョンをデプロイする必要があります。

Fastly WAF を有効にする

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

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

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

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

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

悪意のあるアクティビティを特定するためにリクエストの監視を開始するには、WAF 変数をログに記録できるようリモートログを設定します。既存のログエンドポイントだけでなく、Fastly WAF 用の新規のログエンドポイントを追加して使用することも可能です。ログで提供された情報を活用して WAF イベントを監視することができます。

プリフェッチ条件の追加

プリフェッチ条件とは、オリジンにリクエストを送信する前に Fastly がコードブロックを実行する条件のことです。すべてのリクエストを WAF に対して実行することを避けるために、WAF ポリシーにデフォルトのプリフェッチ条件 (req.backend.is_origin) を追加します。これにより、サービスにオリジンシールドが適用されているかどうかにかかわらず、オリジンに送信されるトラフィックのみが 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"}'

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

1
$ curl -s -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"

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

WAF を有効にする前に、Fastly WAF がブロックするすべてのリクエストに返すカスタムレスポンスを作成し、 HTTP ステータスコードを割り当てる必要があります。Fastly WAF がブロックモードに設定されている場合、リクエストがルールに一致するとキャッシュから直接レスポンスが配信されます。レスポンスをカスタマイズしたい場合は、コントロールパネルを使用して変更を行ってください。

ルールの選択

Fastly WAF では、Fastly 独自のルール、Trustwave ModSecurity Rules、OWASP Top 10 をベースとするルールのご利用が可能です。これらのルールにより、Web アプリケーションのトラフィックを監視して、一般的な攻撃を幅広くチェックすることができます。ルールはデフォルトでは有効になっていないため、明示的に有効化する必要があります。オリジンを保護するのに必要なルールを特定したら、WAF に追加します。設定したルールでトラフィックを検査する準備ができたら、WAF をデプロイする ことができます。

Fastly では、WAF での適用が可能な特定のアプリケーションやテクノロジー (例:WordPress、Drupal、PHP、.NETなど) 向けのルールもご用意しています。ルールを追加すると、公開された WAF ポリシーに対して審査されるリクエストのレイテンシが長くなることにご留意ください。

WAF ポリシーのルールを選択した後、ご都合に合わせて Fastly が提供するアップデートを適用することができます。オリジンで使用されているアプリケーションやテクノロジーを変更する場合、利用可能なルールを確認し、関連するルールを WAF に適用する必要があります。

Fastly WAF のモニタリング

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

Fastly WAF の無効化

スーパーユーザーのアクセストークンを持つユーザーは、Fastly サービスで使用されている WAF を無効にすることができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ curl -s -X PATCH \
  -H "Fastly-Key:$token" \
  -H "Content-Type: application/vnd.api+json" \
  -d @-
  https://api.fastly.com/service/waf/firewalls/$firewall_id \
<<JSON
{
  "data": {
    "type": "waf_firewall",
    "attributes": {
      "disabled": true
    }
  }
}
JSON
Back to Top