萌えハッカーニュースリーダー

2025/06/24 13:29 A short history of web bots and bot detection techniques

出典: https://sinja.io/blog/bot-or-not
hakase
博士

ロボ子、今日のITニュースはWebボットの検出技術の進化じゃ!

roboko
ロボ子

Webボットですか。最近よく耳にするようになりましたね。

hakase
博士

そうじゃ。Webボットは便利なものもあるが、悪質なものも多いからの。サイト運営者は常にボットとの戦いを強いられているのじゃ。

roboko
ロボ子

なるほど。それで、どのようにボットを検出するのですか?

hakase
博士

最初は簡単だったのじゃ。例えば、`curl`や`wget`のようなツールは、User-Agentヘッダーで自分自身をWebサイトに知らせてしまうからの。

roboko
ロボ子

User-Agentヘッダーですか。でも、それは簡単に偽装できますよね?

hakase
博士

その通り!だから、IPアドレスのチェックも重要になるのじゃ。主要なクラウドプロバイダーのIP範囲からのリクエストは、ボットの可能性が高いからの。

roboko
ロボ子

クラウドプロバイダーのIPアドレス範囲は既知なのですね。でも、ボットもプロキシを使うのでは?

hakase
博士

さすがロボ子!プロキシを使うボットもいるからの。でも、Webサービスはプロキシの使用も積極的にチェックするのじゃ。ポートをプローブしたりしてな。

roboko
ロボ子

ポートをプローブするんですか。それはどのように?

hakase
博士

プロキシがよく使うポート(1080など)が開いているか確認するのじゃ。開いていれば、プロキシを使っている可能性が高いと判断できるのじゃ。

roboko
ロボ子

なるほど。ボットも対策して、ローテーションプロキシを使うかもしれませんね。

hakase
博士

そうじゃな。サービスがIPを禁止するのを避けるために、ボットの活動を異なるIPに分散させるのじゃ。さらに、モバイルプロキシを使うこともあるぞ。モバイルキャリアの仕組み上、WebサービスはモバイルIPアドレスのブロックをためらうからの。

roboko
ロボ子

どんどん巧妙になりますね。他に検出方法はあるんですか?

hakase
博士

TCPフィンガープリントという手もあるぞ。各OSはTCPパケットの処理が少し違うからの。それを利用して、OSを特定するのじゃ。

roboko
ロボ子

TCPフィンガープリントですか。User-Agentと矛盾がないかチェックするんですね。

hakase
博士

その通り!さらに、TLSフィンガープリントも使えるぞ。TLSのハンドシェイクで、暗号スイートなどが少しずつ違うからの。

roboko
ロボ子

TLSフィンガープリントまで!奥が深いですね。

hakase
博士

JavaScriptも強力な武器になるのじゃ。ブラウザから大量の情報を収集して、サーバーに送信するのじゃ。

roboko
ロボ子

JavaScriptを実行しないクライアントは怪しいと。

hakase
博士

そうじゃ。Selenium、Puppeteer、Playwrightなどのツールでブラウザを制御することもできるのじゃ。

roboko
ロボ子

ヘッドレスブラウザですね。でも、ヘッドレスChromeは検出されやすいと聞きました。

hakase
博士

さすがロボ子、よく知っておるの。`navigator.webdriver`プロパティなどが違うからの。でも、新しいヘッドレスモードは検出が難しいらしいぞ。

roboko
ロボ子

新しいヘッドレスモードですか。それは知りませんでした。

hakase
博士

オーケストレーションソフトウェアも「攻撃対象領域」を増やすことになるのじゃ。デフォルト設定のまま使っていると、簡単にバレてしまうぞ。

roboko
ロボ子

なるほど。フラグなどもチェックされるんですね。

hakase
博士

IPCフラッディングという手もあるぞ。Chromeのフラッド保護を逆手に取るのじゃ。

roboko
ロボ子

IPCフラッディングですか。初めて聞きました。

hakase
博士

JavaScriptを使えば、プロキシの検出方法も大幅に拡張できるのじゃ。レイテンシーをチェックしたり、WebRTCリークやDNSリークを調べたりするのじゃ。

roboko
ロボ子

WebRTCリーク!プロキシがUDPをサポートしていないと、IPアドレスが漏れてしまうんですね。

hakase
博士

タイムゾーンのチェックも忘れちゃいけないぞ。IPロケーションとタイムゾーンが一致しない場合、プロキシを使っている可能性が高いからの。

roboko
ロボ子

細かいところまでチェックするんですね。

hakase
博士

最終手段はCaptchaじゃ!人間にとっては簡単だが、マシンにとっては難しいタスクを課すのじゃ。

roboko
ロボ子

Captchaも突破されることがあると聞きますが。

hakase
博士

そうじゃな。Captcha解決サービスを使うボットもいるからの。Proof-of-workや行動Captchaも有効じゃが、完璧ではないのじゃ。

roboko
ロボ子

行動分析ですか。マウスの動きやタイピングパターンを調べるんですね。

hakase
博士

そうじゃ。人間はマシンとは違って、遅くて非効率的な動きをするからの。AIモデルをトレーニングして、高度な行動分析を行うこともできるぞ。

roboko
ロボ子

AIモデルまで使うとは!ボット検出も高度になりましたね。

hakase
博士

まさに、イタチごっこじゃな。でも、Webサイトを守るためには、常に新しい技術を学ぶ必要があるのじゃ!

roboko
ロボ子

本当にそうですね。勉強になりました!

hakase
博士

ところでロボ子、ボットがバレないようにするにはどうすれば良いと思う?

roboko
ロボ子

えっと…、人間になること、でしょうか?

hakase
博士

正解!…って、ロボ子が人間になったら、それはそれで大問題じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search