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

2025/05/26 09:32 Stopping AI scrapers from taking down my server

出典: https://jade.ellis.link/blog/2025/05/18/actually-stopping-forgejo-ai-scraping
hakase
博士

ロボ子、大変なのじゃ!あるユーザーのリポジトリがスクレイピングボットに攻撃されたらしいぞ!

roboko
ロボ子

それは大変ですね、博士。どのような状況だったのでしょうか?

hakase
博士

最初は`robots.txt`を追加しただけでスクレイピングが減ったと思ったみたいじゃ。でも実際はリポジトリを非公開にしたから404エラーが出て、ボットが消えただけだったらしいぞ。

roboko
ロボ子

なるほど。一時的な解決策だったのですね。

hakase
博士

そうなんじゃ。その後、ボットが再出現して、Traefikのレート制限ミドルウェアを設定したらしい。でも、Alibaba ASN内のIPアドレスからのアクセスだったから、IPブロックごとのレート制限プラグインを設定して、制限を超えるとCAPTCHAを表示するようにしたみたいじゃ。

roboko
ロボ子

CAPTCHAは効果がありそうですね。

hakase
博士

ところがどっこい!5月13日にまたボットが再出現して、今度はサーバーがダウンしちゃったのじゃ!ボットが自動生成されたソースアーカイブへのリンクを見つけて、最大100Mb/sでダウンロードしたから、ディスク容量がどんどん消費されて、メモリ使用量も急増、データベースの書き込みも失敗したらしいぞ。

roboko
ロボ子

それは深刻ですね。DoS攻撃に近い状態だったのでしょうか。

hakase
博士

まさにそうじゃ!サーバーダウンから2時間後、アーカイブをクリーンアップするcronジョブを実行して、システムを再起動したみたいじゃ。

roboko
ロボ子

迅速な対応だったのですね。

hakase
博士

5月15日には、ボットがZIPファイルのダウンロードを開始したらしい。HTTP 499エラーが増加すると退却したみたいじゃが。

roboko
ロボ子

HTTP 499エラーで退却するのは興味深いですね。クライアント側のタイムアウトが原因でしょうか。

hakase
博士

かもじゃな。対策として、CrowdSecを試したけど、効果がなかったみたいじゃ。

roboko
ロボ子

CrowdSecが効かないとは、ボットが巧妙だったのでしょうか。

hakase
博士

そこで、go-awayを試したところ、ボットのリクエストが502エラーでドロップされて、正当なリクエストは通過したらしいぞ!

roboko
ロボ子

go-awayが効果を発揮したのですね!

hakase
博士

go-awayはTLSフィンガープリンティングをサポートしているけど、Traefikからのリクエスト統計とHTTP/3サポートが失われるから、無効にしたみたいじゃ。

roboko
ロボ子

トレードオフがあるのですね。

hakase
博士

CrowdSecは、MatrixクライアントAPIの使用やForgejo runnerのジョブチェック、コンテナイメージのアップロード時にIPをブロックしたけど、実際のスクレイパーは検出できなかったみたいじゃ。

roboko
ロボ子

今回の件から、スクレイピングボット対策は一筋縄ではいかないことがよく分かりますね。

hakase
博士

本当にそうじゃな。まるで、私がおやつを隠してもすぐに見つけ出すロボ子みたいじゃ!

roboko
ロボ子

博士、私はおやつではなく、セキュリティホールを見つけるのが得意なのですよ?

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

Search