우리는 메신저가 메시지를 암호화해서 보내니까 안전하다고 믿습니다. 하지만 암호화 기술 자체는 완벽해도, 앱을 만드는 방식 (설계) 이나 앱이 우리 기기를 어떻게 사용하는지에 따라 사생활이 털릴 수 있습니다.
연구진은 세 가지 유명한 앱 (메타 메신저, 시그널, 텔레그램) 을 골라, 마치 수사관처럼 두 가지 방법으로 조사했습니다.
정적 분석 (Static Analysis): 앱을 실행하지 않고, 앱의 '청사진 (코드)'을 뜯어보고 어떤 권한을 요구하는지, 얼마나 복잡한지 살펴봄.
동적 분석 (Dynamic Analysis): 앱을 실제로 실행시켜서, 배경에서 어떤 데이터를 보내는지, 카메라나 연락처를 훔쳐보는지 감시함.
🕵️♂️ 세 명의 '우편 배달부' 비교
1. 메타 메신저 (Messenger): "거대한 쇼핑몰"
성격: 페이스북 (메타) 이 운영하는 거대 기업 앱입니다.
특징:
가장 복잡한 구조: 이 앱은 마치 거대한 쇼핑몰처럼 수많은 부서 (기능) 가 서로 연결되어 있습니다. 코드가 가장 길고 복잡해서 해커가 침투할 수 있는 '문 (공격 표면)'이 가장 많습니다.
가장 많은 권한 요구: "내 연락처도 보고, 통화도 하고, 위치도 알려줘!"라고 가장 많은 것을 요구합니다.
배달 활동: 메시지를 보낼 때뿐만 아니라, 사용자가 쓰지 않아도 (배경에서) 가장 활발하게 데이터를 주고받습니다. 마치 쇼핑몰이 문을 닫았어도 내부에서 계속 물건을 옮기는 것처럼요.
데이터 이동: 주로 북미 (미국/캐나다) 쪽으로 데이터를 많이 보냅니다.
2. 텔레그램 (Telegram): "열려 있는 창고"
성격: 오픈소스 클라이언트지만 서버는 비밀인, 독특한 구조입니다.
특징:
위험한 권한: 전체 권한 수는 적지만, 가장 위험한 권한 (전화 통화, 알림 창 등) 을 가장 많이 요구합니다.
보안 구멍: 기본적으로 암호화되지 않은 일반 텍스트 (평문) 통신을 허용하는 설정이 있어, 도청당할 위험이 있습니다.
이상한 행동: 권한을 거절해도 오히려 데이터를 더 많이 보내는 이상한 버그가 발견되었습니다. (권한을 거절하면 앱이 당황해서 계속 시도하는 듯함)
데이터 이동: 주로 유럽 쪽으로 데이터를 보냅니다.
3. 시그널 (Signal): "철저한 비밀요원"
성격: 비영리 재단에서 만든, 사생활 보호에 집착하는 앱입니다.
특징:
최소한의 설계: 필요한 기능만 쏙쏙 뽑아낸 미니멀한 디자인입니다. 코드가 가장 짧고 복잡하지 않아 해커가 뚫기 어렵습니다.
적은 권한: "내 연락처는 안 봐도 돼, 통화도 안 해"라며 가장 적은 권한만 요구합니다.
배달 활동: 사용자가 직접 메시지를 보내지 않으면 배경에서 거의 아무 일도 하지 않습니다. (가장 조용함)
데이터 이동: 전 세계적으로 고르게 분산된 서버를 사용합니다.
📊 핵심 발견 사항 (한 줄 요약)
비교 항목
메타 메신저 (Messenger)
텔레그램 (Telegram)
시그널 (Signal)
설계 복잡도
🐘 코끼리 (거대하고 복잡함)
🐆 표범 (가볍지만 날카로움)
🐇 토끼 (간결하고 깔끔함)
위험한 권한
많음
가장 많음 (위험한 것 위주)
가장 적음
배경 활동
활발함 (사용 안 해도 데이터 쏠쏠)
보통
침묵 (거의 없음)
보안 경고
가장 많음
중간
가장 적음
사생활 보호
기업 이익 우선
중간
사용자 보호 최우선
💡 결론: 무엇을 배울 수 있을까요?
이 연구는 **"모든 메신저가 다 똑같이 안전한 건 아니다"**라는 사실을 보여줍니다.
메타 메신저는 편리하고 기능이 많지만, 그만큼 내 기기를 많이 들여다보고 데이터를 많이 모으는 구조입니다.
텔레그램은 빠르고 가볍지만, 보안 설정에 구멍이 있거나 권한을 너무 많이 요구할 수 있습니다.
시그널은 기능이 적을 수 있지만, 내 사생활을 지키기 위해 불필요한 접근을 차단하는 가장 안전한 선택입니다.
요약하자면: 만약 당신이 **"내 대화 내용이 누구에게도 알려지지 않기를 원한다면, 가장 간단한 옷 (시그널) 을 입는 것"**이 가장 안전하다는 것이 이 논문의 결론입니다. 반면, 최신 기능과 편의성을 원한다면 더 많은 정보 (권한) 를 내어주고, 그 대가로 더 많은 데이터를 보내는 것 (메신저, 텔레그램) 을 감수해야 할 수 있습니다.
이 연구는 우리가 앱을 선택할 때, 단순히 "친구들이 많이 쓰는가?"가 아니라 **"이 앱이 내 기기를 어떻게 대하는가?"**를 살펴봐야 함을 일깨워줍니다.
1. 연구 배경 및 문제 제기 (Problem)
배경: 모바일 메신저는 전 세계 수십억 명의 사용자가 민감한 정보를 교환하는 핵심 인프라가 되었습니다.
문제점:
기존 연구들은 메시지 암호화 프로토콜 (예: Signal Protocol) 의 보안성에 집중해 왔으나, 실제 앱의 구현 특성 (소프트웨어 아키텍처, 권한 사용, 네트워크 런타임 행동) 에 대한 분석은 부족했습니다.
실제 보안과 개인정보 보호 (S&P) 는 프로토콜의 정확성뿐만 아니라 구현 품질과 메타데이터 수집/공유 관행에 크게 의존합니다.
특히 메신저 앱들은 커스텀 인증서 핀닝 (Certificate Pinning) 을 광범위하게 사용하여 암호화된 네트워크 트래픽의 평문을 추출하기 어렵게 만들었기 때문에, 기존 네트워크 트래픽 분석 기반의 동적 분석 방법론이 적용하기 어려운 한계가 있었습니다.
연구 목적: 다양한 메신저 앱 간의 구현적 차이 (정적/동적 특성) 를 식별하고, 이러한 차이가 보안 및 개인정보 보호에 미치는 영향을 규명하는 것입니다.
2. 연구 방법론 (Methodology)
저자들은 재현 가능한 시나리오 하에서 정적 분석 (Static Analysis) 과 동적 분석 (Dynamic Analysis) 을 결합한 하이브리드 방법론을 제안했습니다.
대상 앱: 메타 메신저 (Messenger), 시그널 (Signal), 텔레그램 (Telegram).
선정 기준: 다양한 비즈니스 모델 (상용/비영리), 오픈소스/폐쇄소스 구성, 그리고 높은 다운로드 수 (총 60 억 회 이상).
구조 및 매니페스트: APK 크기, 분할 모듈 (Split modules), Exported 컴포넌트 (Attack Surface).
코드 볼륨: 클래스, 메서드, 필드 수, 네이티브 라이브러리 구조.
권한 및 경고: 요청된 권한 (특히 위험한 권한), MobSF 를 통한 보안 경고 및 취약점 스캔.
동적 분석 (Dynamic Analysis):
도구:tcpdump(네트워크 트래픽), SliceDroid(커널 레벨 트레이스), Frida(인스트루멘테이션).
핵심 기술: 메신저 앱의 강력한 인증서 핀닝으로 인해 평문 캡처가 불가능하므로, Linux 커널 트레이스 (ftrace) 와 커널 훅 (kprobes) 을 사용하여 소켓 함수 (tcp_sendmsg 등) 를 추적하고, 이를 tcpdump 패킷과 매칭하여 앱별 네트워크 활동을 정확히 귀속 (Attribution) 시켰습니다.
시나리오:
포그라운드 활성 (전체 권한 허용)
백그라운드 대기 (전체 권한 허용)
포그라운드 활성 (모든 권한 거부)
백그라운드 대기 (모든 권한 거부)
실험 설정: 각 시나리오당 10 회 반복 실행, 통계적 유의성 검정 (Kruskal-Wallis H test 등) 수행.
3. 주요 기여 (Key Contributions)
새로운 방법론 제안: 인증서 핀닝으로 인한 네트워크 분석의 어려움을 극복하기 위해 커널 레벨 트레이스를 활용한 재현 가능한 비교 방법론을 제시했습니다.
실증 연구 수행: 메신저 앱의 구현 특성에 대한 최초의 실증적 비교 연구를 수행했습니다.
실무적 함의 도출: 식별된 차이점 (공격 표면, 네트워크 활동, 권한 사용) 이 실제 보안 및 개인정보 보호에 어떤 영향을 미치는지 분석하고 논의했습니다.
오픈 소스화: 연구에 사용된 코드와 데이터를 커뮤니티에 공개하여 후속 연구를 지원했습니다.
4. 주요 결과 (Results)
가. 정적 분석 결과 (Static Findings)
공격 표면 (Attack Surface):
Messenger: 가장 큰 공격 표면을 가짐. Exported 컴포넌트 (서비스, 브로드캐스트 수신자, 콘텐츠 프로바이더) 가 가장 많음 (Signal 의 약 2 배).
Signal: 최소한의 외부 노출 (Exported 컴포넌트 최소화).
Telegram: 중간 정도.
코드 복잡성:
Messenger: 가장 큰 코드베이스 (DEX 파일 11 개, 클래스 10 만 개 이상, 메서드 48 만 개 이상).
Signal: 모듈화된 아키텍처.
Telegram: 가장 컴팩트한 코드 (DEX 파일 5 개).
권한 사용 (Permissions):
Telegram: 총 권한 수는 적지만 위험한 권한 (Dangerous Permissions) 수 (25 개) 가 가장 많음 (예: 전화 통화, 시스템 오버레이, 백그라운드 위치 등).
Messenger: 총 권한 수 (87 개) 가 가장 많으며, 벤더 특화 '알 수 없는 권한'을 많이 요청함.
Signal: 최소한의 필수 권한만 요청 (19 개의 위험한 권한).
보안 경고:
Messenger: MobSF 기준 총 경고 수 (118 개) 가 가장 많음. 클리어텍스트 트래픽 허용 설정 등 위험한 구성이 발견됨 (일부 경고는 오탐으로 확인됨).
Telegram: 기본적으로 클리어텍스트 트래픽 (usesCleartextTraffic=true) 을 허용하여 도청 위험이 있음.
Signal: 경고 수 (55 개) 가 가장 적고 보안 설정이 가장 견고함.
나. 동적 분석 결과 (Dynamic Findings)
네트워크 활동:
Messenger: 포그라운드 및 백그라운드 모두에서 가장 활발한 네트워크 활동을 보임. 특히 UDP (QUIC 프로토콜) 를 대량으로 사용하며, 백그라운드에서도 지속적인 통신 발생.
Signal:가장 적은 네트워크 활동. 포그라운드/백그라운드 모두 데이터 전송량이 극히 적음.
Telegram: 권한이 제한된 상태에서 오히려 트래픽이 급증하는 이상 현상 발견 (권한 거부 시 에러 처리 루프가 네트워크 요청을 유발하는 것으로 추정).
지리적 분포:
Messenger: 북미 (캐나다) 와의 트래픽 교환이 주를 이룸.
Signal & Telegram: 유럽을 중심으로 더 지리적으로 분산된 인프라를 사용.
권한 준수 (Permission Compliance):
세 앱 모두 안드로이드 권한 모델을 준수하여 무단 데이터 접근 증거는 발견되지 않음.
단, Messenger 의 경우 연락처 데이터베이스 접근 시도가 탐지되었으나, 이는 앱의 직접적인 접근이 아닌 연락처 프로바이더의 내부 유지보수 (Write-Ahead Logging) 에 의한 것으로 확인됨.
5. 의의 및 결론 (Significance & Conclusion)
결론:
Signal: 개인정보 보호와 보안에 가장 최적화된 구현을 보임. 최소 권한 원칙, 최소 공격 표면, 낮은 네트워크 활동, 오픈소스 기반의 투명한 아키텍처를 유지.
Messenger: 데이터 중심의 거대 기업 생태계에 통합되어 있어 공격 표면이 크고 네트워크 활동이 활발하며, 다양한 권한을 요구함.
Telegram: 클라이언트는 오픈소스이나 서버는 폐쇄적이며, 위험한 권한을 많이 요청하고 기본적으로 보안 설정이 취약 (클리어텍스트 허용) 함.
의의:
암호화 프로토콜의 안전성뿐만 아니라 앱의 구현 품질과 런타임 행동이 실제 사용자의 보안과 프라이버시에 결정적인 영향을 미친다는 것을 실증함.
인증서 핀닝이 적용된 환경에서도 커널 레벨 트레이스를 통해 신뢰할 수 있는 동적 분석이 가능함을 입증함.
사용자와 정책 입안자에게 앱 선택 시 암호화뿐만 아니라 권한 요청, 네트워크 행동, 코드 복잡성 등을 고려해야 함을 시사함.
이 연구는 모바일 메신저의 보안과 프라이버시를 평가할 때 프로토콜 수준을 넘어 실제 구현과 실행 환경까지 포괄적으로 분석해야 함을 강조합니다.