솔직히 말하면, 웹3나 디파이 생태계에서 ‘탈중앙화’와 ‘보안’은 마케팅 슬로건처럼 쓰일 때가 많거든요. 그런데 이번에 터진 프리덤 채트(Freedom Chat) 보안 사고는, 중앙화된 전통 앱에서조차 ‘보안’이 얼마나 허술하게 다뤄질 수 있는지 보여주는 아주 좋은(?) 사례가 됐네요.
기사 내용을 간단히 요약하면, 이 앱은 두 가지 치명적인 결함을 가지고 있었어요. 첫째는 서버가 무차별 대입 공격(Brute-force attack)을 막지 않아, 누구나 수백만 개의 전화번호를 추측해 가입자 여부를 확인할 수 있었다는 점이죠. 이건 마치 지갑의 시드 구문(seed phrase)을 한 글자씩 맞춰보는 것과 비슷한 공격인데, 서버가 이를 전혀 제한하지 않았다니 놀랍네요.
그런데 더 충격적인 건 두 번째 결함이에요. 앱 내 공개 채널에 있는 모든 사용자의 PIN 코드가 네트워크 트래픽에 그대로 노출되고 있었다는 거죠. 사용자 인터페이스에는 보이지 않았지만, 뒤에서는 마치 모든 사람의 지갑 비밀번호가 공개 채팅방에 올라간 것과 같은 상황이었어요. PIN이 노출되면 도난당한 기기에서 앱을 열 수 있게 되니, 실질적인 계정 접근권을 넘겨주는 것이나 다름없죠.
개인적으로 이 사건에서 가장 우려되는 점은 창업자 태너 하스(Tanner Haas)의 전력이에요. 그가 이전에 만든 ‘컨버소(Converso)’라는 메신저 앱도 사용자의 개인 메시지를 노출시키는 보안 결함이 발견되어 앱 스토어에서 퇴출된 전력이 있거든요. 같은 실수를 반복했다는 건, 보안에 대한 근본적인 인식이나 개발 문화에 문제가 있다는 신호로 볼 수밖에 없네요.
보안 연구원이 이 결함을 발견하고 보고할 공식 경로(취약점 공개 프로그램)조차 마련되어 있지 않았다는 점도 매우 문제입니다. 웹3 생태계에서는 보통 버그 바운티 프로그램이나 공개된 보안 커뮤니케이션 채널을 운영하는 게 기본이죠. 이 부분은 중앙화 서비스가 오히려 더 불투명할 수 있다는 반증이에요.
결국 프리덤 채트는 모든 사용자의 PIN을 리셋하고 새 버전을 배포했다고 해요. 하지만 ‘메시지는 위험에 처한 적 없고, 연결된 기기를 지원하지 않아 대화에 접근할 수 없었다’는 그들의 해명은, 핵심 문제를 얼버무리는 느낌이에요. 진정한 보안은 단일 실패점(Single Point of Failure)을 제거하고, 사용자 데이터를 최소화하며, 취약점을 투명하게 관리하는 문화에서 나오는 거죠.
이번 사건은 단순한 한 앱의 실수를 넘어서요. ‘보안’과 ‘프라이버시’를 강조하는 모든 서비스, 특히 우리가 자산과 신원을 맡기는 블록체인 기반 서비스들이 깊이 성찰해야 할 부분이에요. 마케팅 문구가 아닌, 아키텍처와 운영 문화 전반에 보안이 스며들어야 진정한 ‘프리덤(자유)’을 줄 수 있지 않을까요?
—
원문: [TechCrunch](https://techcrunch.com/2025/12/11/security-flaws-in-freedom-chat-app-exposed-users-phone-numbers-and-pins/)