ボットが悪いと決めつけない。見分けるべきは行いそのものです
「ボット=悪者」という誤解
インターネットのセキュリティにおいて、「ボットからの攻撃」は深刻な課題です。
ボットというだけでしばしば悪者扱いされますが、実際はそうとは限りません。
まず、ボットとは何かというと、単純には「人間以外」を指します。
たとえば、Googleの検索エンジンがサイトを巡回するのもボットです。価格比較サービスが商品情報を集めるのもボット。サーバーの死活監視をするのもボットです。これらは人の役に立つ「良いボット」です。
(しかしながらある人にとっては便利でもある人にとっては迷惑、そんなケースもあるでしょうが)
逆に、人だったら悪さや攻撃をしないかというと、そんなことはありません。
ボットだから悪い、そうではなく、問題は「攻撃をしかけてくる場合」です。
人間が手動でSQLインジェクションを仕掛けても、それは攻撃です。
ボットが正規の手順でページを閲覧しても、それは問題ありません。
ですから、ボットを一概に遮断すればいいのではなく、根本的には攻撃である場合を遮断するのが適切な対処です。
Cloudflareは何を見ているのか
では、Cloudflareはどうやって攻撃や危険なアクセスを判断しているのでしょうか。
それはリクエストの中身を見て判断しています。
CloudflareWAFの管理ルール
WAF(Webアプリケーションファイアウォール)は、リクエストの内容をチェックします。
- SQLインジェクションのパターンが含まれている → 遮断
- 不審なコマンドが埋め込まれている → 遮断
このように、ボットかどうかではなく、リクエストの中身が危険かどうかを見ています。。
レートリミット
短時間に異常な回数のアクセスがある場合に制限をかけます。
- 1分間に1000回アクセス → 制限
- 通常の閲覧ペース → 問題なし
これも「自動化されているか」ではなく、「アクセスパターンが正常かどうか」を見ています。
Super Bot Fight Mode
もうひとつ触れておきたいのが、Super Bot Fight Modeの存在です。
このモードは「自動化されたアクセスかどうか」という属性で判断します。
行いではなく、「人間が操作しているか、プログラムが動かしているか」という点を見ているわけです。
だからこそ、Googlebotのような「検証済みの良いボット」は別扱いする仕組みが用意されています。
属性だけで判断することの限界を、Cloudflare自身もわかっているということでしょう。
本当に見るべきは「意図と行動」
まとめると、Cloudflareのセキュリティの考え方はこうです。
ボットだから遮断するのではなく、攻撃的な行いをするから遮断する。
これは、現実社会と同じ考え方です。
車を運転していても、信号を守れば問題ない。車という「属性」ではなく、「行い」が問われます。
繰り返しになりますが、「ボットをブロックしたい」という発想より「どんな行いを許可して、どんな行いを拒否したいか」と考えることが適切です。
Cloudflareを使えば、それを実現できます。