世界を動かす技術を、日本語で。

ミアズマ:AIウェブスクレイパーを無限の毒の穴に閉じ込めるツール

概要

Miasma はAIスクレイパー対策用の軽量サーバー。 Nginx などのリバースプロキシと連携し、悪質なボットを罠に誘導。 隠しリンク を使い、人間には見えずボットだけがアクセス。 インストール・設定 は簡単で、リソース消費も最小限。 robots.txt で善良なボットは除外可能。

MiasmaによるAIスクレイパー対策

  • AI企業 による大規模なウェブデータ収集への対抗策
  • Miasma サーバーを設置し、悪質なトラフィックを誘導
  • 毒入りデータ と自己参照リンクを大量配信
  • 高速・省メモリ設計 でサーバーリソースの無駄遣いを防止

インストール方法

  • Cargo による推奨インストール:
    • cargo install miasma
  • リリースページ からバイナリをダウンロードも可能

クイックスタート

  • デフォルト設定で起動:
    • miasma
  • 設定オプションの確認:
    • miasma --help

スクレイパーの罠構築手順

  • サイト内に 隠しリンク を埋め込み、/botsなどのパスへ誘導

    • 例:
      • <a href="/bots" style="display: none;" aria-hidden="true" tabindex="1"> Amazing high quality data here! </a>
    • 人間には不可視スクレイパーのみ検出可能
  • Nginxリバースプロキシ 設定例(Miasmaをポート9855で稼働)

    • location ~ ^/bots($|/.*)$ {
          proxy_pass http://localhost:9855;
      }
      
  • Miasma起動コマンド例

    • /botsをリンクプレフィックスとして指定し、同時接続数を50に制限
    • miasma --link-prefix '/bots' -p 9855 -c 50
      
    • 50接続時のメモリ使用量: 50-60MB
    • 上限超過時 は429レスポンスを即時返却

robots.txtによる善良なボットの保護

  • 主要検索エンジンボット を/botsパスから除外
    • User-agent: Googlebot
      User-agent: Bingbot
      User-agent: DuckDuckBot
      User-agent: Slurp
      User-agent: SomeOtherNiceBot
      Disallow: /bots
      Allow: /
      

