2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Fastly のふたつの Rate Limiting の機能について

Last updated at Posted at 2023-11-13

はじめに

Fastly NGWAF の上位パッケージには Advanced Rate Limiting(ARL) という機能が含まれています。

これは NGWAF のエージェントが指定した条件のリクエストを IP アドレスなどをベースにカウントし、設定した閾値を超える場合にアクセスをブロックするなどの機能を提供するものです。

もうひとつ別の Rate Limiting の機能として、Fastly は CDN レイヤーに Varnish Configuration Language(VCL) で実装する Edge Rate Limiting(ERL) という機能も提供しています。

この記事ではこの二つの機能の特性と、それぞれに適した用途について説明します。

ARL と ERL の比較

Advanced Rate Limiting(ARL)

ログインやカートへのアイテムの追加など特定の動作の繰り返しなど比較的小規模なアクセスに対するレートリミットです。
分かりやすいユースケースで言うとログイン時に3回パスワードを間違えるとしばらくアクセスが出来ないようにしたり、クレジットカードの登録を繰り返す IP からのアクセスを自動でブロックするといったユーザーの行動やボットに対するレートリミットとして利用することが出来ます。

NGWAF の実装はオリジン側でも Fastly の CDN 上(Edge Deploy)でも構いません。(ただしレートリミットが発動するタイミングに若干の動作の違いがあります)

ARL を利用するには本機能を含むパッケージの Fastly の NGWAF の契約が必要です。

ARL 動作イメージ

image.png

ARL の挙動

Rate Limit ルールに指定した条件に合致するリクエストを受信すると、threshold signal に指定した signal がリクエストに付与されます。この条件を満たすリクエストがカウントされ閾値を超えると指定した期間、ブロックなどの処理を行います。

設定する場所: NGWAF(Edge Deploy, オリジン環境へのエージェント)
カウント対象: IP, リクエストヘッダ、その組み合わせ
カウント場所: Agent、その後 CloudEngine を通じて数値を合算
検知期間: 1分 or 10分
閾値: 1 - 10,000
Actionの時間: 5分から24時間
Action の対象: カウントと同じ条件、特定のシグナル、全てのリクエスト
Action の種類: Block, Log

典型的な利用ケース: アカウントテイクオーバー(ATO)、クレデンシャルスタッフィング、スニーカーボット、コンテンツスクレイピング、クレジットマスターアタックなど

設定画面

image.png

制約事項
・Site ごとに作成可能な Rate Limiting Rule の数には上限があります。
・閾値を超えてから実際に Action が開始されるまでは NGWAF の実装方法によって若干の時差があります。(Core型は即時、Edge Deploy は 30秒-1分程度)

機能の詳細は以下のドキュメントをご参照下さい。
https://docs.fastly.com/en/ngwaf/working-with-advanced-rate-limiting-rules

Edge Rate Limiting(ERL)

ERL は DDoS など中規模、大規模な攻撃に対する対策として主に利用されます。CDN レイヤーで実装されるため NGWAF の利用の有無に関わらず、Fastly CDN を利用していることが利用条件となります。

ERL 自体は VCL で CDN 上に実装しますが、ERL を利用するためには ERL を含むセキュリティオプションの契約が必要です。

ERL 動作イメージ

image.png

ERL の挙動

指定した条件を満たすリクエストが閾値(RPSで設定)を超えると指定したアクションをとる。ERL は Web UI でも設定可能ですが VCL を利用してより柔軟な設定を行うことも可能です。

設定する場所: VCL (Fastly CDN)
カウント対象: IP , User-Agent, IP and User-Agent
カウント場所: POP(配信拠点) 単位
検知期間: 1秒、10秒、60秒
閾値: 10 - 10,000 RPS
Actionの時間: 1-60分
Actionの種類: Block, Log

典型的な利用ケース: DDoS攻撃対策、中規模以上の不正アクセスに対する対策

※ 上記は ウェブ UI を利用して設定した場合の内容です。VCL を利用することでよりカスタマイズした挙動を設定することも可能です。

設定画面
image.png

制約事項
・数値は配信拠点(POP)ごとにカウントされ別拠点には共有されません。
・累積したカウント数は、1秒、10秒、または60秒のうち、設定した時間枠に基づいて計算された推定レートです。

機能の詳細は以下のドキュメントをご参照下さい。
https://docs.fastly.com/ja/guides/working-with-rate-limiting-policies

まとめ

この記事では Fastly が提供する二つの Rate Limiting 機能について説明しました。用途に応じて使い分けることでサービスにあった最適なセキュリティを適用しましょう。

また、Fastly では Rate Limiting の機能以外にもセキュリティに利用可能な様々な機能を提供しています。Webサイトやアプリケーションのセキュリティにお困りの際はぜひご相談下さい。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?