Ölü Bir Torrent İzleyicisini Diriltip 3 Milyon Eş Bulma Deneyimi
(kianbradley.com)- Linux ISO indirmesinin neden yavaş olduğunu araştırırken birkaç BitTorrent izleyicisinin ortadan kaybolmuş olduğunu fark edip, ölü bir izleyici alan adını yeniden kaydederse kaç istemcinin geri döneceğini denedi
- Hedef
udp://open.demonii.si:1337/announceidi;.sialan adını Dynadot üzerinden satın alıp bir VPS'e bağladıktan sonra opentracker'ı 1337 numaralı portta çalıştırdı - İzleyiciyi açmadan önce bile UDP 1337 portuna istekler yağmaya başladı ve yaklaşık 1 saat sonra yaklaşık 1,73 milyon torrent ile 3,15 milyon eş gözlemlendi
- İstatistiklerde peers 3.155.701, seeds 1.342.504, completed 244.224, UDP overall 58.843.612 gibi değerler yer aldı; bu da eski izleyici URL'lerinin hâlâ birçok istemci ayarında kaldığını gösteriyor
- Reklam ya da
.torrentdosyası sunmadan yalnızca izleyici altyapısı işletmenin telif hakkı ihlaline teşvik sayılıp sayılmayacağı belirsiz olsa da, deneyi yapan kişi kredi kartı ödeme izini düşünerek VPS'i kapattı ve alan adını sildi
Ölü izleyici alan adını kaydetme deneyi
- qBittorrent'in
Trackerssekmesinde birkaç izleyicinin host down ya da kullanılmayan alan adı durumunda olduğunu gördü - BitTorrent'te izleyici, torrente katılacak diğer eşleri bildiren temel bir bileşendir
- Bu yapı, BitTorrent protokolü içinde merkezî bir nokta bırakır
- İzleyici bakımı yapılmazsa ya da çevrimdışı olursa, o yol üzerinden eş bulmak zorlaşır
- Alternatif olarak Mainline DHT vardır, ancak bu yöntemin de sınırları bulunur
- bootstrap node'lara dayanır
- Sybil attack'a açıktır
- Deneyi yapan kişinin indirdiği torrentte DHT de eş bulamadı
open.demonii.si'nin geri getirilmesi ve gözlem sonuçları
- Kullanılmayan durumdaki
udp://open.demonii.si:1337/announcealan adını kaydetti- Alan adı Dynadot üzerinden satın alındı
- Bir VPS hazırlandı ve alan adı VPS'e eşlendi
- İzleyici yazılımı olarak opentracker kullanıldı
- Ubuntu 24.04 üzerinde
gcc-14,g++-14,build-essential,zlib1g-devkuruldu - Önce libowfat derlendi, ardından opentracker derlendi
- systemd unit'iyle
opentracker -p 1337 -P 1337çalıştırıldı
- Ubuntu 24.04 üzerinde
- opentracker başlatılmadan önce bile UDP 1337 portuna yoğun trafik geliyordu
- Yaklaşık 1 saat sonra
http://open.demonii.si:1337/stats?mode=everythingistatistiklerinde büyük ölçekli bağlantı görüldü- 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:
Hukuki risk ve deneyin sonlandırılması
- Hukuki taraf net değil
- The Pirate Bay gibi örneklerde popüler filmlerin öne çıkarılması, reklam satışı,
.torrentdosyası sunulması gibi unsurlar telif hakkı ihlaline teşvik (inducement) kanıtı olarak ele alındı - Reklam yapılmayan yalnızca izleyici altyapısı işletme eyleminin teşvik sayılıp sayılmayacağını kanıtlamak daha zor bir mesele olarak kalıyor
- Hem serbestçe dağıtılan torrentler hem de telif hakkı kapsamındaki torrentler bu izleyiciyi kullanabilir
- The Pirate Bay gibi örneklerde popüler filmlerin öne çıkarılması, reklam satışı,
- Alan adının kredi kartıyla ödenmiş olması rahatsızlık yarattığı için, deneyi yapan kişi VPS'i kapattı ve alan adını sildi
- Deneyden sonra
open.demonii.sialan adı yeniden kaydedilebilir duruma geldi
- Deneyden sonra
1 yorum
Hacker News görüşleri
Eğer gerçekten tracker barındırmayıp sadece gelen bağlantıları görüyorsanız bunun neden yasa dışı sayılması gerektiğini bilmiyorum
Tracker işletseniz bile tracker’ın kendisini yasa dışı görmek zor.
opentrackrgibi bir şeyi barındırmak, bir arama motoru barındırmaya benziyor; asıl mesele yasal kaldırma taleplerine nasıl yanıt verdiğiniz ve tracker etrafındaki altyapının nasıl bir niyet ortaya koyduğu. Tracker oldukça basit bir koordinasyon sunucusu yazılımı, bu yüzden bunun tek başına yasa dışı olması tuhaf olurduÇalışan yazılımın “basit” olması, yasa dışı eylemler için — örneğin başkasının suçuna yardım etmek için — bir savunma oluşturmaz. ABD’de internet/telif hakkıyla ilgili bazı sorumluluktan muafiyet hükümleri var; bunlar bunu suç olmaktan çıkarabilir ama muhtemelen çıkarmaz, ayrıca ben hukukçu değilim. “Birinin suçuna yardım etmek” ifadesini duyduğunuzda, temel varsayımınız “bu da muhtemelen başlı başına suçtur” olmalı
Belki artık buna yeniden bakmanın zamanı gelmiştir. Sonuçta mesele yalnızca DRM’nin nasıl zorla uygulatılacağı ve bugün lisanslamayı düzenlemenin pek çok yolu var; bu yüzden sektörün bu kadar dert etmesine gerek yok gibi görünüyor
“Sonra tracker’ı başlattım. Yaklaşık bir saat sonra sayı 3,1 milyon peer’e ve 1,7 milyon farklı torrent’e fırladı!”
Kaldırma taleplerine yanıt vermezseniz muhtemelen yasa dışı tarafa daha yakın olursunuz; taleplere yanıt verip hash’leri kara listeye alırsanız genelde sorun çıkmama ihtimali yüksektir. Elbette bu, yargı alanına ve hash’i IP:PORT ile eşleştirmenin dağıtım, yardım ve yataklık ya da başka bir şey olarak mı değerlendirildiğine bağlı. TPB davası buna örnek olabilir. Birkaç yıl boyunca oldukça büyük bir tracker işleten birini tanıyorum; kaldırma talepleri geldiğinde ilgili hash’i kara listeye alıyordu ve şimdiye kadar başına bir şey gelmedi
BitTorrent istemcileri çok çeşitli ve birçok uygulama güvenli olmayan dillerde yazılmış olduğuna göre, kötü niyetli bir tracker üzerinden bazı istemcilere saldırmak mümkün olabilir mi diye merak ediyorum
Tracker hatalı biçimlendirilmiş veri gönderirse bazı istemcilerin yanlış davranmasına şaşırmam
Bellek güvenli bir dilde bile düzgün çalışan bir istemci yapmak zor; bunu C veya C++ ile doğru biçimde uygulamak doğal olarak oldukça güç
announceile ilgili API’yi uygulamak oldukça kolay, ama bunun fuzzing test ortamında uygulanmış olduğuna garanti veremem. Örneğin Transmission’da yıllar boyunca çeşitli açıklar vardı; diğer istemci uygulamaları hakkında bilgim yokGeçmişte P2P ile birlikte video izlemeyi araştırmak için çok kısa süreliğine özel amaçlı bir tracker çalıştırmıştım
Oyuncak düzeyinde bir işti, bu yüzden tracker’ın nasıl çalıştığına derinlemesine bakmadım; Rust tabanlı Aquatic tracker’ı kullandım. İsteyince
webtorrentdesteğini de nazikçe eklediler https://github.com/greatest-ape/aquaticTracker neyi takip ettiğini bilir mi? Peer’leri eşleştirirken tracker’ın içeriği bilmemesini sağlamaya yönelik girişimler var mı?
Sezgisel olarak insanlar belli bir hash/magnet üzerinden peer buluyor gibi görünüyor ve magnet’in kendisi yeterli; ayrıca tanımlayıcı bilgi içermesi gerekmiyor gibi. Tabii birçok magnet bağlantısında insanların okuyabileceği açıklamalar bulunduğunu biliyorum. Tracker, bu hash’i peer’lerden indirip torrent bilgisini edinmeye çalışabilir ama doğrudan indirme yapmadıkça torrent’in ne olduğunu ve içinde ne bulunduğunu gerçekten bilmesi zor gibi geliyor
Bu anlayış doğru mu? Bir magnet bağlantısında eşleştirme için kritik olan kısım ne kadar? Tracker insan tarafından okunabilen alanları yok sayarak ya da giriş aşamasında engelleyerek kendini kör edebilir mi?
Asıl yazıda seçilen yazılım
opentrackerörneğinde olduğu gibi, hem beyaz liste hem de kara liste modunda çalıştırılabilir. İlki açık; ikincisi ise kara listedeki hash’ler dışındaki tüm hash’lere izin verir.torrent.euveyaopentrackr.orggibi açık tracker’lar, herkesin neredeyse her türlü içerik için bir araya gelebilmesi amacıyla her zaman kara liste yaklaşımıyla çalışırGünlük güncellenen tracker ana listesi burada; bu sayede ölü başka tracker’ları da bulabilirsiniz https://github.com/ngosang/trackerslist
Başka bir deyişle, bir alan adını kaydedip belirli DNS kayıtlarını yayımlamanın maliyetiyle rastgele bir IP'ye DDoS yapılabileceği anlamına geliyor
Benim kullandığım BitTorrent istemcileri oldukça uslu davranıyordu ve bağlanılamayan her izleyici için en az 60 saniye kadar geri çekiliyordu. Ölü bir izleyici alan adını satın alıp başka birinin IP'sine yöneltseniz bile, o hizmet istemcinin bağlanmaya çalıştığı portta dinlemiyorsa ve port tesadüfen uyuşsa bile BitTorrent konuşmuyorsa, 1 milyon BitTorrent istemcisi bağlanmaya çalışsa da bunun o kadar büyük bir sorun olacağını hayal etmek zor
Cloudflare 1.1.1.1 IP adresini aldığında olana benziyor. Etkinleşir etkinleşmez muazzam trafik gördüler, çünkü birçok kişi script'lerinde o adresi işaret ediyordu
Aklıma ilk gelen şey, ne kadar çok BitTorrent istemcisinin savunmasız ayrıştırma koduna sahip olduğu
Kötü niyetli biri bir alan adını kaydedip istemcilere bulaşabilir mi?
Temelde izleyiciye bir HTTP çağrısı gönderip yanıt almak üzerine kurulu. Hızlıca aklıma gelen tek şey, hatalı bencode döndürerek acemi biri tarafından yazılmış istemcilerde bellek tükenmesine yol açmak. Saldırı hedefi olarak eş protokolü ve uTP gibi türevleri çok daha ilginç; bunun için de bir izleyici barındırmaya gerek yok. İzleyici veya DHT'den eş IP'lerini alıp bağlandıktan sonra istediğiniz saldırıyı yapabilirsiniz
Basit. Alan adını Rusya, Çin, İran gibi ülkelere kaydedip web sitesini Alibaba'da çalıştırırsınız
Sonra da Rusya'ya ya da Çin'e yasal ihtar göndermeyi denemelerini söylersiniz. Elbette çok iyi sonuç verir
Bu bulguyu TOR tarafına da bildirmeliyiz. Artık darknet'i kapatıp her şeyi Çin'e taşıyabiliriz
Başka açık izleyicilere yönlendirme yapılamaz mı? O zaman hiçbir şey barındırmadan, yasal mektup gelirse gidip açık izleyiciyle konuşmalarını söyleyebilirsiniz
Hukukçu değilim ama anladığım kadarıyla ABD'de içerik açısından tarafsız bir izleyici işletmek yasal
Diğer yargı bölgelerinde kesinlikle öyle olmayabilir, VPS başka bir yargı bölgesinde olabilir ve .si TLD'si de kesinlikle başka bir yargı bölgesi
Muhtemelen daha fazlası da vardır. MPAA ve benzerlerinin tazminat davası açtığı hukuk davaları ise kesinlikle daha fazla. ABD'de ispatlamak biraz daha zor olabilir ama kayıtlı içeriklerin çoğu telifli içerik olan bir izleyici ABD'de de kapatılabilir diye oldukça eminim
Son 20 yılda Slovenya'da çevrimiçi yaşamış olan hemen herkes ya bunu biliyordur ya da kullanmıştır. Ve o izleyici hukuki bildirimler yüzünden de ortadan kaybolmadı