なぜIPだけでは判定できないのか
AIクローラーの判定で、最初に思いつくのはIPアドレスです。
しかしIPアドレスだけでの判定には大きな落とし穴があります。
AIサービスの多くはAWS・GCP・Azureといったクラウドインフラ上で動いています。これらのIPは人間のユーザーも普通に使っているため、「GCPのIPだからAI」とは言い切れません。
実際に自分のサーバーログを見ると、同じGCPのIPから人間のアクセスとAIのフェッチが混在していました。IPだけでフィルタリングすると、人間のアクセスをAIと誤判定するリスクがあります。
では何を見ればいいのか。答えはUser-Agent(UA)とIPの組み合わせです。
実際のログデータ(GCP IP・Chrome UA)
自分のサイトのサーバーログに、こんな記録が残っていました。
IPアドレス:34.34.226.62
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
一見、普通のWindowsユーザーがChromeでアクセスしてきた記録です。
しかしこのIPを調べると、GCP——GoogleのクラウドインフラのIPアドレスであることがわかりました。人間のChromeユーザーがGCPのIPから来ることは通常ありません。
ここで「IPとUAの組み合わせがおかしい」という違和感が生まれます。
ASN照合でSakana Chatと特定した手順
IPアドレスの所有者を調べるにはASN(自律システム番号)照合を使います。
34.34.226.62 をASNデータベースで照合すると、以下の結果が返ってきます。
IP : 34.34.226.62
ASN : AS15169
組織名 : Google LLC
サービス : Google Cloud Platform (GCP)
GCPのIPであることが確認できました。
次にSakana AIの公式情報を確認すると、Sakana ChatはGoogleのクラウドインフラ上で動作していることが明記されています。
つまり特定の手順はこうなります。
- ログにChromeのUAでアクセスしてきた記録を発見
- IPをASN照合→GCP(Google LLC)と判明
- Sakana ChatはGCP上で動作していることを確認
- タイムスタンプとフェッチ頻度からクローラー挙動と判断
- Sakana Chatのフェッチと特定
UA判定との組み合わせで精度を上げる
IPだけでも、UAだけでも、判定は難しいです。
自分が実際にやっていることはシンプルで、この2つを組み合わせるだけです。
- UAが一般的なブラウザ(Chrome・Safari等)
- IPがクラウド事業者(GCP・AWS・Azure等)
この両方が重なったとき、はじめて「AIっぽい」と判断します。
人間がGCPのIPからChromeでアクセスしてくることは、まずありません。逆にいえば、この組み合わせが揃った時点でかなり疑ってかかれます。
完璧な判定方法はまだ存在しません。ただこの2軸を見るだけで、ログの中からAIらしい挙動をかなり絞り込めるようになりました。
判定の精度より、まず「おかしいIPとUAの組み合わせを見つける習慣」が大事だと思っています。
まとめ:AIクローラー判定の設計思想
今回Sakana Chatのフェッチを特定できたのは、IPとUAを組み合わせて見ていたからです。
判定の流れを整理するとこうなります。
- UAが一般的なブラウザを名乗っていたら疑う
- IPをASN照合してクラウド事業者か確認する
- 両方が重なればAIフェッチの可能性が高い
IPだけで判定しようとすると誤判定が増えます。UAだけだと偽装されます。この2つを組み合わせることで、はじめて精度が上がります。
Sakana ChatはChromeのふりをしてGCPからやってきました。ログを見ていなければ気づかなかったはずです。まだまだ偽装しつつ来る可能性が高い為
観測次第共有いたします。
AIクローラーの挙動は今後さらに多様化していくと思います。
大事なのは「完璧な判定ロジック」より、ログを継続的に観測する習慣だと感じています。