TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 26 READS

Tor 출구 노드 300개가 퇴출된 사연으로 보는 익명 네트워크의 ‘마지막 관문’ 문제

Tor 출구 노드 300개가 퇴출된 사연으로 보는 익명 네트워크의 ‘마지막 관문’ 문제
SOURCE IMAGE · HACKER NEWS
Tor 출구 노드 300개가 퇴출된 사연으로 보는 익명 네트워크의 ‘마지막 관문’ 문제

무슨 일이 있었나요?

한 보안 연구자가 Tor 네트워크에서 문제가 있는 출구 노드(exit node)를 300개 넘게 찾아서 보고했고, 결국 이 노드들이 네트워크에서 제거됐다는 경험담을 블로그에 공유했어요. 숫자만 보면 “300개? 생각보다 적은데?” 싶을 수도 있는데요. Tor 네트워크에서 출구 역할을 하는 노드는 전체를 다 합쳐도 대략 2천 개 안팎으로 알려져 있거든요. 그러니까 출구 노드 중에서 결코 작지 않은 비율이 개인 한 명의 추적으로 정리된 셈이에요.

어떤 단서를 따라갔고 Tor 측과 어떻게 소통했는지는 원문에서 직접 읽어보시길 추천해요. 여기서는 이 사건이 왜 중요한지 제대로 이해할 수 있도록 Tor의 구조와 ‘나쁜 릴레이’ 문제의 배경을 차근차근 풀어볼게요.

Tor는 어떻게 동작하고, 출구 노드는 왜 특별할까

Tor가 뭐냐면, 내 인터넷 요청을 목적지로 바로 보내지 않고 전 세계 자원봉사자들이 운영하는 서버(릴레이) 세 개를 차례로 거쳐서 보내는 네트워크예요. 첫 번째가 가드(guard), 두 번째가 미들(middle), 마지막이 출구(exit)예요. 데이터는 양파 껍질처럼 세 겹으로 암호화돼 있어서, 각 릴레이는 자기 몫의 껍질 하나만 벗길 수 있어요. 그래서 가드는 내가 누군지는 알지만 어디로 가는지 모르고, 출구는 어디로 가는지는 알지만 누가 보냈는지는 몰라요.

문제는 마지막 껍질이 출구 노드에서 벗겨진다는 점이에요. 출구 노드는 Tor 네트워크와 일반 인터넷 사이에 있는 ‘문’이거든요. 그래서 사용자가 HTTPS가 아닌 평문 HTTP로 접속하면, 출구 운영자는 그 내용을 그대로 볼 수 있고 심지어 바꿔치기할 수도 있어요. 택배로 비유하면 중간 물류센터들은 상자 안을 못 보지만, 마지막 배송 기사는 상자를 열어서 내용물을 직접 건네주는 셈이에요. 그 기사가 나쁜 마음을 먹으면 내용물을 슬쩍 바꿀 수 있는 거죠.

처음 있는 일이 아니에요

2020년에는 한 공격 그룹이 한때 전체 출구 용량의 20%가 넘는 노드를 운영하면서, 비트코인 관련 사이트 사용자를 노린 SSL 스트리핑 공격을 벌인 사례가 보고됐어요. SSL 스트리핑은 원래 HTTPS로 가야 할 연결을 HTTP로 슬쩍 낮춘 다음 중간에서 내용을 조작하는 기법이에요. 이 사건에서는 페이지에 표시되는 비트코인 주소를 공격자 주소로 바꿔치기한 것으로 알려졌어요. 2021년에는 ‘KAX17’이라는 이름이 붙은 정체불명의 운영자가 수백 개의 릴레이를 몰래 운영해온 사실이 드러나기도 했어요. 이쪽은 주로 출구가 아니라 가드·미들 노드였는데, 사용자 익명성을 깨려는 시도일 수 있다는 분석이 나왔어요.

나쁜 노드는 어떻게 찾아낼까

Tor 네트워크에는 ‘디렉터리 권한 서버’라는 게 있어요. 어떤 릴레이가 네트워크에 참여하는지 명부를 관리하는 소수의 신뢰 서버예요. 문제가 확인된 노드에는 이 서버들이 BadExit 표시를 붙여서 출구로 못 쓰게 하거나, 아예 명부에서 빼버려요. 다만 그렇게 판단하려면 누군가 증거를 모아서 보고해야 하거든요.

일반적으로 쓰는 방법은 크게 두 가지예요. 하나는 미끼 트래픽을 직접 흘려보는 방식이에요. exitmap 같은 도구는 출구 노드를 하나씩 지정해서 접속해보면서, 응답이 조작되지 않았는지와 인증서가 바꿔치기되지 않았는지를 확인해요. 다른 하나는 운영 패턴을 분석하는 방식이에요. Tor는 한 사람이 노드를 여러 개 운영하면 MyFamily 설정으로 ‘같은 가족’이라고 신고하게 해요. 그래야 한 경로에 같은 운영자의 노드가 두 개 이상 들어가지 않아서, 한 사람이 입구와 출구를 동시에 보는 상황을 막을 수 있거든요. 그런데 신고도 없이 같은 IP 대역, 같은 호스팅 업체에서 비슷한 시기에 우르르 나타난 노드 묶음이 있다면 충분히 의심해볼 만하죠.

한국 개발자에게 주는 시사점

첫째, HTTPS는 선택이 아니라 기본값이에요. 출구 노드 문제는 Tor 사용자만의 이야기가 아니에요. 공용 와이파이나 악성 프록시처럼 중간에 누군가 끼어들 수 있는 모든 환경에 똑같이 해당하거든요. 여기에 HSTS까지 켜두면 좋아요. HSTS는 브라우저에게 “우리 사이트는 앞으로 무조건 HTTPS로만 접속해”라고 기억시키는 설정이라 SSL 스트리핑을 효과적으로 막아줘요. 브라우저의 HSTS 프리로드 목록에 도메인을 등록하면 첫 접속부터 보호받을 수 있어요.

둘째, 서비스 운영자라면 Tor 트래픽을 어떻게 다룰지 한 번쯤 고민해볼 만해요. 국내 서비스는 어뷰징 방지를 이유로 Tor IP를 일괄 차단하는 경우가 많아요. 하지만 제보 창구처럼 익명성이 중요한 서비스라면, 차단하는 대신 .onion 주소(어니언 서비스)를 제공하는 선택지도 있어요. 어니언 서비스는 출구 노드를 아예 거치지 않아서 이번 같은 문제에서도 자유로워요.

셋째, 탈중앙 시스템의 안전은 결국 누군가의 꾸준한 감시 위에 서 있어요. 오픈소스 공급망 보안에도 똑같이 적용되는 이야기예요.

마무리

익명 네트워크의 안전은 암호학만으로 완성되지 않아요. 수상한 노드를 끈질기게 추적하는 사람들의 노력이 함께 받쳐줘야 해요. 여러분이 운영하는 서비스는 Tor 트래픽을 어떻게 다루고 있나요? 일괄 차단하는 게 맞을까요, 아니면 어니언 서비스처럼 열어두는 게 맞을까요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://kaba.cx/posts/20261020_Tor/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...