
miasma v0.4.1
AIウェブスクレイパーを無限の毒の穴に閉じ込めろ。
🌀 Miasma
AI企業は絶えずインターネットを途方もない規模でスクレイピングし、その中のあらゆるコンテンツを飲み込んで、次期モデルの学習データとして使用しています。あなたが公開ウェブサイトを運営しているなら、彼らはすでにあなたの成果を盗んでいます。
ここで Miasma が反撃を支援します! サーバーを起動して、悪意のあるトラフィックをそこに向けてください。Miasma は poison fountain からの毒入り学習データを、複数の自己参照リンクとともに送信します。粗悪コンテンツを貪る機械のための、無限の粗悪コンテンツビュッフェです。
Miasma は超高速で、メモリ消費量も最小限です。インターネットのヒルどもを追い払うために計算リソースを無駄にする必要はありません。
[!CAUTION] このソフトウェアの導入には固有のリスクがあります。使用前に 設定 と 免責事項 をよくお読みください。
使い方
Miasma はローカルでも、公式の Dockerイメージ でも実行できます。
既存のRustサーバーに Miasma を組み込みたい場合は、ライブラリとして Miasma を使用 することもできます。
ローカルで実行する
cargo でインストール(推奨):
cargo install miasma
または、リリース からビルド済みバイナリをダウンロードしてください。
コミュニティ管理のパッケージも、さまざまなパッケージマネージャー向けに提供されています:
デフォルト設定で 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="/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圧縮されたレスポンスは大幅に小さくなるため、エグレスコストの削減に役立ちます。
スクレイパーを永久に罠にかけておくこともできますが、リンク数と最大深度のオプションを使用して、約10万ページの毒入りコンテンツを消費したらスクレイパーを解放します。この構成では、Miasma はスクレイパー1台につき合計約 250MB のデータを送信します。
miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8
お楽しみください!
デプロイして、行儀の悪いボットたちが無限の粗悪コンテンツマシンから貪欲に食べる様子を眺めましょう!
robots.txt
robots.txt を使用して、行儀の良いボットや検索エンジンを Miasma から保護してください!
User-agent: *
Disallow: /naughty-bots
メトリクス
Miasma は、一意のUser-Agentごとのスクレイパーリクエスト数を追跡する機能を提供します。これは、どのボットがあなたのサイトに最も多くアクセスしているかを特定するのに役立ちます。メトリクスはローカルのSQLiteデータベースファイルに書き込まれ、任意のエンドポイントで表示できます。
設定
Miasma はCLIフラグまたは 設定ファイル で設定できます。
| Option | Default | Description |
|---|---|---|
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でレスポンスします。圧縮を強制するとエグレスコストの削減に役立ちます。 |
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 は poison fountain とは提携していません。私たちはそのレスポンスを制御できず、そのコンテンツの安全性を保証することもできません。ユーザーをあなたの Miasma の場所に 決して 誘導しないでください。
Miasma は、影響を受けたスクレイパーの運営者からの報復について一切責任を負いません。適用される法律およびホスティングプロバイダーのポリシーを遵守するのはあなたの責任です。完全な保証および責任制限の詳細については LICENSE (GPL-v3) を参照してください。
カバーアート: @cerberussaturn07