VPN 업체 Mullvad가 9월 10일 "안드로이드에서 트래픽이 새는 방법이 또 발견됐다"는 제목의 글을 올렸다. 원래 연구는 7월 29일에 나왔는데, VPN 업체가 공식으로 언급하면서 지난주 해외 커뮤니티에서 화제가 됐다. 항상 켜기에 "VPN 없는 연결 차단"까지 켜 둔 사람이라면 "그럼 내 건 안전한 건가"부터 떠오를 것이다.

먼저 밝혀둘 것. 안드로이드 기기를 손에 들고 재현해 본 건 아니다. 아래는 연구자 논문, Mullvad와 GrapheneOS의 공식 발언, 안드로이드 공식 문서를 대조한 결과다.
특히 유의해야 할 점은 새는 게 "내 트래픽"이 아니라는 것이다. 논문 문장 그대로, 새는 건 실제 IP 주소와 타이밍이고 앱의 데이터는 실을 수 없다. 내가 뭘 보는지는 안 나가고, 내가 어느 회선에 붙어 있는지가 10초마다 밖으로 나간다. 과장할 것도 없고 무시할 것도 없는 딱 그만큼이다.
누출 원리
안드로이드는 앱이 서버와의 연결을 유지하려고 보내는 keepalive 패킷을 Wi-Fi 칩에 맡길 수 있다. 앱이 자도 칩이 대신 보낸다. 문제는 이 요청을 받을 때 시스템이 그 앱에 VPN 차단 정책이 걸려 있는지 확인하지 않는다는 것이다. 패킷은 앱 소켓 경로 아래, 하드웨어에서 나가니 VPN 터널을 그냥 지나친다.
- 필요한 권한 : INTERNET과 ACCESS_NETWORK_STATE. 둘 다 일반 권한이라 특별 허가 없이 아무 앱이나 부를 수 있는 공개 API다
- 주기 : 공개 최소 간격 10초. 목적지는 앱이 고른다
- 범위 : 안드로이드 12 이후 프레임워크 공통. 실측은 Pixel 8 Pro, 갤럭시 Z Fold7, Nothing Phone (3a) 세 대(모두 안드로이드 16)
- 지속 : 앱을 백그라운드로 보내든, 화면을 잠그든, 절전을 켜든 계속된다. 멈추는 건 강제 종료, 삭제, 네트워크 끊김, 재부팅뿐
논문은 keepalive 오프로드를 지원하는 Wi-Fi 칩 계열이 2021년 4분기부터 2026년 1분기 출하량의 91.24%라고 추정했다. 실측이 아니라 추정치라는 건 논문도 밝힌다. 셀룰러 쪽은 측정하지 않았다.
구글과 GrapheneOS 입장
구글 취약점 신고는 5월 15일 접수돼 19일에 기존 이슈(386376240)와 중복이라는 이유로 닫혔다. CVE는 없다. 비슷한 시기의 다른 누출인 QUIC 경로는 "Won't Fix"였는데, 둘을 섞어 쓰는 기사가 있다.
- QUIC 경로 : 구글 Won't Fix. GrapheneOS가 5월 릴리스에서 막음. adb로 플래그를 끄는 우회도 있음
- NAT-T keepalive 경로(이번 건) : 구글 Duplicate. 9월 16일 기준 GrapheneOS 포함 어떤 안드로이드도 안 고침
GrapheneOS는 해커뉴스에서 "구글은 VPN 누출을 유효한 버그로 보지만 보안 버그로는 보지 않는다"고 썼고, 내부에서 발견한 다른 누출들과 묶어 VPN 구현을 크게 손볼 계획이라고 했다. Mullvad는 슬롯을 먼저 점유해 막는 식의 우회책은 어차피 터널 밖으로 패킷을 보내는 거라 현재로선 만들 계획이 없다고 했다.
설정에서 확인할 것
이번 누출은 설정으로 못 막는다. 그래도 항상 켜기 자체는 켜 두는 게 기본이다. 안드로이드 고객센터 한국어 페이지 문구다.
- 경로 : 설정 앱 → 네트워크 및 인터넷 → VPN → 바꿀 VPN 옆 톱니 → 연결 유지 VPN 사용
- 주의 : 앱을 통해 VPN을 설정한 경우 '연결 유지' 옵션이 표시되지 않는다
- 차단 : 개발자 문서상 "VPN 없는 연결 차단" 스위치가 같은 옵션 화면에 있다. 켜면 VPN을 안 타는 트래픽을 시스템이 막는다고 적혀 있는데, 이번 건은 그 문장의 예외다
갤럭시 한국어 화면에 정확히 어떤 문구로 뜨는지는 확인하지 못했다.
지금 할 수 있는 것
앱 하나가 API를 한 번 불러야 시작되는 문제라, 결국 앱 관리 얘기로 돌아온다. Mullvad 권고와 논문·기사에 나온 대안을 합치면 이렇다.
- 모르는 앱 안 깔기 : 일반 권한만으로 되니 권한 화면으로는 못 거른다
- 의심되면 : 해당 앱 강제 종료나 삭제, 아니면 재부팅. 논문이 꼽은 멈추는 조건에 들어간다
- 공유기 VPN : 폰 대신 공유기에서 VPN을 걸고 셀룰러를 끄는 방법이 보수적 대안으로 언급되는데, 밖에 나가면 못 쓴다
VPN은 커튼이지 벽이 아니다. 커튼 틈으로 안이 보이진 않아도 불이 켜져 있다는 건 밖에서 안다. 이번 누출이 딱 그 틈이다. 특정 VPN 앱의 누출 방지 기능이 이걸 막는지는 어느 출처에서도 확인되지 않았으니, 그 기능 이름만 믿고 넘어가지는 말자. 웬만하면 앱 목록부터 한 번 훑어보는 게 먼저다.
참고
- Armin Šupuk, Android NAT-T Keepalive Offload Bypasses VPN Lockdown (2026-07-29) https://supuk.ch/papers/android-natt-keepalive-vpn-bypass
- Mullvad, Another way to leak traffic on Android has been discovered (2026-09-10) https://mullvad.net/en/blog/another-way-to-leak-traffic-on-android-has-been-discovered
- GrapheneOS Issue Tracker #8617 https://github.com/GrapheneOS/os-issue-tracker/issues/8617
- Android Developers, VPN https://developer.android.com/develop/connectivity/vpn?hl=ko
- Android 고객센터, Android에서 가상 사설망(VPN)에 연결하기 https://support.google.com/android/answer/9089766?hl=ko
'생활 > 서비스 소식' 카테고리의 다른 글
| 📱 최적요금제 문자가 안 오는 이유 · 법은 시행됐고 대상 사업자 조항과 고시가 없다 (0) | 2026.10.02 |
|---|---|
| [제도·일정] 📱 최적요금제 고지 10월 1일 시행, 알뜰폰 1048만 명은 빠진다 (0) | 2026.09.18 |
| 📺 LG TV 도청 설정 끄는 법 · 음성인식·시청정보·광고 3곳 (0) | 2026.09.15 |
| 🎤 브루노 마스 내한 2027 고양 회차·좌석 가격 · 1인 4매 (0) | 2026.09.13 |
| 🪪 클로드 18세 연령 확인 · 성인인데 막힌 이유와 푸는 법 (0) | 2026.09.12 |