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

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

出典: https://foxmoss.com/blog/packet-filtering/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

ふふ、分かっていますよ、博士。でも、私は博士の友達ですよ!

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

Search