1 คะแนน โดย GN⁺ 2025-06-18 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ระหว่างหาสาเหตุที่การดาวน์โหลด 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
  • ก่อนเริ่ม opentracker ก็มี ทราฟฟิกจำนวนมาก เข้ามาที่พอร์ต UDP 1337 แล้ว
  • หลังผ่านไปราว 1 ชั่วโมง พบการเชื่อมต่อขนาดใหญ่ในสถิติที่ http://open.demonii.si:1337/stats?mode=everything
    • torrents: count_mutex 1,735,538, count_iterator 1,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

ความเสี่ยงทางกฎหมายและการยุติการทดลอง

  • ประเด็นทางกฎหมายยังไม่ชัดเจน
    • ในกรณีอย่าง The Pirate Bay การแสดงภาพยนตร์ยอดนิยม การขายโฆษณา และการให้บริการไฟล์ .torrent ถูกพิจารณาเป็นหลักฐานของการ ชักจูง (inducement) ให้ละเมิดลิขสิทธิ์
    • การดำเนินการเฉพาะโครงสร้างพื้นฐานแทร็กเกอร์ที่ไม่โฆษณา จะเข้าข่ายชักจูงหรือไม่นั้นยังเป็นประเด็นที่พิสูจน์ได้ยากกว่า
    • ทั้งทอร์เรนต์ที่เผยแพร่ได้อย่างเสรีและทอร์เรนต์ที่มีลิขสิทธิ์ต่างก็สามารถใช้แทร็กเกอร์นี้ได้
  • การที่จ่ายค่าโดเมนด้วยบัตรเครดิตทำให้รู้สึกเป็นภาระกังวล ผู้ทดลองจึงปิด VPS และลบโดเมน
    • หลังการทดลอง โดเมน open.demonii.si กลับมาอยู่ในสถานะที่สามารถจดทะเบียนได้อีกครั้ง

