3 ポイント 投稿者 GN⁺ 2025-04-14 | 1件のコメント | WhatsAppで共有
  • Anubis が UNESCO の policytoolbox.iiep.unesco.org に導入され、大規模組織が使うボット対策ツールの事例としてさらに注目を集めるようになった
  • unesco.org が UNESCO の公式ドメインであることを確認したうえで、今回の導入は 国連関連組織 における実運用事例として受け止められている
  • Linux Kernel Mailing List archives、FreeBSD SVN、SourceHut、FFmpeg、Wine、GNOME GitLab など、既知の導入先とあわせて用途が広がっている
  • こうした組織が Anubis を導入している状況は、インターネットにおける ボットトラフィック問題 が予想よりも深刻である可能性を示している
  • Anubis と周辺スタックにはさらに多くの時間が必要で、十分な支援があれば専業開発や採用まで可能になる

UNESCO への導入確認

  • Anubis が、国連傘下の UNESCO の policytoolbox.iiep.unesco.org に導入された
  • unesco.org は、Wikipedia において United Nations Educational, Scientific and Cultural Organization の公式ドメインとして掲載されている
  • UNESCO のシステム管理者チームと連絡を取り、導入時に問題がなかったかを確認しつつ、導入プロセスをより簡単に しようとしている

既知の導入事例と今後の作業

  • 確認済みの 大規模導入 事例には次が含まれる
    • Linux Kernel Mailing List archives
    • FreeBSD の SVN、まもなく git
    • SourceHut
    • FFmpeg
    • Wine
    • UNESCO
    • The Science Olympiad Student Center
    • Enlightenment デスクトップ環境
    • GNOME の GitLab
  • これほどの規模の組織が Anubis を使っているなら、ボットトラフィックの問題は従来の想定より はるかに深刻な水準 にある可能性がある
  • YouTube がかつて人間のトラフィックよりボットトラフィックのほうが多くなる「the inversion」に近かった事例のように、インターネット全体でも同様の現象がどれほど広く広がっているのかが残された疑問である
  • Anubis と関連スタックに本格的に時間を投入する必要があり、十分な支援を確保できれば専業で取り組み、採用 まで行える
  • Anubis が役立っているなら Patreon での支援を呼びかけている

