ประสบการณ์ชุบชีวิตแทร็กเกอร์ทอร์เรนต์ที่ตายไปแล้วและพบเพียร์ 3 ล้านราย
(kianbradley.com)- ระหว่างหาสาเหตุที่การดาวน์โหลด Linux ISO ช้า พบว่า BitTorrent tracker หลายตัวหายไปแล้ว จึงทดลองว่าหากจดโดเมนของแทร็กเกอร์ที่ตายไปแล้วใหม่ จะมีไคลเอนต์กลับมาเท่าไร
- เป้าหมายคือ
udp://open.demonii.si:1337/announceโดยซื้อโดเมน.siจาก Dynadot เชื่อมต่อกับ VPS แล้วรัน opentracker บนพอร์ต 1337 - ก่อนเปิดแทร็กเกอร์ ก็มีคำขอถาโถมเข้ามาที่พอร์ต UDP 1337 แล้ว และหลังผ่านไปราว 1 ชั่วโมง พบ ทอร์เรนต์ประมาณ 1.73 ล้านรายการ และ เพียร์ 3.15 ล้านราย
- สถิติมี peers 3,155,701, seeds 1,342,504, completed 244,224, UDP overall 58,843,612 เป็นต้น แสดงให้เห็นว่า URL แทร็กเกอร์เก่ายังคงหลงเหลืออยู่ในการตั้งค่าของไคลเอนต์จำนวนมาก
- ยังไม่ชัดเจนว่าแค่โครงสร้างพื้นฐานแทร็กเกอร์ที่ไม่มีโฆษณาหรือให้บริการไฟล์
.torrentจะเข้าข่ายชักจูงให้ละเมิดลิขสิทธิ์หรือไม่ แต่ผู้ทดลองกังวลเรื่องร่องรอยการจ่ายเงินด้วยบัตรเครดิต จึงปิด VPS และลบโดเมน
การทดลองจดโดเมนแทร็กเกอร์ที่ตายไปแล้ว
- พบในแท็บ
Trackersของ qBittorrent ว่าแทร็กเกอร์หลายตัวอยู่ในสถานะ 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
- รัน
opentracker -p 1337 -P 1337ด้วย systemd unit
- บน 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.7 ล้านรายการ บนเพียร์ 3.1 ล้านตัว!”
ถ้าไม่ตอบสนองต่อคำขอให้ลบ ก็น่าจะเอนเอียงไปทางผิดกฎหมายมากขึ้น แต่ถ้าตอบสนองต่อคำขอให้ลบโดยนำแฮชไปใส่ แบล็กลิสต์ โดยทั่วไปก็น่าจะไม่มีปัญหา แน่นอนว่าย่อมขึ้นอยู่กับเขตอำนาจศาล และการแมตช์แฮชกับ IP:PORT จะถูกมองว่าเป็นการเผยแพร่/การช่วยเหลือ/หรืออย่างอื่นหรือไม่ คดี TPB อาจเป็นตัวอย่างได้ ผมรู้จักคนที่รันแทร็กเกอร์ค่อนข้างใหญ่เป็นเวลาหลายปี เมื่อมีคำขอให้ลบก็ใส่แฮชนั้นลงแบล็กลิสต์ และจนถึงตอนนี้ก็ยังไม่มีเรื่องอะไร
เนื่องจากไคลเอนต์ BitTorrent มีความหลากหลายมาก และมีหลาย implementation ที่เขียนด้วยภาษาที่ไม่ปลอดภัย จึงสงสัยว่าอาจโจมตีไคลเอนต์บางตัวผ่าน แทร็กเกอร์ประสงค์ร้าย ได้หรือไม่
ถ้าแทร็กเกอร์ส่งข้อมูลรูปแบบผิด ๆ ไป ก็ไม่น่าแปลกใจหากไคลเอนต์บางตัวทำงานผิดพลาด
แม้ใช้ภาษาที่ memory-safe ก็ยังทำไคลเอนต์ที่ทำงานถูกต้องได้ยาก การ implement ให้ถูกต้องด้วย C หรือ C++ จึงต้องยากมากอยู่แล้ว
API ที่เกี่ยวกับ announce ค่อนข้าง implement ได้ง่าย แต่ก็ยากจะรับประกันว่า implementation นั้นทำขึ้นในสภาพแวดล้อมที่มีการทดสอบแบบ fuzzing ตัวอย่างเช่น Transmission มีช่องโหว่หลายรายการตลอดหลายปีที่ผ่านมา ส่วน implementation ของไคลเอนต์อื่น ๆ ผมไม่ค่อยแน่ใจ
เมื่อก่อนเคยรัน แทร็กเกอร์ส่วนตัว อยู่ช่วงสั้น ๆ เพื่อทดลองดูวิดีโอร่วมกันผ่าน P2P
เป็นแค่ของเล่น เลยไม่ได้ลงลึกว่าแทร็กเกอร์ทำงานอย่างไร และใช้แทร็กเกอร์ rust Aquatic พอร้องขอไป เขาก็ใจดีเพิ่มการรองรับ webtorrent ให้ด้วย https://github.com/greatest-ape/aquatic
แทร็กเกอร์รู้ไหมว่าตัวเองกำลังติดตามอะไรอยู่? มีความพยายามใดไหมที่จะให้แทร็กเกอร์ช่วยจับคู่เพียร์ แต่ไม่รู้เนื้อหาข้างใน?
ตามสัญชาตญาณ คนดูเหมือนจะหาเพียร์จากแฮช/แมกเน็ตบางอย่าง และตัวแมกเน็ตเองก็น่าจะเพียงพอ โดยไม่จำเป็นต้องมีข้อมูลระบุตัวตน แน่นอนว่าเท่าที่รู้ ลิงก์แมกเน็ตจำนวนมากมีคำอธิบายที่มนุษย์อ่านได้ แทร็กเกอร์อาจพยายามดาวน์โหลดแฮชนี้จากเพียร์เพื่อเอาข้อมูลทอร์เรนต์ได้ แต่ถ้าไม่ดาวน์โหลดเอง ก็น่าจะยากที่จะรู้จริง ๆ ว่าทอร์เรนต์นั้นคืออะไรและข้างในมีอะไร
ความเข้าใจนี้ถูกไหม? ส่วนใดของลิงก์แมกเน็ตที่เป็นแกนหลักต่อการจับคู่กัน? แทร็กเกอร์สามารถเมินฟิลด์ที่มนุษย์อ่านง่าย หรือบล็อกตั้งแต่ขั้นตอนรับเข้าเพื่อปิดตาตัวเองได้ไหม?
ถ้ายก opentracker ซึ่งเป็นซอฟต์แวร์ที่บทความต้นฉบับเลือกใช้เป็นตัวอย่าง มันรันได้ทั้งโหมด whitelist และ blacklist แบบแรกอธิบายตัวเองอยู่แล้ว ส่วนแบบหลังจะอนุญาตทุกแฮชยกเว้นแฮชที่อยู่ในแบล็กลิสต์ แทร็กเกอร์สาธารณะอย่าง torrent.eu หรือ opentrackr.org จะรันแบบแบล็กลิสต์เสมอ เพื่อให้ใคร ๆ ก็มารวมตัวกันได้กับคอนเทนต์แทบทุกอย่าง
ที่นี่มีรายการ master list ของแทร็กเกอร์ที่อัปเดตทุกวัน น่าจะใช้หาแทร็กเกอร์ที่ตายแล้วตัวอื่น ๆ ได้ https://github.com/ngosang/trackerslist
กล่าวอีกอย่างคือ แค่เสียค่าใช้จ่ายในการจดโดเมนและเผยแพร่ DNS record บางรายการ ก็สามารถ DDoS ไปยัง IP ใดก็ได้ตามต้องการ
ไคลเอนต์ BitTorrent ที่ผมเคยใช้ทำงานค่อนข้างมีมารยาท และจะถอยอย่างน้อยราว 60 วินาทีสำหรับแต่ละ tracker ที่เชื่อมต่อไม่ได้ แม้จะซื้อโดเมน tracker ที่ตายไปแล้วแล้วชี้ไปยัง IP ของคนอื่น ถ้าบริการนั้นไม่ได้ listen อยู่บนพอร์ตที่ไคลเอนต์พยายามเชื่อมต่อ และต่อให้พอร์ตบังเอิญตรงกันแต่ไม่ได้พูดโปรโตคอล BitTorrent ก็จินตนาการได้ยากว่าการที่ไคลเอนต์ BitTorrent 1 ล้านตัวพยายามเชื่อมต่อจะกลายเป็นปัญหาใหญ่มากขนาดนั้น
คล้ายกับตอนที่ Cloudflare ได้ที่อยู่ IP 1.1.1.1 ไป พอเปิดใช้งานก็เห็นทราฟฟิกมหาศาลทันที เพราะมีคนจำนวนมากชี้ไปยังที่อยู่นั้นในสคริปต์
สิ่งแรกที่นึกถึงคือมีไคลเอนต์ BitTorrent กี่ตัวที่มี โค้ด parsing ที่เปราะบาง
คนไม่หวังดีสามารถจดโดเมนแล้วทำให้ไคลเอนต์ติดมัลแวร์ได้ไหม?
โครงสร้างพื้นฐานคือส่ง HTTP call ไปยัง tracker แล้วรับ response สิ่งที่นึกออกเร็ว ๆ คือการคืนค่า bencode ที่ผิดรูปเพื่อทำให้ไคลเอนต์ที่มือใหม่เขียนเกิดหน่วยความจำหมดเท่านั้น ในฐานะเป้าหมายโจมตี peer protocol และรูปแบบแปรผันอย่าง uTP น่าสนใจกว่ามาก และไม่จำเป็นต้อง host tracker เพื่อทำแบบนั้นด้วย แค่รับ IP ของ peer จาก tracker หรือ DHT แล้วเชื่อมต่อ จากนั้นก็โจมตีตามต้องการได้เลย
ง่ายมาก จดโดเมนในประเทศอย่างรัสเซีย จีน อิหร่าน แล้วรันเว็บไซต์บน Alibaba ก็พอ
ลองส่งเศษกระดาษทางกฎหมายไปยังรัสเซียหรือจีนดูสิ คงลงเอยได้ดีแน่นอน
ควรบอกการค้นพบนี้ให้ฝั่ง TOR รู้ด้วย ตอนนี้คงปิด darknet แล้วขนทุกอย่างไปจีนได้เลย
forward ไปยัง public tracker อื่นไม่ได้หรือ? แบบนั้นก็ไม่ต้อง host อะไรเอง และถ้าได้รับจดหมายทางกฎหมายก็ให้ไปคุยกับฝั่ง public tracker
ไม่ใช่นักกฎหมาย แต่เท่าที่ผมเข้าใจ การรัน tracker ที่เป็นกลางต่อเนื้อหา ในสหรัฐฯ นั้นถูกกฎหมาย
ในเขตอำนาจศาลอื่นอาจไม่ใช่อย่างนั้นแน่นอน และ VPS ก็อาจอยู่ในเขตอำนาจศาลอื่นได้ ส่วน .si TLD ก็อยู่คนละเขตอำนาจศาลแน่ ๆ
คิดว่าน่าจะมีมากกว่านี้ ส่วนคดีแพ่งที่ MPAA และอื่น ๆ ฟ้องเรียกค่าเสียหายนั้นมีมากกว่านี้แน่นอน ในสหรัฐฯ อาจพิสูจน์ได้ยากกว่าเล็กน้อย แต่ถ้าเป็น tracker ที่รายการส่วนใหญ่เป็นเนื้อหาลิขสิทธิ์ ผมค่อนข้างมั่นใจว่าก็ถูกปิดในสหรัฐฯ ได้เช่นกัน
คนที่ใช้ชีวิตออนไลน์ในสโลวีเนียช่วง 20 ปีที่ผ่านมาแทบทุกคนน่าจะรู้จักหรือเคยใช้มัน และ tracker นั้นก็ไม่ได้หายไปเพราะประกาศทางกฎหมายด้วย