アップデート一覧に戻る
New releaseSep 20, 2026

miasma v0.4.3

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

共有

🌀 Miasma

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

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

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

Miasma は反撃するためのツールです!サーバーを立ち上げて、悪意のあるトラフィックをそこへ誘導するだけです。Miasmapoison 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フラグまたは設定ファイルで設定できます。

オプションデフォルト説明
config-file指定されたファイルパスのファイルから設定オプションを読み込みます。YAML、TOML、JSON形式をサポートしています。例についてはdocsを参照してください。
port9999サーバーがバインドするポート。
hostlocalhostサーバーがバインドするホストアドレス。
unix-socketTCPアドレスではなくUnixドメインソケットにバインドします。Unix系システムでのみ利用可能です。
max-in-flight500許容される最大同時リクエスト数。これを超えたときに受信したリクエストは 429 レスポンスを受け取ります。Miasma のメモリ使用量は同時リクエスト数に直接比例します - メモリ使用量が懸念される場合は、これをより低い値に設定してください。
link-prefix/自己誘導リンクのプレフィックス。これは Miasma をホストするパスである必要があります(例:/naughty-bots)。
link-count5各レスポンスページに含める自己誘導リンクの数。
max-depthnoneスクレイパーが指定された深度に達したらリンクの生成を停止します。これにより、希望する量の毒を提供した後にスクレイパーを遮断できます。アクティブなスクレイパーの数を管理可能なレベルに抑えるために、link-count と併用してください。
force-gzipfalseクライアントの Accept-Encoding ヘッダーに関係なく、常にレスポンスをgzip圧縮します。圧縮を強制すると、egressコストの削減に役立ちます。
unsafe-allow-htmlfalse毒ソースのレスポンス内のHTML文字をエスケープしません。意図しないクライアントサイドJavaScriptの実行を防ぐため、エスケープはデフォルトで有効になっています。このオプションは慎重に使用してください。
poison-sourcehttps://rnsaffn.com/poison2/?mask=0毒入りトレーニングデータのプロキシソース。
no-poison-cachefalse毒ソースのレスポンスキャッシュを無効にします。
metrics-db-pathメトリクスデータを保存するSQLiteデータベースファイルへのパス。データベースが存在しない場合、Miasma はこの場所にデータベースを作成します。
metrics-usernameMiasma のメトリクスページにアクセスするために必要なBasic認証のユーザー名。
metrics-passwordMiasma のメトリクスページにアクセスするために必要なBasic認証のパスワード。
metrics-endpoint/metricsMiasma のメトリクスが提供されるエンドポイント。

免責事項

Miasmathe poison fountainとは提携していません。私たちはそのレスポンスを制御できず、その内容の安全性を保証することもできません。ユーザーを Miasma の場所へ誘導することは決してしないでください。

Miasma は、影響を受けたスクレイパーの運営者からのいかなる報復についても責任を負いません。適用される法律およびホスティングプロバイダーのポリシーを遵守するのはあなたの責任です。完全な保証および責任制限の詳細については、LICENSE(GPL-v3)を参照してください。


カバーアート by @cerberussaturn07

カテゴリ