死んだTorrentトラッカーを蘇らせ、315万ピアを見つけた体験
(kianbradley.com)- Linux ISO のダウンロードが遅い原因を調べる中で、複数の BitTorrent トラッカー が消滅した状態にあることを確認し、死んだトラッカードメインを再登録するとどれだけ多くのクライアントが戻ってくるのかを実験した
- 対象は
udp://open.demonii.si:1337/announceで、.siドメインを Dynadot で購入して VPS に接続した後、opentracker をポート 1337 で実行した - トラッカーを起動する前から UDP 1337 ポートにリクエストが殺到しており、約 1 時間後には 約 173 万件のトレント と 315 万ピア が観測された
- 統計には peers 3,155,701、seeds 1,342,504、completed 244,224、UDP overall 58,843,612 などが含まれ、古いトラッカー URL が今なお多くのクライアント設定に残っていることを示している
- 広告や
.torrentファイル提供のないトラッカーインフラだけで著作権侵害の誘導に当たるかは不明確だが、実験者はクレジットカード決済の痕跡を意識して VPS を停止し、ドメインを削除した
死んだトラッカードメイン登録実験
- qBittorrent の
Trackersタブで、複数のトラッカーが host down または未使用ドメイン状態であることを確認した - BitTorrent においてトラッカーは、トレントに参加する他のピアを知らせる中核的な構成要素である
- この構造は BitTorrent プロトコル内に 中央集権的な地点 を残している
- トラッカーが維持されなかったりオフラインになったりすると、その経路ではピアを見つけにくくなる
- 代替として Mainline DHT があるが、この方式にも限界がある
- bootstrap node に依存する
- Sybil attack に脆弱である
- 実験者が受け取っていたトレントでは DHT でもピアを見つけられなかった
open.demonii.si の復旧と観測結果
- 未使用状態だった
udp://open.demonii.si:1337/announceドメインを登録した- ドメインは Dynadot で購入した
- VPS を用意し、ドメインを VPS にマッピングした
- トラッカーソフトウェアとして opentracker を使用した
- Ubuntu 24.04 で
gcc-14、g++-14、build-essential、zlib1g-devをインストールした - libowfat を先にビルドした後、opentracker をビルドした
- systemd unit として
opentracker -p 1337 -P 1337を実行した
- Ubuntu 24.04 で
- opentracker を起動する前から UDP 1337 ポートに 大量のトラフィック が流入していた
- 約 1 時間後、
http://open.demonii.si:1337/stats?mode=everythingの統計で大規模な接続が確認された- torrents:
count_mutex1,735,538,count_iterator1,735,523 - peers: 3,155,701
- seeds: 1,342,504
- completed: 244,224
- TCP accept 21,532, announce 20,219, scrape 263
- UDP overall 58,843,612, connect 18,321,703, announce 33,160,261, scrape 3,211,543, missmatch 4,116,689
- torrents:
法的リスクと実験終了
- 法的側面は明確ではない
- The Pirate Bay のような事例では、人気映画の露出、広告販売、
.torrentファイルの提供などが著作権侵害の 誘導(inducement) の証拠として扱われる - 広告しないトラッカーインフラだけを運用する行為が誘導に当たるかどうかは、立証がより難しい問題として残る
- 自由に配布されるトレントと著作権のあるトレントの両方がこのトラッカーを利用できる
- The Pirate Bay のような事例では、人気映画の露出、広告販売、
- クレジットカードでドメイン料金を支払った点が負担として残り、実験者は VPS を停止してドメインを削除した
- 実験後、
open.demonii.siドメインは再び登録可能な状態になった
- 実験後、
1件のコメント
Hacker News のコメント
実際にトラッカーをホスティングしているのではなく、入ってくる接続を見ているだけなら、なぜ違法であるべきなのか分からない。
たとえトラッカーを運営していたとしても、トラッカー自体が違法だとは考えにくい。opentrackr のようなものをホスティングするのは検索エンジンをホスティングするのに似ていて、肝心なのは法的な削除要請にどう対応するかと、トラッカー周辺のインフラがどのような意図を示しているかにある。トラッカーはかなり単純な調整サーバーソフトウェアなので、これ自体が違法になるならおかしな話だ。
動いているソフトウェアが「単純」だということは、違法行為、たとえば他人の犯罪を助ける行為に対する抗弁にはならない。米国にはインターネット/著作権関連の免責条項がいくつかあり、犯罪でなくなる可能性もあるが、おそらくそうではないだろうし、私は法律家ではない。「誰かの犯罪を手助けする」と聞いたら、基本的には「それ自体もおそらく犯罪」と考えるのが妥当だ。
今こそ見直す時期なのかもしれない。結局は DRM をどう強制するかの問題にすぎず、今ではライセンス処理を整理する方法も多いので、業界がそこまで気にする必要はなさそうだ。
「その後、トラッカーを起動した。約1時間後には、310万のピアにまたがる170万個の異なるトレントにまで急増した!」
削除要請に応じなければおそらく違法寄りになり、削除要請に応じてハッシュをブラックリストに入れれば、おおむね問題ない可能性が高い。もちろん、管轄や、ハッシュを IP:PORT に対応付ける行為が配布/幇助/その他何として扱われるかによって変わる。TPB 事件が例になり得る。かなり大きなトラッカーを数年運営していた人を知っているが、削除要請が来ると該当ハッシュをブラックリストに入れており、今のところ特に問題は起きていない。
BitTorrent クライアントは非常に多様で、多くの実装が安全でない言語で書かれているので、悪意あるトラッカーを通じて一部のクライアントを攻撃できるのではないかと気になる。
トラッカーが不正な形式のデータを送れば、一部のクライアントが誤動作しても驚かない。
メモリ安全な言語でも正しく動くクライアントを作るのは難しいのに、C や C++ で正確に実装するのは相当に大変なはずだ。
announce 関連 API は実装しやすいが、ファジングテスト環境で実装されたと断言するのは難しい。たとえば Transmission には長年にわたり複数の脆弱性があり、他のクライアント実装についてはよく分からない。
以前、P2P で一緒に動画を見ることを試そうとして、ごく短期間だけプライベート用トラッカーを運営したことがある。
おもちゃ程度だったのでトラッカーがどう動くのか深くは見ておらず、Rust の Aquatic トラッカーを使った。頼んだところ、webtorrent 対応も親切に追加してくれた https://github.com/greatest-ape/aquatic
トラッカーは自分が何を追跡しているのか知っているのだろうか? ピア同士の出会いを仲介しつつ、トラッカーには内容を分からせないようにする試みはあるのだろうか?
直感的には、人々は何らかのハッシュ/マグネットを基準にピアを探しているようで、マグネット自体だけで十分であり、識別情報を含める必要はなさそうだ。もちろん、多くのマグネットリンクには人間が読める説明が入っていることは知っている。トラッカーがピアからこのハッシュをダウンロードしてトレント情報を得ようとすることはできるだろうが、直接ダウンロードしなければ、そのトレントが何で、中に何が入っているのかは実際には分かりにくいように思う。
この理解は正しいだろうか? マグネットリンクのうち、出会いの仲介に不可欠な部分はどれくらいあるのだろうか? トラッカーが人間に読みやすいフィールドを無視したり、流入段階でブロックしたりして、目隠しすることはできるのだろうか?
元記事で選ばれていたソフトウェアである opentracker を例にすると、ホワイトリストモードとブラックリストモードのどちらでも実行できる。前者は自明で、後者はブラックリスト入りしたハッシュを除くすべてのハッシュを許可する。torrent.eu や opentrackr.org のような公開トラッカーは、誰でもほぼあらゆるコンテンツについて集まれるよう、常にブラックリスト方式で運営している。
毎日更新されるトラッカーのマスターリストがここにあるので、他の死んだトラッカーも見つけられそうだ https://github.com/ngosang/trackerslist
言い換えると、ドメインを登録して特定の DNS レコードを公開する費用だけで、任意の IP に DDoS できるということ
自分が使ったことのある BitTorrent クライアントはかなり行儀よく動作していて、接続できないトラッカーごとに少なくとも60秒程度は間隔を置いていた。死んだトラッカーのドメインを買って他人の IP を指すようにしたとしても、そのサービスがクライアントの接続しようとするポートで待ち受けておらず、たとえポートが偶然一致しても BitTorrent を話さないなら、100万の BitTorrent クライアントが接続しようとしても、そこまで大きな問題になるとは想像しにくい
Cloudflare が 1.1.1.1 の IP アドレスを取得したときに似ている。有効化された途端に膨大なトラフィックが見えたが、多くの人がスクリプトでそのアドレスを指していたため
最初に思ったのは、どれだけ多くの BitTorrent クライアントが 脆弱なパースコードを持っているのかということ
悪意ある誰かがドメインを登録してクライアントを感染させられるのだろうか?
基本的にはトラッカーに HTTP 呼び出しを送り、応答を受け取る構造。ぱっと思いつくのは、不正な bencode を返して、初心者が書いたクライアントでメモリ枯渇を起こす程度。攻撃対象としてはピアプロトコルや uTP のような派生のほうがはるかに興味深く、そのためにトラッカーをホストする必要もない。トラッカーや DHT からピア IP を取得して接続し、好きな攻撃をすればよい
簡単だ。ドメインをロシア、中国、イランのような国で登録し、ウェブサイトは Alibaba で動かせばよい
ロシアや中国に法的な紙くずを送ってみろと言えばいい。きっとうまくいくはず
TOR 側にもこの発見を知らせるべきだ。これでダークネットを閉じて、全部中国に移せばよさそうだ
他の 公開トラッカーに転送してはいけないのか? そうすれば何もホストせず、法的な手紙を受け取ったら公開トラッカー側と話してくれと言える
法律家ではないが、自分の理解では、米国で コンテンツ中立のトラッカーを運営するのは合法
他の法域では明らかにそうでない場合があり、VPS が別の法域にある可能性もあるし、.si TLD は確実に別の法域
おそらくもっとあったと思う。MPAA などが損害賠償訴訟を起こした民事事件は確実にさらに多い。米国では立証がやや難しいかもしれないが、登録されているものの大半が著作権コンテンツであるトラッカーなら、米国でも閉鎖され得るとかなり確信している
過去20年の間にスロベニアでオンライン生活をしていた人なら、ほぼ全員がそれを知っているか使ったことがあるはず。そしてそのトラッカーは法的通知のせいで消えたわけでもなかった