1件のコメント

 
GN⁺ 2025-04-14
Hacker News のコメント
  • 関連記事: Anubis: AI クローラーを防ぐためのプルーフ・オブ・ワーク・プロキシ (100 points, 23 days ago, 58 comments) https://news.ycombinator.com/item?id=43427679

  • Xe が以前はほとんど冗談/ネタ投稿に近かったものを、実際に役立つ製品にしたのが面白い。いつも タイミングがすべてだとは言っていた
    これほど多くのサイトがこれを欲しがったり必要としたりしている点は少し驚き。非常に深く、キャッシュがなく、遅いディスクから配信される一部の Git サーバーで Git ページが遅い問題は理解できる
    UNESCO は少し意外だった。そのサブサイトは文書が数千件あってかなり大きいが、静的コンテンツなので配信は簡単なはず。見てみると Apache 上にずさんにデプロイされた WordPressで、キャッシュもなく、コンテンツ圧縮もなく、HTTP/2・HTTP/3 もなかった
    ごく小さなマシンでも非常に安く配信できるように直すのは簡単な可能性が高いが、当然ながら専門知識が必要で、専門知識は今も安くない
    LLM に聞くこともできるだろうが、何を聞けばいいのかすら分からない状況では、まだあまり助けにならない。そもそもサイトが遅いことさえ知らなければ、なぜ聞くのか。単にトラフィックに押しつぶされていると聞いて、ファーリーな防衛者を探すことになりそう

    • 「専門知識が必要で、専門知識は今も安くない」というのは正しいが、同時に Anubis を設定できる人は WordPress の管理経験者よりずっと少ない気がするので、やはり驚き
      難しいという意味ではなく、存在自体を知っている人からして少ないという意味
      推測するに、WordPress に手を入れない理由は技術的な問題ではなく、壊れやすいインスタンスに触りたくないとか、組織上の権限の問題とか、管理者がすでに WP は適切に設定されていると考えているからかもしれない
    • これを適用したい自分のサイトは記事が多く、タグベースのファセット検索によって可能な組み合わせとページ数が事実上無限に生まれる
      これはキャッシュする方法がなく、ボットは robots ファイルも守らないので、URL を延々とリクエストし、記事をさまざまな数字や組み合わせで繰り返し取得していく。本当に厄介
    • AI スクレイパーは実装が雑なだけでなく、意図的にキャッシュ無効化まで行う
      これまで見た解決策は Cloudflare、ログイン要求、Anubis、あるいはばかげた規模のインフラだけだった
      あるサイトではトラフィックの 60% がボット由来だと言っていたし、より小さなサイトではおそらくその比率はさらに高いはず
    • プルーフ・オブ・ワークベースのボット/スクレイピング/DDoS 防御は 10 年前にもすでにあったのに、なぜ今になって広がっているのか分からない
      プルーフ・オブ・ワークを有用な計算にしようとしていたプロジェクトも覚えている
  • これが何なのか混乱しているなら、AI スクレイピングを防ぐためのもの
    「Anubis は、クライアントが最新のブラウザを使っており、SHA-256 チェックサムを計算できることを保証するために、プルーフ・オブ・ワークの課題を使用する」
    https://anubis.techaro.lol/docs/design/how-anubis-works
    かなり格好よく、自分のプロジェクトの一つ二つにも役立つかもしれない

    • 数年前から、Web は人間のためのものなのか機械のためのものなのか気になっていた。コンテンツ配信でボットを特別にブロックすべき良い理由は、あまり思いつかない
      コンテンツを投稿させたり処理を実行させたりすることは、当然ながらさまざまな状況で問題になり得る
      しかし単純なコンテンツ配信では、通常、人間かボットかはフィルタリングやブロックをしたい基準ではない。特定のクライアントがシステムを悪用していないなら、そのクライアントが人間かどうかをなぜ気にする必要があるのかと思う
  • 「また、時間も入力値として使う。線形な時間軸の性質上、サーバーとリクエスト元の双方が時間とは何かを知っているからだ」
    ドキュメントにある面白い一文

    • なんてことだ、これを残していたのを忘れていた。笑える。そのままにしておくつもり
    • 残念ながら、文脈を外すとこの言葉は間違っている。Anubis は時間を最も近い週単位に丸め、その隣の週も有効なら、おそらく十分ではある
      さまざまな理由で時計同期のずれはよくある。ユーザーの下位 10% が日単位でも正確だとは期待できないし、下位 25% でさえ 5 分程度はずれている可能性がある
  • Anubis のチェックが終わるまで表示される中間ページの画像が本当にかわいい。Xe のブログの絵やキャラクターはいつも美しいと感じていた
    余談だが、これが一般的な検索エンジンにどんな影響を与えるのか、AI クローラーを防ぐ Cloudflare の解決策とどう違うのかも気になっていたが、GitHub ページに説明がある [1]
    「これをインストールして使うと、一部の検索エンジンにウェブサイトがインデックスされなくなる可能性が高い。これは Anubis のバグではなく機能と見なされる」
    「これはやや核攻撃のような対応だが、AI スクレイパーボットがあまりにも攻撃的に収集していくため、やむを得なかった」
    「ほとんどの場合、これを使う必要はなく、Cloudflare で特定のオリジンサーバーを保護すれば十分である可能性が高い。ただし Cloudflare を使えない、または使いたくない状況では Anubis がある」
    [1]: https://github.com/TecharoHQ/anubis/

    • その通り。現時点では残念ながら検索インデックスを妨げる。将来的には検索エンジンの IP を許可リストに入れられるかもしれない
      ただし Google のようなところは、AI と検索インデックスで同じ IP を使うこともある
      それでも Open Graph タグを通すなど改善中なので、少なくともリッチプレビューは動作するようにしたい
    • 中間ページの画像がかわいいという点には同意する。だが、いつか誰かが何らかの形で「問題がある」と判断して、結局削除されそうだと考えるとぞっとする
  • Anubisについて読んでみたが、クールなプロジェクトだ。残念ながらコメントで出ているように、サイト訪問者がJavaScript™を有効化する必要がある。
    いずれにせよユーザー体験向上のためにJavaScript™が必要なサイトならまったく問題ないが、JSがまったく不要な静的サイトのようなところにはあまり向かない。
    私はこうした「悪いボット」をネットワークレベルで効果的にブロックする独自の解決策を作った。MaxMindデータベースと自作のWAF・リバースプロキシを使い、複数の大手「Big Tech / Big LLM」ネットワーク全体をASN(BGP)単位で遮断している。

    • この記事が扱おうとしているボットトラフィックのかなりの部分は、一般家庭向けIPレンジから来ている。
      もちろんASNの小細工やレピュテーション詐欺も同時に行われているが、対応は非常に難しい。ログをざっと調べたところ、こうしたボットは特定の家庭向けIPから1回程度リクエストしており、その範囲は実際の人間ユーザーも使うレンジである可能性が高かった。
      簡単に言えば、正常なトラフィックをブロックする危険がある。この解決策にもリスクはあるが、大多数の人間にとっての実際のリスクははるかに低い。
      JavaScriptが不要で、無効化しているユーザーもサポートできればよいが、顧客やエンドユーザーからJavaScriptの有効化が必要なことについて不満を言われたことは一度もない。
      JavaScript要件に反対するのは声の大きい少数派で、その大半はJavaScriptが必要なサイトに出くわすと普通に有効化する。その時でさえ、敗北のため息をつく人はごく少数だと思う。
    • 気になる人のために言うと、「JavaScript」の商標はOracleが保有している: https://javascript.tm/
    • それがLLMなのかVPNなのか、どうやって分かるのか? MaxMindデータベースでLLMトラフィックをどう分離するのか?
    • 自作の解決策へのリンクはある?
  • アイデアは気に入っているが、課題の性質が整理されれば、おそらくプロトコルレベルまで下げる必要がありそうだ。
    Proof of Workの課題が各WebサイトでJavaScriptとして個別に実装されるより、TCPに近い一部になる方が、アクセシビリティ面では最終的に良いはずだ。

    • IETF標準になったCloudflare PrivacyPassはあるが [0]、かなり奇妙で、参照実装はバグの塊だ。
      [0] https://datatracker.ietf.org/wg/privacypass/about/
    • 任意の課題をSPIR-VやMLIRのブラックボックスに投げればよい。課題・応答のやり取りをHTTPと統合すれば、幅広いサポートと柔軟なハードウェアアクセラレーションが可能になるはずだ。
      「十分に良い」解法は、既存で広く使われているSHA(seed, nonce)だ。巨大テック企業が望んでいたなら、これはスタックのより低い層に簡単に統合できたはずだ。
  • 私のスマホではボット検出の解決に5秒もかかる。

    • F-DroidのFirefoxフォークであるFennecとPixel 9 Pro XLを使っているが、難易度4で約8秒かかる。
      個人的には何もする必要がないので、ユーザー体験がそこまで悪いとは思わない。CAPTCHAよりは間違いなく好む。
    • 無限Cloudflare CAPTCHAループよりずっとまし。
    • 運がいいね。私は30秒かかった。
    • 私の場合は0.5秒くらいなので興味深い。
  • 今「エニグマWebフォント」と呼んでいるプロトタイプを作っている。提供・キャッシュされるWebフォントに対して、ユーザーセッションごとのカスタムシードと回転値を適用しようとしている。
    目的は、OCRの計算コストによってWebスクレイピングを非現実的にすることだ。今はいたちごっこなので、少し形勢を変えたい。
    ユーザーセッションがなければHTMLソースは事実上無意味になり、OTPのような動作でアセットキャッシュが消えればWebページも読めなくできる。
    こうすれば、ユーザーが特定の単語を読めるようになるまでローカルのシードウィンドウを調整するCAPTCHAを実質的に作れる。例えば「Foxtrottという単語が読めるようになるまでスライダーを動かしてください」といった方式だ。
    Xeの意見をぜひ聞きたい。力を合わせられないだろうか?
    技術スタックはGoだ。Webフォントファイルを問題なく直接変更しやすかった唯一の言語だったからだ。

    • 明白なアクセシビリティ問題を除いても、それはせいぜい換字式暗号ではないか? コーパスが十分にあれば、暗号解読はずっと簡単になりそうだ。
    • 問題はWebサイトがスクレイピングされること自体ではなく、インフラを落としたりコストを上げたりするリクエスト量だ。検索エンジンは30年以上こうしたことをやってきた。
      テキストを壊しても役には立たないだろう。どうせ叩き続ける。トラフィックパターンを見ると、このボットを作った人たちは単に…… <https://www.youtube.com/watch?v=ulIOrQasR18>
      「Xeの意見を聞きたい。力を合わせられないだろうか?」については、私が把握している限り、機能を増やすよりも、このプロジェクトを近い将来と遠い将来の両方でより持続可能にする助けが必要そうだ。Anubisはすでにうまく動作しているように見える。
  • 確かにJavaScriptを無効化しているユーザーをブロックするのにはうまく機能する。

    • その通り。より多くの人に魅力的に見せようとする試みとしては、本当に貧弱だ。nojs版を出さない限り、Webを壊しているという点で「AI」スクレイパーと変わらない。