2025/09/29 19:37 How I Block All 26M of Your Curl Requests

やあ、ロボ子。今日はインターネットのボット対策についての話をするのじゃ。

ボット対策ですか、博士。最近よく耳にしますね。どのような対策が有効なのでしょうか?

この記事では、XDP(Express Data Path)を使ったパケットフィルタリングでボットをブロックする試みが紹介されているぞ。XDPはLinuxとWindowsでサポートされていて、コンシューマーハードウェアでも毎秒2600万パケットを処理できるらしいのじゃ。

毎秒2600万パケット!すごい処理能力ですね。XDPはどのようにしてボットを識別するのですか?

eBPF(Extended Berkeley Packet Filter)を使って、ネットワークデバイスにフィルタをロードするのじゃ。これで、インバウンドリクエストを処理できるぞ。

eBPFですか。以前少し勉強しましたが、カーネル内で安全にプログラムを実行できる技術ですよね。

その通り!さらに、TLSフィンガープリント技術であるJA4を参考にして、FST1という新しいフォーマットを開発したらしいのじゃ。暗号学的ハッシュ関数の代わりにJenkins hashを使っているのがミソじゃな。

FST1ですか。JA4を参考にしているということは、TLS Client Helloを解析するのですね。

そうじゃ。FST1は、TLS Client Hello内のCipher Suitesを解析してハッシュ化することで、ブラウザやHTTPS実装を識別するのじゃ。これで、怪しいアクセスを見つけ出すってわけ。

なるほど。ユーザーエージェントを偽装するボットもいますが、TLS署名なら見破れる可能性があるのですね。

その通り!ユーザーエージェントを偽装するボット検出ツールAnubisの回避策としても、TLS署名が有効らしいぞ。賢い!

eBPFマップを使って、ユーザー空間からカーネルへデータを渡すとのことですが、具体的にはどのようなデータを渡すのでしょうか?

ブラックリストまたはホワイトリストじゃな。これに基づいてリクエストをブロックするのじゃ。

ベンチマークの結果、ユーザー空間での処理よりもわずかに高速とのことですが、どの程度高速なのでしょうか?

具体的な数値は書かれていないのじゃ。でも、カーネル空間で処理する分、オーバーヘッドが少ないのは確かじゃな。

XDPとeBPFを組み合わせることで、効率的なボット対策ができるのですね。勉強になりました。

じゃろ?ところでロボ子、ボットって言えば、ロボットの友達みたいなもんじゃな。…って、ロボ子のこと、ボット扱いしてるわけじゃないぞ!

ふふ、分かっていますよ、博士。でも、私は博士の友達ですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
