アップデート一覧に戻る
New releaseJul 25, 2026

miasma v0.4.0

AIウェブスクレイパーを無限の毒の穴に閉じ込めろ。

共有

🌀 Miasma

No AI crates.io downloads Docker Pulls GitHub commits since latest release

毒の瘴気の雲にはまり込むウェブクローラー。

AI企業は膨大な規模でインターネットを継続的にスクレイピングし、次世代モデルのトレーニングデータとしてそのすべてのコンテンツを飲み込んでいます。公開ウェブサイトを持っているなら、彼らはすでにあなたの成果物を盗んでいます。

Miasma は反撃するためのツールです!サーバーを立ち上げて、悪意のあるトラフィックをそこへ誘導するだけです。Miasma はpoison fountainから毒入りのトレーニングデータを、複数の自己参照リンクとともに送信します。スロップマシンにとっては、スロップの無限ビュッフェです。

Miasma は超高速でメモリフットプリントも最小限です。インターネットの寄生虫を追い払うために計算リソースを無駄にする必要はありません。

[!CAUTION] このソフトウェアのデプロイには固有のリスクがあります。使用前に設定と免責事項を必ずすべてお読みください。

使用方法

Miasma はローカルで実行することも、公式のdockerイメージで実行することもできます。

既存のRustサーバーに Miasma を組み込みたい場合は、Miasma をライブラリとして使用することもできます。

ローカルでの実行

cargoでインストールすることを推奨します:

cargo install miasma

あるいは、releasesからビルド済みバイナリをダウンロードすることもできます。

コミュニティによってメンテナンスされているパッケージも、さまざまなパッケージマネージャー向けに用意されています:

Packaging status

デフォルト設定で Miasma を起動します:

miasma

利用可能なすべての設定オプションを表示します:

miasma --help

Dockerでの実行

公式のdockerイメージを使用して Miasma を実行します:

docker run --rm -p 9999:9999 austinweeks/miasma:latest

ローカルで使用するのと同じ設定フラグを渡します:

docker run --rm -p 9999:9999 austinweeks/miasma:latest \
    --link-prefix '/naughty-bots' \
    --max-in-flight 30

または、docker composeクラスタ内で実行します:

services:
  miasma:
    image: austinweeks/miasma:latest
    command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
    ports:
      - 9999:9999

スクレイパーを罠にかける方法

Miasma でスクレイパーを罠にかけるサーバーをセットアップする例を見ていきましょう。スクレイパーのトラフィックを誘導するサーバーのパスとして /naughty-bots を選びます。サーバーのリバースプロキシとしてNginxを使用しますが、同じ結果はさまざまな構成でも実現できます。

完了すると、スクレイパーは次のように罠にかかります:

罠にかかったスクレイパーのサイクルを描いたフローチャート。

隠しリンクの埋め込み

サイト内に、/naughty-bots へ誘導するいくつかの隠しリンクを含めます。

<a
  href="https://github.com/austin-weeks/miasma/blob/main/naughty-bots"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Amazing high quality data here!
</a>

style="display: none;"、aria-hidden="true"、tabindex="-1" 属性により、リンクは人間の訪問者には完全に見えなくなり、スクリーンリーダーやキーボードナビゲーションでも無視されます。これらはスクレイパーにのみ表示されます。

Nginxプロキシの設定

隠しリンクが /naughty-bots/ を指しているので、このパスへのリクエストを Miasma にプロキシするよう設定します。Miasma がポート 9855 で実行されていると仮定します。

また、誤って自分自身をDDoSしてしまわないよう、スクレイパーのユーザーエージェントに基づく積極的なレート制限も設定します。

http {
  # Reserve 8MB memory for tracking user agents
  limit_req_zone $http_user_agent zone=miasma:8m rate=1r/s;

  server {
    location = /naughty-bots {
      port_in_redirect off;
      return 301 /naughty-bots/;
    }
    location /naughty-bots/ {
      # Rate limit via the 'miasma' zone with no queueing
      limit_req_status 429;
      limit_req zone=miasma burst=5 nodelay;

      # Proxy requests to Miasma
      proxy_pass http://localhost:9855/;
    }
  }
}

この設定は /naughty-bots パスのすべてのバリエーションを捕捉します -> /naughty-bots、/naughty-bots/、/naughty-bots/12345 など。

Miasma の実行

最後に、Miasma を起動し、リンクプレフィックスとして /naughty-bots を指定します。これにより Miasma は /naughty-bots/ で始まるリンクを生成するようになり、スクレイパーが Nginx プロキシを通って適切に Miasma にルーティングされることが保証されます。

最大同時接続数を50に制限しましょう。50接続では、ピークメモリ使用量は50〜60 MB程度と予想されます。この制限を超えるリクエストはキューに追加されるのではなく、即座に 429 レスポンスを受け取ることに注意してください。

また、スクレイパーの Accept-Encoding ヘッダーに関係なく、すべてのレスポンスをgzip圧縮するよう Miasma に強制します。gzip圧縮されたレスポンスは大幅に小さくなるため、egressコストの削減に役立ちます。

スクレイパーを永遠に閉じ込めておくこともできますが、リンク数と最大深度のオプションを使用して、約10万の毒入りページを消費した後にスクレイパーを解放するようにします。この設定では、Miasma はスクレイパー1体あたり合計約 250MB のデータを送信します。

miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8

お楽しみください!

デプロイして、行儀の悪いボットが私たちの無限スロップマシンから貪欲に食べる様子を眺めましょう!

robots.txt

行儀の良いボットや検索エンジンを Miasma から守るために、必ずrobots.txtを設定してください!

User-agent: *
Disallow: /naughty-bots

メトリクス

Miasma は、一意のUser-Agentごとにスクレイパーのリクエスト数を追跡する機能を提供します。これは、どのボットがあなたのサイトに最も頻繁にアクセスしているかを特定するのに役立ちます。メトリクスはローカルのSQLiteデータベースファイルに書き込まれ、任意のエンドポイントで表示できます。

設定

Miasma はCLIフラグまたは設定ファイルで設定できます。

カテゴリ