1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudflareのWAFを使って大量の会員登録攻撃からサービスを守った

Last updated at Posted at 2025-09-27

背景

先日、個人開発のサービスに外国から大量の会員登録を行う攻撃を受けました。
会員登録時にメールを送信していますので、連続で大量の会員登録が行われると大量にメールが送信されてしまいます。
メール送信にはAWS SES(メール送信サービス)を使っていますので、出来るだけ早く止めないと私のお財布にダメージが蓄積されていってしまいます...

スクリーンショット 2025-09-27 2.02.22.png
攻撃を受けてメールの送信数が急増している様子

ClodflareのWAFで一網打尽にした

WAFでは以下の条件でルールを設定しました。

  • 今回のような悪質なBotアクセスは拒否
  • 監視エージェントなどの有用なBotや検索エンジンのBotは許可
  • 人間のアクセスも許可

Cloudflareでは無料で上記のルールを簡単に設定可能です。

スクリーンショット 2025-09-27 2.23.27.png
実際に設定したルール

Cloudflare WAFの仕組み

Cloudflareに限らずだとは思いますが、WAFのルールは上から評価されていきます。
ルールの設定によっては後続のルールはスキップされます。

例えば、↓のようなルールの順番に設定してしまうと、1ですべてのBotが拒否されてしまうため、有用なBotだったとしても拒否されてしまいます。

良くない設定例

1. Botアクセスをすべて拒否
2. 有用なBotアクセスは許可

良い設定例

1. 有用なBotアクセスは許可
2. Botアクセスをすべて拒否

ルールの設定方法

Cloudflareのサイドバーからセキュリティ>セキュリティルールを選択します。
その後は、右上のルールを作成ボタンからカスタムルールを作成します。
スクリーンショット 2025-09-27 2.30.18.png

ルールはお好みですが、Googleなどの検索エンジンBotはSEO的な観点でも重要なBotですので上位で許可します。
今回はAllowVerifyBotというルール名にして、既知のBotは許可するルールを設定しました。
スクリーンショット 2025-09-27 2.31.32.png

今回設定したルール

↓の順番でルールを設定しました。

  1. 検索エンジンなどの有用なBotは許可
  2. 特定のIPは許可(監視エージェント)
  3. 日本国内のアクセスであれば許可。国外であればチャレンジを実行する。

チャレンジはCloudflareで↓のようにBotによるアクセスではないかを自動的にチェックしてくれるものです。
CAPTCHAと比べてユーザーの負担にならないのが大きなメリットです。

スクリーンショット 2025-09-27 2.11.47.png

結果

Cloudflareのトラフィック(帯域幅)を見ても攻撃が行われた9/23~24から減少していることが確認できます。

スクリーンショット 2025-09-27 23.02.33.png

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?