1P by GN⁺ | ★ favorite | 댓글 1개
  • 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가 있지만, 이 방식도 한계가 있음

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을 실행함
  • 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 도메인은 다시 등록 가능한 상태가 됨

댓글과 토론

Hacker News 의견들
  • 실제로 트래커를 호스팅하는 게 아니라 들어오는 연결을 보기만 하는 경우라면 왜 불법이어야 하는지 모르겠음
    설령 트래커를 운영하더라도 트래커 자체가 불법이라고 보기는 어려움. opentrackr 같은 걸 호스팅하는 건 검색엔진을 호스팅하는 것과 비슷하고, 핵심은 법적 삭제 요청에 어떻게 대응하느냐와 트래커 주변 인프라가 어떤 의도를 드러내느냐에 있음. 트래커는 꽤 단순한 조정 서버 소프트웨어라서, 이것 자체가 불법이 된다면 이상한 일임

    • “합법인가?”는 별로 유용한 질문이 아님. 더 나은 질문은 소송당할 가능성이 얼마나 되느냐임. 민사소송에서는 실제 합법 여부와 별개로, 눈에 띄면 변호사들에게 괴롭힘당할 수 있음
    • 남이 범죄를 저지르는 걸 알고도 도우면 보통 그 범죄를 직접 저지른 것과 비슷하게 취급됨. 미국 연방법상으로는 18 USC 2a https://www.law.cornell.edu/uscode/text/18/2 같은 조항이 있음
      실행 중인 소프트웨어가 “단순하다”는 건 불법 행위, 예컨대 타인의 범죄를 돕는 행위에 대한 방어가 되지 않음. 미국에는 인터넷/저작권 관련 면책 조항이 몇 가지 있어서 범죄가 아니게 만들 수도 있겠지만, 아마 아닐 가능성이 크고 법률가는 아님. “누군가의 범죄를 돕는다”는 말을 들으면 기본적으로 “그 자체도 아마 범죄”라고 생각하는 편이 맞음
    • 음악·영화 업계가 P2P 전반을 싫어했기 때문 아닐까? 2000년대에 P2P가 차세대 분산 웹이 되려던 흐름이 사실상 죽었음
      이제 다시 볼 때가 됐을지도 모름. 결국 DRM을 어떻게 강제하느냐의 문제일 뿐이고, 요즘은 라이선싱을 정리할 방법도 많으니 업계가 그렇게까지 신경 쓸 필요는 없어 보임
    • 원글 작성자는 실제로 트래커를 호스팅했음
      “그다음 트래커를 시작했다. 약 한 시간 뒤 310만 피어에 걸쳐 170만 개의 서로 다른 토렌트까지 치솟았다!”
    • 법적 자문은 아니지만, 합법일 수도 있고 불법일 수도 있음
      삭제 요청에 응답하지 않으면 아마 불법 쪽에 가까워지고, 삭제 요청에 응답해 해시를 블랙리스트에 넣으면 대체로 괜찮을 가능성이 큼. 물론 관할권과 해시를 IP:PORT에 매칭하는 행위가 배포/방조/기타 무엇으로 취급되는지에 따라 달라짐. TPB 사건이 예시가 될 수 있음. 꽤 큰 트래커를 몇 년 운영한 사람을 아는데, 삭제 요청이 오면 해당 해시를 블랙리스트에 넣었고 지금까지는 별일 없었음
  • BitTorrent 클라이언트가 워낙 다양하고 많은 구현이 안전하지 않은 언어로 작성됐으니, 악성 트래커를 통해 일부 클라이언트를 공격할 수 있지 않을까 궁금함
    트래커가 잘못된 형식의 데이터를 보내면 일부 클라이언트가 오동작해도 놀랍지 않음

    • 사람들이 쓰는 토렌트 클라이언트 대부분은 전부는 아니지만 실제로 libtorrent를 감싼 형태이고, libtorrent는 테스트가 잘 되어 있으며 감사도 받은 적 있음
    • 취미 수준의 클라이언트를 작성해 봤는데, 답은 가능하다고 봄. 통제하지 않는 서버에서 입력을 받고, 파일 시스템과도 꽤 많이 상호작용하기 때문임
      메모리 안전 언어로도 제대로 동작하는 클라이언트를 만들기 어려운데, C나 C++로 정확히 구현하는 건 상당히 힘들 수밖에 없음
    • Transmission에는 DNS 리바인딩을 통해 공격자가 임의 명령을 실행할 수 있는 원격 코드 실행 취약점(CVE-2018-5702)이 있었음. 트래커 악용은 분명 실제 공격 벡터가 될 수 있음
    • 데이터는 bencode로 인코딩되므로 바이트 단위 형식임. 알려진 악성 트래커는 보통 예컨대 모든 알려진 PDF 파일에 클라이언트 OS를 노리는 페이로드를 덧붙이는 식으로 무언가를 주입함
      announce 관련 API는 구현하기 꽤 쉽지만, 퍼징 테스트 환경에서 구현됐을 거라고 장담하긴 어려움. 예를 들어 Transmission은 수년 동안 여러 취약점이 있었고, 다른 클라이언트 구현은 잘 모르겠음
    • 가능은 하지만 가능성이 높지는 않음. 프로토콜이 비교적 단순하고, 이미 존재하는 클라이언트들은 엄청난 양의 신뢰할 수 없는 입력에 노출돼 왔음
  • 예전에 P2P로 같이 영상 보는 걸 탐색하려고 아주 짧게 비공개용 트래커를 운영한 적이 있음
    장난감 수준이라 트래커가 어떻게 동작하는지 깊게 보진 않았고, rust Aquatic 트래커를 썼음. 요청하자 webtorrent 지원도 친절히 추가해 줬음 https://github.com/greatest-ape/aquatic
    트래커는 자신이 무엇을 추적하는지 알고 있을까? 피어 만남을 주선하면서도 트래커가 내용을 모르게 하려는 시도가 있을까?
    직감상 사람들은 어떤 해시/마그넷을 기준으로 피어를 찾는 것 같고, 마그넷 자체만으로 충분하며 식별 정보를 포함할 필요는 없어 보임. 물론 많은 마그넷 링크에는 사람이 읽을 수 있는 설명이 들어가는 것으로 앎. 트래커가 피어에게서 이 해시를 다운로드해 토렌트 정보를 얻으려 할 수는 있겠지만, 직접 다운로드하지 않으면 토렌트가 무엇인지, 안에 무엇이 있는지는 실제로 알기 어려울 것 같음
    이 이해가 맞을까? 마그넷 링크에서 만남 주선에 핵심인 부분은 얼마나 될까? 트래커가 사람이 읽기 쉬운 필드를 무시하거나 유입 단계에서 차단해 눈을 가릴 수 있을까?

    • 트래커는 토렌트의 정보 해시만 다룸. 이름도, 설명도, 콘텐츠 목록도 아무것도 없음
      원글에서 선택한 소프트웨어인 opentracker를 예로 들면 화이트리스트 모드와 블랙리스트 모드 둘 다로 실행할 수 있음. 전자는 자명하고, 후자는 블랙리스트에 오른 해시를 제외한 모든 해시를 허용함. torrent.eu나 opentrackr.org 같은 공개 트래커는 누구든 거의 모든 콘텐츠를 두고 모일 수 있게 항상 블랙리스트 방식으로 운영함
    • 트래커는 자신이 무엇을 추적하는지 알고 있음. 예전에 TV 쇼 트래커를 운영했는데, 모든 사용자의 업로드/다운로드 비율을 추적했음
  • 매일 갱신되는 트래커 마스터 목록이 여기 있으니, 다른 죽은 트래커도 찾을 수 있을 듯함 https://github.com/ngosang/trackerslist

  • 다시 말해 도메인을 등록하고 특정 DNS 레코드를 게시하는 비용만으로 임의의 IP를 DDoS할 수 있다는 뜻임

    • 정말 그렇게까지 심각할까?
      내가 써 본 BitTorrent 클라이언트들은 꽤 예의 바르게 동작했고, 연결할 수 없는 트래커마다 최소 60초 정도는 물러났음. 죽은 트래커 도메인을 사서 남의 IP로 가리키더라도, 그 서비스가 클라이언트가 접속하려는 포트에서 듣고 있지 않고 설령 포트가 우연히 맞아도 BitTorrent를 말하지 않는다면, 100만 BitTorrent 클라이언트가 접속하려 해도 그렇게 큰 문제가 되리라고는 상상하기 어려움
    • 일반 클라이언트의 announce 간격은 꽤 김. 보통 30분 정도임. 그렇다 해도 300만 피어면 트래픽 양은 생김
    • 더 해로운 건 공격적인 지식재산권 보유자들이 보내는 DMCA 신고를 가정용 IP 주소로 모두 돌릴 수 있다는 점임. 트래커 운영이 얼마나 합법적이든 ISP는 그냥 계정을 끊어버릴 것임
    • 작성자가 이론상 DDoS하려는 임의의 IP로 모든 트래픽을 리다이렉트한다는 뜻인가? 생각해 본 적 없는데, 300만 피어라면 확실히 무서움
  • Cloudflare가 1.1.1.1 IP 주소를 가져갔을 때와 비슷함. 활성화되자마자 엄청난 트래픽을 봤는데, 많은 사람이 스크립트에서 그 주소를 가리키고 있었기 때문임

    • 그 주소는 어떻게 얻은 걸까?
  • 처음 든 생각은 얼마나 많은 BitTorrent 클라이언트가 취약한 파싱 코드를 갖고 있느냐임
    악의적인 누군가가 도메인을 등록해 클라이언트를 감염시킬 수 있을까?

    • Jon Evans의 소설 “Invisible Armies”와, P2P 소프트웨어 안에 있던 “버그”/백도어가 떠오름. 그 작성자가 그걸 이용해 기계들을 장악했음
    • 별로 그렇지는 않을 것 같음. 트래커는 전체 Bittorrent 구성에서 아주 작은 부분이고, 클라이언트가 피어 목록을 얻는 데만 사실상 쓰임
      기본적으로 트래커에 HTTP 호출을 보내고 응답을 받는 구조임. 빨리 떠오르는 건 잘못된 bencode를 반환해서 초보자가 작성한 클라이언트에서 메모리 고갈을 일으키는 정도임. 공격 대상으로는 피어 프로토콜과 uTP 같은 변형이 훨씬 더 흥미롭고, 그걸 위해 트래커를 호스팅할 필요도 없음. 트래커나 DHT에서 피어 IP를 얻어 연결한 뒤 원하는 공격을 하면 됨
    • utorrent v2.1은 아직도 너무 많은 사람이 쓰고 있고, 분명히 악용 가능함
  • 간단함. 도메인을 러시아, 중국, 이란 같은 나라에 등록하고, 웹사이트는 Alibaba에서 돌리면 됨
    러시아나 중국으로 법적 휴지를 보내 보라고 하면 됨. 분명 잘 풀릴 것임

    • 맞음. 인터넷에서 불법 활동을 운영하는 해법은 그냥 도메인을 “러시아, 중국, 이란 또는 비슷한 나라”에 등록하는 것임
      TOR 쪽에도 이 발견을 알려야 함. 이제 다크넷을 닫고 전부 중국으로 옮기면 되겠음
  • 다른 공개 트래커로 포워딩하면 안 되나? 그러면 아무것도 호스팅하지 않고, 법적 편지를 받으면 공개 트래커 쪽과 이야기하라고 하면 됨

    • 밖에서 보면 구별할 수 없고, 결국 그래도 소송당함
  • 법률가는 아니지만, 내가 이해하기로는 미국에서 콘텐츠 중립 트래커를 운영하는 건 합법임
    다른 관할권에서는 분명 아닐 수 있고, VPS가 다른 관할권에 있을 수도 있으며 .si TLD는 확실히 다른 관할권임

    • 검색해 보니 미국 법 집행기관에 의해 폐쇄된 트래커가 적어도 하나 있었음. EliteTorrents [2005] https://www.latimes.com/archives/la-xpm-2005-may-26-fi-torre...
      아마 더 있었을 것 같음. MPAA 등이 손해배상 소송을 건 민사 사건은 확실히 더 많음. 미국에서는 입증이 다소 더 어려울 수 있지만, 등록된 것 대부분이 저작권 콘텐츠인 트래커라면 미국에서도 폐쇄될 수 있다고 꽤 확신함
    • VPS는 글에서 언급된 https://cockbox.org/ 것인데, 여기는 몰도바 기반이라고 되어 있음
    • 예전에 .si에서 돌아가던 큰 공개 트래커가 있었고, .si의 본거지인 슬로베니아에서 널리 쓰였음
      지난 20년 동안 슬로베니아에서 온라인 생활을 한 사람이라면 거의 모두 그걸 알거나 써 봤을 것임. 그리고 그 트래커는 법적 통지 때문에 사라진 것도 아니었음