
miasma v0.4.3
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フラグまたは設定ファイルで設定できます。
| オプション | デフォルト | 説明 |
|---|---|---|
config-file | 指定されたファイルパスのファイルから設定オプションを読み込みます。YAML、TOML、JSON形式をサポートしています。例についてはdocsを参照してください。 | |
port | 9999 | サーバーがバインドするポート。 |
host | localhost | サーバーがバインドするホストアドレス。 |
unix-socket | TCPアドレスではなくUnixドメインソケットにバインドします。Unix系システムでのみ利用可能です。 | |
max-in-flight | 500 | 許容される最大同時リクエスト数。これを超えたときに受信したリクエストは 429 レスポンスを受け取ります。Miasma のメモリ使用量は同時リクエスト数に直接比例します - メモリ使用量が懸念される場合は、これをより低い値に設定してください。 |
link-prefix | / | 自己誘導リンクのプレフィックス。これは Miasma をホストするパスである必要があります(例:/naughty-bots)。 |
link-count | 5 | 各レスポンスページに含める自己誘導リンクの数。 |
max-depth | none | スクレイパーが指定された深度に達したらリンクの生成を停止します。これにより、希望する量の毒を提供した後にスクレイパーを遮断できます。アクティブなスクレイパーの数を管理可能なレベルに抑えるために、link-count と併用してください。 |
force-gzip | false | クライアントの Accept-Encoding ヘッダーに関係なく、常にレスポンスをgzip圧縮します。圧縮を強制すると、egressコストの削減に役立ちます。 |
unsafe-allow-html | false | 毒ソースのレスポンス内のHTML文字をエスケープしません。意図しないクライアントサイドJavaScriptの実行を防ぐため、エスケープはデフォルトで有効になっています。このオプションは慎重に使用してください。 |
poison-source | https://rnsaffn.com/poison2/?mask=0 | 毒入りトレーニングデータのプロキシソース。 |
no-poison-cache | false | 毒ソースのレスポンスキャッシュを無効にします。 |
metrics-db-path | メトリクスデータを保存するSQLiteデータベースファイルへのパス。データベースが存在しない場合、Miasma はこの場所にデータベースを作成します。 | |
metrics-username | Miasma のメトリクスページにアクセスするために必要なBasic認証のユーザー名。 | |
metrics-password | Miasma のメトリクスページにアクセスするために必要なBasic認証のパスワード。 | |
metrics-endpoint | /metrics | Miasma のメトリクスが提供されるエンドポイント。 |
免責事項
Miasma はthe poison fountainとは提携していません。私たちはそのレスポンスを制御できず、その内容の安全性を保証することもできません。ユーザーを Miasma の場所へ誘導することは決してしないでください。
Miasma は、影響を受けたスクレイパーの運営者からのいかなる報復についても責任を負いません。適用される法律およびホスティングプロバイダーのポリシーを遵守するのはあなたの責任です。完全な保証および責任制限の詳細については、LICENSE(GPL-v3)を参照してください。
カバーアート by @cerberussaturn07