
프라이버시 중심 안드로이드로 유명한 GrapheneOS가 문자 메시지 앱을 완전히 새로 작성해서 정식 출시했어요. 「그냥 문자 앱 하나 바뀐 거 아냐?」 싶을 수 있는데, 이 프로젝트가 왜 문자 앱을 처음부터 다시 만들어야 했는지 들여다보면 모바일 보안에 대해 배울 게 꽤 많거든요.
GrapheneOS가 뭐냐면
GrapheneOS는 구글 픽셀 기기에 설치할 수 있는 안드로이드 배포판이에요. 안드로이드 오픈소스 프로젝트(AOSP)를 기반으로 하되, 구글 서비스를 기본으로 넣지 않고 보안을 대폭 강화한 게 특징이에요. 메모리 안전성을 높인 malloc 구현, 앱별 권한을 더 잘게 쪼갠 설정, 샌드박스 안에서 돌아가는 구글 플레이 같은 기능들로 보안 커뮤니티에서 가장 신뢰받는 안드로이드로 꼽히죠. 이 프로젝트는 「기본 앱도 보안의 일부」라는 철학을 갖고 있어서 카메라, PDF 뷰어 같은 기본 앱을 직접 만들어왔는데, 이번에 문자 앱 차례가 된 거예요.
왜 문자 앱을 다시 만들어야 했나
안드로이드에 원래 들어있는 AOSP 메시지 앱은 사실상 방치된 상태였어요. 구글은 오래전에 자기네 「Google Messages」로 무게중심을 옮겼고, 오픈소스 쪽 앱은 최소한의 유지보수만 받아왔거든요. 코드는 10년 넘은 자바 기반이고, 구조도 요즘 안드로이드 개발 방식과는 거리가 멀어요. 이런 앱을 계속 패치해가며 쓰는 건 보안 관점에서 부담이 커요. 오래된 코드일수록 어디에 뭐가 숨어 있는지 파악하기 어렵고, 새 보안 기능을 붙이기도 힘들거든요.
GrapheneOS 팀은 그래서 앱을 코틀린 기반으로 처음부터 다시 썼어요. 현대적인 안드로이드 아키텍처를 따르고, 필요한 권한을 최소한으로 줄이고, 외부 의존성도 최대한 배제하는 방향으로요. 기능적으로는 SMS와 MMS를 지원하는 기본에 충실한 앱이에요. RCS(Rich Communication Services, 고화질 이미지 전송이나 읽음 확인이 되는 차세대 문자 규격)는 지원하지 않는데, 이건 구글이 자사 앱에만 제공하는 구현이라 오픈소스 앱이 붙이기 어려운 구조이기 때문이에요.
문자 앱이 왜 보안에 중요한가
이게 핵심인데요, 문자 앱은 스마트폰에서 가장 위험한 공격 표면 중 하나예요. 공격 표면이 뭐냐면, 공격자가 내 시스템에 손을 댈 수 있는 모든 입구를 뜻해요. 문자 앱의 경우 공격자가 내 폰을 만지지 않고도 문자 하나만 보내서 앱이 그걸 처리하게 만들 수 있어요. 사용자가 클릭할 필요도 없죠. 2015년 「Stagefright」 취약점이 대표적이에요. 특수하게 조작된 MMS 하나를 받기만 해도 안드로이드가 미디어를 자동으로 파싱하다가 원격 코드 실행이 일어났어요. 당시 전 세계 안드로이드 기기 대부분이 영향을 받았죠.
그래서 문자 앱을 설계할 때는 「받은 내용을 얼마나 적게, 얼마나 안전하게 처리하느냐」가 중요해요. MMS 첨부 파일을 자동으로 내려받지 않게 하거나, 미디어 디코딩을 격리된 프로세스에서 처리하거나, 링크 미리보기 같은 기능을 아예 빼버리는 식의 선택이 보안 앱에서는 흔해요. GrapheneOS는 운영체제 차원에서도 미디어 처리를 강하게 격리하는데, 앱까지 직접 통제하면 이 방어선을 끝까지 관리할 수 있게 되는 거죠.
업계 맥락: 문자 앱 생태계는 어디로 가나
재미있는 건 문자 앱 시장이 양극화되고 있다는 거예요. 한쪽에는 구글 메시지가 있어요. RCS, 클라우드 백업, AI 답장 제안까지 기능은 많지만 구글 계정과 깊게 얽혀 있죠. 다른 쪽에는 프라이버시를 중시하는 사용자들이 있는데, 이들의 선택지는 오히려 줄어들었어요. Signal이 2023년에 SMS 지원을 아예 중단해버렸거든요. 암호화된 메시지와 암호화 안 된 SMS를 한 앱에 섞어두면 사용자가 헷갈린다는 이유였어요. 그 빈자리를 QKSMS 계열의 포크나 Fossify Messages 같은 오픈소스 앱들이 채워왔는데, GrapheneOS의 새 앱은 여기에 「운영체제 개발팀이 직접 관리하는 보안 중심 문자 앱」이라는 선택지를 더한 셈이에요.
한국 개발자에게 주는 시사점
한국은 카카오톡 때문에 문자를 거의 안 쓰는 것 같지만, 실제로는 인증번호, 택배 알림, 금융 알림 대부분이 SMS로 와요. 스미싱(문자 피싱)이 여전히 심각한 것도 그래서고요. 「문자 앱은 별거 아니다」라는 생각 자체가 위험하다는 걸 이 사례가 보여줘요.
안드로이드 개발자라면 이 프로젝트를 코드 재작성의 좋은 사례 연구로 볼 수 있어요. 오래된 자바 앱을 코틀린과 현대적 아키텍처로 옮길 때 무엇을 남기고 무엇을 버려야 하는지, 기능을 덜어내는 결정을 어떻게 정당화하는지 같은 고민이 그대로 담겨 있거든요. 특히 「기능을 추가하는 게 아니라 공격 표면을 줄이는 게 목표」인 재작성은 흔치 않아서 참고할 만해요. 오픈소스니까 코드를 직접 열어보면서 권한 선언이나 인텐트 처리 방식을 비교해보는 것도 좋은 공부가 돼요.
마무리
한 줄 정리하면, 문자 앱은 보안의 최전선이고, GrapheneOS는 그 최전선을 남에게 맡기지 않기로 한 거예요. 여러분은 지금 쓰는 문자 앱이 어떤 권한을 갖고 있는지 확인해본 적 있으세요? RCS 같은 편의 기능과 보안 사이에서 어느 쪽에 더 무게를 두시나요?
🔗 출처: Hacker News