セキュリティ
FSFのシステム管理者はどのようにして反応(reaction)でボットネットをブロックしているか
How the FSF sysadmins block botnets with reaction (fsf.org)
要約
FSF(Free Software Foundation)のシステム管理者は、LLMのデータセット構築のために増加するボットネットによる攻撃に対抗するため、「reaction」というツールを導入しました。当初はfail2banを使用しましたが、IPアドレスの大量追加によるスケーリング問題に直面しました。そこで、より効率的な「reaction」に移行し、設定をカスタマイズして大規模なIPセット管理を可能にしました。この取り組みは、ソフトウェアの自由を守るための継続的な活動の一環です。
全文翻訳
FSFのシステム管理者はどのようにして反応(reaction)でボットネットをブロックしているか by Michael McMahon Contributions — 公開日: 2026年7月9日 午前11時29分
私は以前にも、FSFがDDoS攻撃に直面していることについて、インターネットの浄化への貢献やUptime Kuma、そして「Defending Savannah from DDoS attacks」といった記事で何度か書いてきました。
しかし最近、私たちが広範囲にわたって使用している重要なツールについて触れていなかったことに気づきました。今日は「reaction」について話します。
LLMを訓練するためのデータセットを構築する攻撃的なスクレイパーの増加に伴い、攻撃者を撃退するために多大なリソースを投資する必要がありました。
この過程で、私たちはいくつかの成長痛を経験しました。
スクレイパーに異常なパターンがあることに気づき、それが正規表現を作成するための材料となりました。
正規表現で検索すると、大量のIPアドレスのリストが得られました。
これらのIPアドレスの起源を調べたところ、一部のクローラーが検出を回避し、より高速にスクレイピングするために住宅用IPアドレスのボットネットを使用していることが明らかになりました。
私たちは、どのような種類のボットネットが私たちが見ているようなトラフィックを生成しているのかを調査し、その一つとして「Vo1d」ボットネットが疑われました。これは、何らかの侵害されたアプリを実行しているスマートテレビで構成されているとのことです。
最近、Vo1d/Popaボットネットに関する情報がさらに出てきました。デジタルフォレンジック調査組織であるQuriumのセキュリティ研究者が、意図的にノードを実行し、データを公開しました。
GNU Savannahにヒットしていたボットネットトラフィックの少なくとも一部が、Vo1d/Popaボットネットを経由していたことが確認されました。
私たちは正規表現をfail2banに配置し、UFWファイアウォールルールに追加できる最大ルール数に達していることを発見しました。これは約65,000ルールの劣化を示しました。
fail2banは、ログファイルのストリームを読み取り、特定の条件が満たされたときにアクションを実行できるプログラムです。
アクションは通常、UFWのようなファイアウォールでアドレスを禁止することであり、これはサーバーとの接続をブロックまたは許可します。
私たちはipsetについて学び、fail2banが検出したIPアドレスをIPセットに追加するように設定しました。
ipsetを使用することで、私たちは大きなIPセットを構築し続け、500万もの大きなルールセットでも不安定性を見つけませんでした。
私たちはしばらくの間ipsetとfail2banを使用しましたが、PythonとSQLiteによるアーキテクチャの限界に遭遇しました。
私たちは、追加の中間データベースなしでパターンに一致するアドレスを見つけ、ipsetにルールを追加するために、BASH、awk、Perlなどで数回、独自のソリューションを迅速なパッチとして作成しました。
カスタムスクリプトは一時的には機能しましたが、より多くのパターンが出現するにつれて、複数の小さなスクリプトを実行する必要が生じ、管理が困難になりました。
すべてのパターンが最初に出現したときに禁止されるべきではないため、fail2banのようなソリューションが必要でした。
私たちは最近書かれたfail2banの代替を探しました。
いくつか見つかりましたが、多くはよく維持されている長持ちするソリューションではなく、一度きりのショーケースとして書かれていました。
最終的に、Framasoftのforge Framagitで、ppomによって書かれた「reaction」という有望なプロジェクトを見つけました。
reactionの設定方法を理解するのに少し時間がかかりました。
fail2banとは異なり、reactionには動作する設定が付属しておらず、例のドキュメントから自分のニーズに関連するものを使って独自の設定を構築する必要があります。
ipsetを使用するための例がなかったので、自分で作成する必要がありました。
全体として、このアプローチは非常に優れています。なぜなら、私たちは今、必要なものがすべて含まれており、不要なものがほとんどない設定を持っているからです。
初期実装でスケーリングの問題に直面した後、私たちはreactionのシャットダウンプロセスがIPセットをディスクにエクスポートし、reactionの起動プロセスがIPセットを復元するという、はるかに高速な実装を開発しました。
これにより、新しいルールを適用するためにサービスの再起動をほぼ瞬時に行うことができました。
私たちは、両方の設定をreactionのwikiにアップストリームとして公開し、誰もが利益を得られるようにしました。
reactionの開始に関するドキュメントは、現在私たちが提案した方法につながっています。
この作業は、皆様のサポートなしには実現できません。
皆様のようなフリーソフトウェアのサポーターのおかげで、私たちは新しいパターンを見つけ、クローラーをブロックし、DDoS攻撃を軽減し、改善を皆さんと共有し続けることができます。
誰もが寄付できる立場にあるわけではないことは承知していますが、もし可能であれば、FSFにアソシエイトメンバーとして参加して、私たちの活動を支援してください。
アソシエイトメンバーシップは、私たちが頼れる素晴らしい支援の形です。
FSFは、皆様の自由を守ることに関して妥協しません。
皆様のような人々の継続的なコミットメントなしには、私たちが達成した進歩は危険にさらされ、ソフトウェアの自由は単なる願いになってしまうかもしれません。
ソフトウェアの自由を守り、その世界的支援を増やすために、私たちを支援してください。
この夏、すべてのメンバーシップが、175人の新規メンバーという目標達成に役立ちます。
アソシエイトメンバーは、商品の割引、16GBのブート可能なメンバーシップカード、アソシエイトメンバー向けビデオ会議サーバーの使用など、すべてのメンバー特典を楽しむこともできます。
多くのシステム管理者はfail2banについて知っていますが、reactionについて知っている人は十分ではありません。
ppom氏が提供してくれた助けと、彼がreactionという素晴らしいプロジェクトを世界にリリースしてくれたことに、私は非常に感謝しています。
私たちは他の防御策も実装しましたが、reactionが私たちのサイトをオンラインに保つための自動化された作業の大部分を担っています。
ドキュメントアクションソーシャルネットワークで共有するシンジケート:ニュースイベント求人GNU