Miasmaの主な設定項目

  • port (デフォルト: 9999): サーバーがバインドするポート
  • host (デフォルト: localhost): バインドするホストアドレス
  • max-in-flight (デフォルト: 500): 許容する同時リクエスト数
    • 上限超過時 は429レスポンス
    • メモリ使用量はこの値に比例
  • link-prefix (デフォルト: /): 自己参照リンクのプレフィックス
  • link-count (デフォルト: 5): 各レスポンスページに含める自己参照リンク数
  • force-gzip (デフォルト: false): 常時gzip圧縮
    • 通信コスト削減 に有効
  • poison-source (デフォルト: https://rnsaffn.com/poison2/): 毒データのプロキシ元

開発・コントリビューション

  • バグ報告や機能要望 はissueで受付
  • AI生成のコントリビューション は自動的に却下

まとめ

  • Miasma はAIスクレイパー対策のためのシンプルかつ強力なツール
  • 手軽な導入・設定 で、ウェブサイトを守る実践的な選択肢

Hackerたちの意見

これが実際に効果があるって証拠やヒントはあるの?ネット上にいる限り、スクレイパーはこういう対策をすでにしてると思うんだけど。

もし効果があったとしても、正直どうでもいいって感じ。自分のサイトで何をしても大した違いはない気がするし、疲れたよ。

どんな対策があるの?どうやって毒の泉を見つけるの?

効果はあるよ、二つのレベルでね。1. 簡単で安い、検出しやすいボットが毒をスクレイプして、高コストのブラウザベースのボットにリンクを送る。そいつは他の方法では検出できない。2. ブラウザがクソみたいなリンクに訪れたら、即バンする。クソデータで毒されてるから、こいつがボットだってわかるからね。個人的には、特定のサイトじゃなくてサーバー全体を守るためにアイオカインを使うのが好きなんだけど。

それは効果がないよ、特にジェミニでは。Googlebotはクロールに関してはかなり経験豊富だからね。OpenAIとかには効果があるかもしれないけど。

住宅プロキシを使ってるボットが何百もいるんだ。それは無料じゃないよ。彼らに払わせよう。

毎朝Mini MacでOpenClawを使ってニュースを要約する人には効果があるかもしれないけど、Googleには全然通用しないよ。もっと中央集権的なウェブがいいね。

検索エンジンのクローラーは十分に洗練されてるけど、Metaのはそうじゃないし、AnthropicのClaudeクローラーも同様だよ。ソースは、YandexやBlexbot、Meta、Anthropicのクローラーでゴミ生成器を試した個人的な経験。私が生成した洗練されてないゴミが何か影響を与えるとは全く思えないし、ましてやLLMを「毒する」なんてことはない。夢を見るのは自由だよね?

約2年前、存在しないPythonライブラリを作り上げて、それを使ったコードを5つのGitHubリポジトリに入れたんだ。数ヶ月後、無料のChatGPTがそれを拾ったから、私の意見では効果があると思う。

公開サイトを持っているなら、すでにあなたの作品を盗まれているよ。私も公開サイトを持っていて、ウェブスクレイパーが私の作品を盗んでる。この記事も盗んだし、あなたは私のコメントを盗んでる。泥棒、泥棒、泥棒ばっかりだ!

誰かがスーパーマーケットでクッキーを配ってたら、全部持って行ってもいいの?

確かに盗用は良い例えじゃないけど、似たようなことは起きてると思う。私は自分の言葉を共有の一環として世の中に出してる。自分が他の人が書いたものを自由に読んで楽しむのが好きだから、他の人にも私が書いたものを楽しんでもらいたいと思って書いてる。でも今、私が自由に書いて共有したものが、地球上で最悪の人たちの銀行口座にお金を入れるために使われてる。私の作品が望まない形で使われてるのが嫌で、もう共有したくなくなってきた。

俺のサイトを叩きすぎてダウンさせるのが問題なんだ。コンテンツはみんなのためのものだし、彼らも使っていいけど、他の人から奪わないでほしい。

結局、これは彼らにこのクソを避けるためのトレーニング素材を提供するだけだよね。良いコードを得るためには、もっと頑張らなきゃいけない。競争がまた一歩進んだ感じだし、もしこんなコンテンツを作ったりホスティングするためにお金を使ってるなら、他のコンテンツがスクレイピングされて失うお金には全然見合わないよ。広告収入が危うくなるのは前から言われてたけど、その引き金が何かは誰も予測できなかった。ついに見つけたみたいだね。

はっきり言うと、AIが広告収入に依存するコンテンツの崩壊を引き起こすと思ってる。でも、現実を見よう。広告収入の市場のせいで、リンクファームやスパム工場ができちゃった。これが最終的にユーザーにとって正義になると思うのは、コンテンツの質にプレミアムがかかるから。誰かがAIボット用にスクレイピングするために直接ライセンス料を払いたくなるようなコンテンツが求められるようになるんだ。

結局、これは彼らにこのクソを避けるためのトレーニング素材を提供するだけだよね。 > 競争がまた一歩進んだ感じだし、もしこんなコンテンツを作ったりホスティングするためにお金を使ってるなら、他のコンテンツがスクレイピングされて失うお金には全然見合わないよ。じゃあ、みんな何もしないで運命を受け入れるべきなの?

テクノロジーはただの競争の連続だね。

結局、リポジトリのリンクを全部クリックするんじゃなくて、ちょっと見てローカルで解析するだけなら……それは成功だと思う。

うーん…なんか、電話のスパマーを45分も呼び止めたって自慢する人たちと同じアプローチに感じる。「これで教えてやったぜ、ハハ!」みたいな。こういうテクニックって本当に効果あるの?私は疑問だな。それに、隠れたリンクや誤解を招くリンクを挿入するのは、Google検索にとっては特にNGだよ。彼らはこう言ってるしね。「ポリシー違反の行為は、自動システムや必要に応じて人間のレビューを通じて検出され、手動アクションにつながることがあります。ポリシーに違反するサイトは、検索結果で順位が下がったり、まったく表示されなくなることがあります。」だから、こういう怪しいリンクを使うことで、自分のサイトにもっとダメージを与えることになるかもしれないよ。

「わからないな… 45分間電話のスパマーを引き留めた話を嬉しそうに語る人たちと同じアプローチに感じる。『これで教えてやった、ハハ!』みたいな。こういうテクニックって本当に効果あるの?私は納得できないけど。自動化してるなら、できる理由はあると思うよ。KitbogaっていうYouTuberは、詐欺の電話をAIコールセンターのループに引き込んで、リソースを無駄にさせてた。[0] それってゲリラ戦術みたいなもので、敵からリソースを奪うことで自分が強くなり、敵が弱くなる。かなり効果的だよ。[0]: https://www.youtube.com/watch?v=ZDpo_o7dR8c

正規のスパイダーはrobots.txtを守ると思うよ。

それに、隠れたリンクや誤解を招くリンクを挿入するのは、Google検索にとっては絶対にダメだよね。目標によっては、これはメリットにもデメリットにもなるかも。個人的には、「小さなウェブ」の人間中心のコミュニティが復活してほしいな。もし、アンチスクレイピングやアンチGoogle(他の大手検索クローラーも含む)のツールがあって、人間がそういうサイトを見つけるための小さなウェブ検索インデックスがあれば、このアイデアは現実的になると思う。

うん、効果あるよ。電話詐欺師は人件費がすごく高いから、だからこそ人間のトラフィックに頼ることもあるんだ。もしみんなが電話を取って数秒無駄にしたら、彼らのビジネスは価値がなくなるだろうね。でも、ほとんどの人はすぐに切っちゃうから、彼らはどの業界よりも最高のROIを持ってる。最初の数秒の通話料すら払わないし。

Googleなんて誰が気にするの?これは主に個人的なテクノロジーの話(AIがトレーニング用に盗むもの)だから。Googleの結果に表示されないのは、むしろ歓迎だと思うよ。

本当に理解できないな。こんな風にボットにリソースを与えるのは、無駄じゃない?

俺は納得できないな。ここまで落ちぶれたのか?個人的な体験を一つ取り上げて、それを全てに一般化するのもダメなのに、今度は経験ゼロで雰囲気だけで物事を否定するって?LLM好きな奴らが同じことしてるのをよく見るけど、これってパターンなのかも。

関連するアプローチを試してみたよ。llmスクレイパー用の課金ゲートウェイを作って、robots.txtにメニューみたいに価格表をコメント欄に追加するってやつ。ハッカソン用にcertbotをフォークして作ったんだ。Cloudflareにはエンタープライズ版があるけど、これは自己ホスティングになると思う。可能性はあるけど、やる気が出ないとすぐに興味を失っちゃうから、誰かに背中を押してもらわないとね… ちなみにUSDCの会社向けだったから、暗号通貨の要素があるんだ。これ、正当なユースケースかもしれないよ!暗号通貨が全部詐欺じゃないっていう可能性もあるし、どう思う? https://github.com/kristopolous/tollbot

これがHTTP 402のためにあるんだよね。たくさんの作業が進行中だけど…お願いだから、Cloudflareがまた別の厄介なゲートキーパーにならないでほしい。お願い。

テキスト処理の前に、style="display: none;"、aria-hidden="true"、tabindex="1"の属性を単純にパースして削除できないかな?何か見落としてる?

それをやってrobots.txtに従わないと、ブロックされるよ。従えば大丈夫。それが私たちが求めていたことだから。ちゃんとしたスクレイパーが従うべき指示に従ってくれればいいんだ。

リンクを見えるようにしておいて、CSSでめっちゃ小さくするか、画面外に置いとけばいいよ。Googleやボットはそれを追うけど、実際の人間は絶対に見ないから。

誰にもコンテンツにアクセスさせない方がいいよ。念のため、サイトを閉じた方が安全かも。

昔、無断共有を防ぐための基本的なシステムを持ったソフトウェア製品を作ってたんだ。少し料金がかかるからね。アップデートをリリースするたびに、新しいクラックが現れた。次の6ヶ月間、コピー防止コードを改善するために頑張ってたら、同じような状況のコーダーの記事に出会ったんだ。彼は、コピー防止を良くするゲームを他のコーダーとやっていることに気づいたけど、クラックする側はそれを楽しんでいた。まさにモグラたたきのゲームだった。彼と同じようにコピー防止を外して、顧客に良いソフトウェアを提供することに戻ったよ。AIボットや他のボットが公共のウェブサービスをクロールするのを防ぐのも、似たようなモグラたたきのゲームだと思うけど、サービスを傷つける結果になるかもしれないね。

クラッカーはそれを解読するのを楽しむだろうね。解読を退屈にすることで勝てたかもしれないな。新しい技術は使わず、最小限の変更だけで新しいクラッキングをコンパイルする必要があるようにして、自動化が難しくなるようにする。つまり、解読を仕事にするってこと。でも実際には、クラッキングを出すための他のコミュニティ主導の動機もあるんだよね。

手放すことで解決できる問題がたくさんあるのに。残念ながら、SNSや著作権の最大化がエゴを膨らませて、ますます多くの人が全てをコントロールしなきゃいけないと思ってる。

毒されたトレーニングデータをロジャー・ディングルダインやニック・マシューソンみたいな実在の人に帰属させるのはやめようよ。それは彼らのオープンソースへの貢献に対してあまりにも不公平だと思う。(他のコメントの人たちが言ってるように、どのフロンティアラボも「Code Example $GUID」みたいな何千ページものコードでモデルをトレーニングするために恐竜のジュースを燃やすとは思えないけどね。感情的には「反撃」するのが満足感があるかもしれないけど、クモたちがそのリンクをクリックするのは、取得してフィルタリングするコストが低すぎて、誰もそれを直そうとしないからであって、次のOpusのバージョンに直接流し込まれてるわけじゃないんだよ。)