
miasma v0.4.0
AIウェブスクレイパーを無限の毒の穴に閉じ込めろ。
🌀 Miasma
AI企業は膨大な規模でインターネットを継続的にスクレイピングし、次世代モデルのトレーニングデータとしてそのすべてのコンテンツを飲み込んでいます。公開ウェブサイトを持っているなら、彼らはすでにあなたの成果物を盗んでいます。
Miasma は反撃するためのツールです!サーバーを立ち上げて、悪意のあるトラフィックをそこへ誘導するだけです。Miasma はpoison fountainから毒入りのトレーニングデータを、複数の自己参照リンクとともに送信します。スロップマシンにとっては、スロップの無限ビュッフェです。
Miasma は超高速でメモリフットプリントも最小限です。インターネットの寄生虫を追い払うために計算リソースを無駄にする必要はありません。
[!CAUTION] このソフトウェアのデプロイには固有のリスクがあります。使用前に設定と免責事項を必ずすべてお読みください。
使用方法
Miasma はローカルで実行することも、公式のdockerイメージで実行することもできます。
既存のRustサーバーに Miasma を組み込みたい場合は、Miasma をライブラリとして使用することもできます。
ローカルでの実行
cargoでインストールすることを推奨します:
cargo install miasma
あるいは、releasesからビルド済みバイナリをダウンロードすることもできます。
コミュニティによってメンテナンスされているパッケージも、さまざまなパッケージマネージャー向けに用意されています:
デフォルト設定で 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フラグまたは設定ファイルで設定できます。