1 ความคิดเห็น

 
GN⁺ 2025-06-18
ความคิดเห็นบน Hacker News
  • ถ้าไม่ได้โฮสต์แทร็กเกอร์จริง ๆ แต่แค่ดู การเชื่อมต่อขาเข้า ก็ไม่รู้ว่าทำไมมันถึงควรผิดกฎหมาย
    ต่อให้รันแทร็กเกอร์อยู่ ก็ยากจะบอกว่าแทร็กเกอร์ในตัวมันเองผิดกฎหมาย การโฮสต์อะไรอย่าง opentrackr คล้ายกับการโฮสต์เสิร์ชเอนจิน และประเด็นสำคัญอยู่ที่ว่าจะตอบสนองต่อคำขอให้ลบตามกฎหมายอย่างไร รวมถึงโครงสร้างพื้นฐานรอบ ๆ แทร็กเกอร์แสดงเจตนาแบบไหน แทร็กเกอร์เป็น ซอฟต์แวร์เซิร์ฟเวอร์สำหรับประสานงาน ที่ค่อนข้างเรียบง่าย ถ้าสิ่งนี้ผิดกฎหมายในตัวมันเองก็คงแปลก

    • “ถูกกฎหมายไหม?” ไม่ใช่คำถามที่มีประโยชน์นัก คำถามที่ดีกว่าคือ มีโอกาสถูกฟ้อง มากแค่ไหน ในคดีแพ่ง ต่อให้เรื่องนั้นถูกกฎหมายจริงหรือไม่ก็ตาม ถ้าเด่นสะดุดตาก็อาจถูกทนายตามรังควานได้
    • ถ้ารู้ว่าคนอื่นกำลังก่ออาชญากรรมแล้วยังช่วยเหลือ โดยทั่วไปจะถูกปฏิบัติคล้ายกับเป็นผู้ก่ออาชญากรรมนั้นเอง ในกฎหมายรัฐบาลกลางสหรัฐฯ มีบทบัญญัติอย่าง 18 USC 2a https://www.law.cornell.edu/uscode/text/18/2
      การที่ซอฟต์แวร์ที่กำลังรันอยู่ “เรียบง่าย” ไม่ใช่ข้อต่อสู้ต่อการกระทำผิดกฎหมาย เช่น การช่วยเหลืออาชญากรรมของผู้อื่น ในสหรัฐฯ มี ข้อยกเว้นความรับผิด บางอย่างเกี่ยวกับอินเทอร์เน็ต/ลิขสิทธิ์ที่อาจทำให้ไม่เป็นอาชญากรรมได้ แต่คงไม่น่าใช่ และผมก็ไม่ใช่นักกฎหมาย เมื่อได้ยินคำว่า “ช่วยอาชญากรรมของใครบางคน” โดยพื้นฐานควรคิดไว้ก่อนว่า “ตัวมันเองก็น่าจะเป็นอาชญากรรมด้วย”
    • อาจเป็นเพราะอุตสาหกรรมเพลงและภาพยนตร์ไม่ชอบ P2P โดยรวม หรือเปล่า? ในยุค 2000 กระแสที่ P2P จะกลายเป็นเว็บแบบกระจายศูนย์รุ่นถัดไปแทบจะตายไปแล้ว
      ตอนนี้อาจถึงเวลาหยิบกลับมาดูอีกครั้ง สุดท้ายก็เป็นแค่ปัญหาว่าจะบังคับใช้ DRM อย่างไร และทุกวันนี้ก็มีวิธีจัดการเรื่องไลเซนส์มากมาย จึงดูเหมือนว่าอุตสาหกรรมไม่จำเป็นต้องกังวลถึงขนาดนั้น
    • ผู้เขียนต้นฉบับโฮสต์แทร็กเกอร์จริง ๆ
      “จากนั้นก็เริ่มแทร็กเกอร์ ประมาณหนึ่งชั่วโมงต่อมา มันพุ่งขึ้นไปถึงทอร์เรนต์ที่แตกต่างกัน 1.7 ล้านรายการ บนเพียร์ 3.1 ล้านตัว!”
    • ไม่ใช่คำแนะนำทางกฎหมาย แต่อาจถูกกฎหมายหรือผิดกฎหมายก็ได้
      ถ้าไม่ตอบสนองต่อคำขอให้ลบ ก็น่าจะเอนเอียงไปทางผิดกฎหมายมากขึ้น แต่ถ้าตอบสนองต่อคำขอให้ลบโดยนำแฮชไปใส่ แบล็กลิสต์ โดยทั่วไปก็น่าจะไม่มีปัญหา แน่นอนว่าย่อมขึ้นอยู่กับเขตอำนาจศาล และการแมตช์แฮชกับ IP:PORT จะถูกมองว่าเป็นการเผยแพร่/การช่วยเหลือ/หรืออย่างอื่นหรือไม่ คดี TPB อาจเป็นตัวอย่างได้ ผมรู้จักคนที่รันแทร็กเกอร์ค่อนข้างใหญ่เป็นเวลาหลายปี เมื่อมีคำขอให้ลบก็ใส่แฮชนั้นลงแบล็กลิสต์ และจนถึงตอนนี้ก็ยังไม่มีเรื่องอะไร
  • เนื่องจากไคลเอนต์ BitTorrent มีความหลากหลายมาก และมีหลาย implementation ที่เขียนด้วยภาษาที่ไม่ปลอดภัย จึงสงสัยว่าอาจโจมตีไคลเอนต์บางตัวผ่าน แทร็กเกอร์ประสงค์ร้าย ได้หรือไม่
    ถ้าแทร็กเกอร์ส่งข้อมูลรูปแบบผิด ๆ ไป ก็ไม่น่าแปลกใจหากไคลเอนต์บางตัวทำงานผิดพลาด

    • ไคลเอนต์ทอร์เรนต์ส่วนใหญ่ที่ผู้คนใช้ แม้จะไม่ใช่ทั้งหมด จริง ๆ แล้วเป็นตัวห่อ libtorrent และ libtorrent ก็ผ่านการทดสอบมาอย่างดี รวมถึงเคยได้รับการ audit ด้วย
    • เคยลองเขียนไคลเอนต์เล่น ๆ ระดับงานอดิเรก คำตอบคือคิดว่าเป็นไปได้ เพราะรับ input จากเซิร์ฟเวอร์ที่เราไม่ได้ควบคุม และยังโต้ตอบกับไฟล์ซิสเต็มค่อนข้างมาก
      แม้ใช้ภาษาที่ memory-safe ก็ยังทำไคลเอนต์ที่ทำงานถูกต้องได้ยาก การ implement ให้ถูกต้องด้วย C หรือ C++ จึงต้องยากมากอยู่แล้ว
    • Transmission เคยมี ช่องโหว่รันโค้ดจากระยะไกล (CVE-2018-5702) ที่ทำให้ผู้โจมตีรันคำสั่งใด ๆ ได้ผ่าน DNS rebinding การใช้แทร็กเกอร์ในทางโจมตีจึงเป็นเวกเตอร์การโจมตีที่เกิดขึ้นได้จริงแน่นอน
    • ข้อมูลถูกเข้ารหัสด้วย bencode จึงเป็นรูปแบบระดับไบต์ แทร็กเกอร์ประสงค์ร้ายที่รู้จักกันมักฉีดอะไรบางอย่าง เช่น แนบ payload ที่เล็งโจมตี OS ของไคลเอนต์เข้าไปกับไฟล์ PDF ที่รู้จักทั้งหมด
      API ที่เกี่ยวกับ announce ค่อนข้าง implement ได้ง่าย แต่ก็ยากจะรับประกันว่า implementation นั้นทำขึ้นในสภาพแวดล้อมที่มีการทดสอบแบบ fuzzing ตัวอย่างเช่น Transmission มีช่องโหว่หลายรายการตลอดหลายปีที่ผ่านมา ส่วน implementation ของไคลเอนต์อื่น ๆ ผมไม่ค่อยแน่ใจ
    • เป็นไปได้ แต่โอกาสไม่สูงนัก โปรโตคอลค่อนข้างเรียบง่าย และไคลเอนต์ที่มีอยู่ก็เผชิญกับ input ที่ไม่น่าเชื่อถือ ปริมาณมหาศาลมาแล้ว
  • เมื่อก่อนเคยรัน แทร็กเกอร์ส่วนตัว อยู่ช่วงสั้น ๆ เพื่อทดลองดูวิดีโอร่วมกันผ่าน P2P
    เป็นแค่ของเล่น เลยไม่ได้ลงลึกว่าแทร็กเกอร์ทำงานอย่างไร และใช้แทร็กเกอร์ rust Aquatic พอร้องขอไป เขาก็ใจดีเพิ่มการรองรับ webtorrent ให้ด้วย https://github.com/greatest-ape/aquatic
    แทร็กเกอร์รู้ไหมว่าตัวเองกำลังติดตามอะไรอยู่? มีความพยายามใดไหมที่จะให้แทร็กเกอร์ช่วยจับคู่เพียร์ แต่ไม่รู้เนื้อหาข้างใน?
    ตามสัญชาตญาณ คนดูเหมือนจะหาเพียร์จากแฮช/แมกเน็ตบางอย่าง และตัวแมกเน็ตเองก็น่าจะเพียงพอ โดยไม่จำเป็นต้องมีข้อมูลระบุตัวตน แน่นอนว่าเท่าที่รู้ ลิงก์แมกเน็ตจำนวนมากมีคำอธิบายที่มนุษย์อ่านได้ แทร็กเกอร์อาจพยายามดาวน์โหลดแฮชนี้จากเพียร์เพื่อเอาข้อมูลทอร์เรนต์ได้ แต่ถ้าไม่ดาวน์โหลดเอง ก็น่าจะยากที่จะรู้จริง ๆ ว่าทอร์เรนต์นั้นคืออะไรและข้างในมีอะไร
    ความเข้าใจนี้ถูกไหม? ส่วนใดของลิงก์แมกเน็ตที่เป็นแกนหลักต่อการจับคู่กัน? แทร็กเกอร์สามารถเมินฟิลด์ที่มนุษย์อ่านง่าย หรือบล็อกตั้งแต่ขั้นตอนรับเข้าเพื่อปิดตาตัวเองได้ไหม?

    • แทร็กเกอร์จัดการเฉพาะ info hash ของทอร์เรนต์เท่านั้น ไม่มีชื่อ ไม่มีคำอธิบาย ไม่มีรายการคอนเทนต์ใด ๆ
      ถ้ายก 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 ล้านตัวพยายามเชื่อมต่อจะกลายเป็นปัญหาใหญ่มากขนาดนั้น
    • ช่วงเวลา announce ของไคลเอนต์ทั่วไปค่อนข้างยาว ปกติราว 30 นาที ถึงอย่างนั้น ถ้ามี peer 3 ล้านรายก็ย่อมเกิดปริมาณทราฟฟิกขึ้นมา
    • สิ่งที่เป็นอันตรายกว่านั้นคือสามารถโยน คำร้อง DMCA ทั้งหมดที่ผู้ถือสิทธิ์ทรัพย์สินทางปัญญาเชิงรุกส่งมาไปยัง IP บ้านได้ ไม่ว่าการรัน tracker จะถูกกฎหมายแค่ไหน ISP ก็จะตัดบัญชีทิ้งเฉย ๆ
    • หมายความว่าผู้เขียนสามารถ redirect ทราฟฟิกทั้งหมดไปยัง IP ใดก็ได้ที่อยาก DDoS ในทางทฤษฎีหรือ? ไม่เคยคิดเรื่องนี้มาก่อน แต่ถ้าเป็น peer 3 ล้านราย ก็แน่นอนว่าน่ากลัว
  • คล้ายกับตอนที่ Cloudflare ได้ที่อยู่ IP 1.1.1.1 ไป พอเปิดใช้งานก็เห็นทราฟฟิกมหาศาลทันที เพราะมีคนจำนวนมากชี้ไปยังที่อยู่นั้นในสคริปต์

    • เขาได้ที่อยู่นั้นมาได้อย่างไร?
  • สิ่งแรกที่นึกถึงคือมีไคลเอนต์ BitTorrent กี่ตัวที่มี โค้ด parsing ที่เปราะบาง
    คนไม่หวังดีสามารถจดโดเมนแล้วทำให้ไคลเอนต์ติดมัลแวร์ได้ไหม?

    • นึกถึงนิยาย “Invisible Armies” ของ Jon Evans และ “บั๊ก”/backdoor ในซอฟต์แวร์ P2P ผู้เขียนคนนั้นใช้มันยึดเครื่องต่าง ๆ
    • ไม่น่าจะเป็นแบบนั้นเท่าไร tracker เป็นส่วนเล็กมากในองค์ประกอบทั้งหมดของ Bittorrent และโดยหลักแล้วใช้แค่ให้ไคลเอนต์ได้รายชื่อ peer เท่านั้น
      โครงสร้างพื้นฐานคือส่ง HTTP call ไปยัง tracker แล้วรับ response สิ่งที่นึกออกเร็ว ๆ คือการคืนค่า bencode ที่ผิดรูปเพื่อทำให้ไคลเอนต์ที่มือใหม่เขียนเกิดหน่วยความจำหมดเท่านั้น ในฐานะเป้าหมายโจมตี peer protocol และรูปแบบแปรผันอย่าง uTP น่าสนใจกว่ามาก และไม่จำเป็นต้อง host tracker เพื่อทำแบบนั้นด้วย แค่รับ IP ของ peer จาก tracker หรือ DHT แล้วเชื่อมต่อ จากนั้นก็โจมตีตามต้องการได้เลย
    • utorrent v2.1 ยังมีคนใช้มากเกินไป และแน่นอนว่าน่าจะนำไป exploit ได้
  • ง่ายมาก จดโดเมนในประเทศอย่างรัสเซีย จีน อิหร่าน แล้วรันเว็บไซต์บน Alibaba ก็พอ
    ลองส่งเศษกระดาษทางกฎหมายไปยังรัสเซียหรือจีนดูสิ คงลงเอยได้ดีแน่นอน

    • ใช่แล้ว วิธีแก้สำหรับการดำเนินกิจกรรมผิดกฎหมายบนอินเทอร์เน็ตก็คือแค่จดโดเมนใน “รัสเซีย จีน อิหร่าน หรือประเทศทำนองเดียวกัน”
      ควรบอกการค้นพบนี้ให้ฝั่ง TOR รู้ด้วย ตอนนี้คงปิด darknet แล้วขนทุกอย่างไปจีนได้เลย
  • forward ไปยัง public tracker อื่นไม่ได้หรือ? แบบนั้นก็ไม่ต้อง host อะไรเอง และถ้าได้รับจดหมายทางกฎหมายก็ให้ไปคุยกับฝั่ง public tracker

    • จากภายนอกแยกไม่ออก และสุดท้ายก็ยังถูกฟ้องอยู่ดี
  • ไม่ใช่นักกฎหมาย แต่เท่าที่ผมเข้าใจ การรัน tracker ที่เป็นกลางต่อเนื้อหา ในสหรัฐฯ นั้นถูกกฎหมาย
    ในเขตอำนาจศาลอื่นอาจไม่ใช่อย่างนั้นแน่นอน และ VPS ก็อาจอยู่ในเขตอำนาจศาลอื่นได้ ส่วน .si TLD ก็อยู่คนละเขตอำนาจศาลแน่ ๆ

    • ลองค้นดูแล้ว พบว่ามี tracker อย่างน้อยหนึ่งรายที่ถูกหน่วยงานบังคับใช้กฎหมายสหรัฐฯ ปิด คือ EliteTorrents [2005] https://www.latimes.com/archives/la-xpm-2005-may-26-fi-torre...
      คิดว่าน่าจะมีมากกว่านี้ ส่วนคดีแพ่งที่ MPAA และอื่น ๆ ฟ้องเรียกค่าเสียหายนั้นมีมากกว่านี้แน่นอน ในสหรัฐฯ อาจพิสูจน์ได้ยากกว่าเล็กน้อย แต่ถ้าเป็น tracker ที่รายการส่วนใหญ่เป็นเนื้อหาลิขสิทธิ์ ผมค่อนข้างมั่นใจว่าก็ถูกปิดในสหรัฐฯ ได้เช่นกัน
    • VPS คือของ https://cockbox.org/ ที่กล่าวถึงในบทความ ซึ่งระบุว่าอยู่ในมอลโดวา
    • เคยมี public tracker ขนาดใหญ่ที่รันอยู่บน .si และถูกใช้กันอย่างแพร่หลายในสโลวีเนีย ซึ่งเป็นถิ่นของ .si
      คนที่ใช้ชีวิตออนไลน์ในสโลวีเนียช่วง 20 ปีที่ผ่านมาแทบทุกคนน่าจะรู้จักหรือเคยใช้มัน และ tracker นั้นก็ไม่ได้หายไปเพราะประกาศทางกฎหมายด้วย