ボットが悪いと決めつけない。見分けるべきは行いそのものです

「ボット=悪者」という誤解

インターネットのセキュリティにおいて、「ボットからの攻撃」は深刻な課題です。
ボットというだけでしばしば悪者扱いされますが、実際はそうとは限りません。

まず、ボットとは何かというと、単純には「人間以外」を指します。

たとえば、Googleの検索エンジンがサイトを巡回するのもボットです。価格比較サービスが商品情報を集めるのもボット。サーバーの死活監視をするのもボットです。これらは人の役に立つ「良いボット」です。
(しかしながらある人にとっては便利でもある人にとっては迷惑、そんなケースもあるでしょうが) 逆に、人だったら悪さや攻撃をしないかというと、そんなことはありません。

ボットだから悪い、そうではなく、問題は「攻撃をしかけてくる場合」です。

人間が手動でSQLインジェクションを仕掛けても、それは攻撃です。
ボットが正規の手順でページを閲覧しても、それは問題ありません。

ですから、ボットを一概に遮断すればいいのではなく、根本的には攻撃である場合を遮断するのが適切な対処です。


Cloudflareは何を見ているのか

では、Cloudflareはどうやって攻撃や危険なアクセスを判断しているのでしょうか。

それはリクエストの中身を見て判断しています。

CloudflareWAFの管理ルール

WAF(Webアプリケーションファイアウォール)は、リクエストの内容をチェックします。

  • SQLインジェクションのパターンが含まれている → 遮断
  • 不審なコマンドが埋め込まれている → 遮断

このように、ボットかどうかではなく、リクエストの中身が危険かどうかを見ています。。

レートリミット

短時間に異常な回数のアクセスがある場合に制限をかけます。

  • 1分間に1000回アクセス → 制限
  • 通常の閲覧ペース → 問題なし

これも「自動化されているか」ではなく、「アクセスパターンが正常かどうか」を見ています。


Super Bot Fight Mode

もうひとつ触れておきたいのが、Super Bot Fight Modeの存在です。

このモードは「自動化されたアクセスかどうか」という属性で判断します。
行いではなく、「人間が操作しているか、プログラムが動かしているか」という点を見ているわけです。

だからこそ、Googlebotのような「検証済みの良いボット」は別扱いする仕組みが用意されています。
属性だけで判断することの限界を、Cloudflare自身もわかっているということでしょう。


本当に見るべきは「意図と行動」

まとめると、Cloudflareのセキュリティの考え方はこうです。

ボットだから遮断するのではなく、攻撃的な行いをするから遮断する。

これは、現実社会と同じ考え方です。
車を運転していても、信号を守れば問題ない。車という「属性」ではなく、「行い」が問われます。

繰り返しになりますが、「ボットをブロックしたい」という発想より「どんな行いを許可して、どんな行いを拒否したいか」と考えることが適切です。
Cloudflareを使えば、それを実現できます。