안드로이드에서 VPN을 켜고 ‘VPN 없이는 연결 차단’까지 활성화했는데도, 악성 앱이 기기의 실제 IP 주소를 외부 서버에 보낼 수 있는 경로가 발견됐다. Mullvad는 9월 10일, 이 방식이 VPN 터널 밖으로 트래픽을 내보내며 특별 권한도 필요로 하지 않는다고 공개했다.
문제는 VPN 서비스 한 곳의 결함이 아니라 안드로이드 네트워크 스택과 네트워크 하드웨어가 UDP 연결을 처리하는 방식에 있다. VPN을 개인 정보 보호의 마지막 설정으로 쓰는 사람이라면, 설정을 꺼야 한다는 뜻이 아니라 그 설정이 막는 경계와 시스템 업데이트가 필요한 경계를 나눠 볼 필요가 있다.
차단 설정은 왜 실제 IP 노출을 막지 못했나
‘VPN 없이는 연결 차단’은 일반 앱 트래픽이 VPN 인터페이스를 거치지 않으면 통신하지 못하게 하는 킬 스위치 성격의 설정이다. 정상 흐름에서는 앱 트래픽이 안드로이드의 VPN 검사를 통과한 뒤 터널로 들어가므로, 외부 서비스가 보는 주소는 VPN 서버 주소가 된다.
Mullvad가 설명한 새 경로는 그 검사 흐름을 타지 않는다. 악성 앱이 특정 UDP keep-alive 연결을 만들도록 요청하면, Wi-Fi 또는 셀룰러 칩이 그 패킷을 하드웨어 수준에서 직접 처리할 수 있다. 이 패킷은 VPN을 거쳐야 한다는 검사보다 아래쪽에서 전송되므로, 차단 설정이 켜져 있어도 기기의 실제 공인 IP가 목적지 서버에 보일 수 있다.

UDP keep-alive와 포트 4500은 어떤 역할을 하나
keep-alive는 연결이 살아 있음을 주기적으로 알리는 작은 패킷이다. 원래는 NAT 환경에서 연결을 유지하고 NAT 통과를 돕는 용도가 있다. Mullvad는 악성 앱이 이 기능을 악용해 인터넷의 임의 서버를 향하는 UDP 포트 4500 패킷을 보낼 수 있다고 설명했다.
핵심은 패킷의 양이 아니라 경로다. 앱이 요청을 만들고, 안드로이드가 이를 네트워크 하드웨어에 오프로딩하면, 칩이 VPN 검사 경로를 거치지 않고 패킷을 송신한다. 목적지 서버는 이 패킷의 출발지 주소를 볼 수 있으므로, VPN으로 감추려던 실제 IP를 수집할 수 있다. Mullvad는 이 공격에 특별한 권한이 필요 없다고 적었다.

지금 확인할 설정과 업데이트는 무엇인가
우선 VPN 앱의 ‘VPN 없이는 연결 차단’ 설정은 계속 켜 두는 편이 낫다. 이번 경로를 해결하지는 못해도, 일반적인 VPN 우회 트래픽을 차단하는 기능 자체가 무의미해진 것은 아니다. 이 설정 하나에 모든 네트워크 경로가 묶여 있다고 기대하지 않는 것이 중요하다.
더 직접적인 방어는 설치하는 앱의 범위를 줄이는 데서 시작한다. 이 공격은 악성 앱이 기기에서 먼저 실행돼야 한다. 공식 앱 스토어라고 해서 무조건 신뢰하지 말고, 개발사와 배포처, 요구 권한, 최근 업데이트 이력을 함께 확인해야 한다. 출처가 불분명한 APK와 불필요한 유틸리티 앱은 특히 피하는 편이 낫다.
근본 수정은 안드로이드 시스템에 필요하다. Mullvad에 따르면 발견자는 Android Vulnerability Reward Program에 이 문제를 신고했지만 조치 없이 종료됐다고 밝혔다. GrapheneOS는 수정 작업 중이라고 알렸다. 일반 안드로이드 기기에서는 제조사와 구글의 보안 업데이트에 이 수정이 포함되는지 확인하는 일이 남는다.

VPN 앱이 고칠 수 있는 문제와 시스템이 고쳐야 하는 문제
Mullvad는 네트워크 하드웨어가 만들 수 있는 keep-alive 연결 수가 제한적이라는 점을 이용해, 먼저 연결을 채워 악성 앱의 연결 생성을 막는 이론적 완화책을 언급했다. 그러나 이 방식도 VPN 밖으로 패킷을 보내며, 악성 앱이 VPN 앱보다 먼저 연결을 만들면 막지 못한다. 그래서 Mullvad는 이를 자사 앱에 넣을 계획이 없다고 밝혔다.
이번 사례는 VPN 연결 여부와 기기 전체의 네트워크 격리가 같은 문제가 아니라는 점을 보여 준다. VPN은 여전히 네트워크 감시와 위치 기반 추적을 줄이는 유용한 도구다. 다만 운영체제와 칩이 별도로 처리하는 예외 경로는 VPN 앱이 단독으로 통제할 수 없다. 앱 설치 경로를 보수적으로 관리하고, 보안 업데이트를 미루지 않는 습관이 VPN 설정과 함께 필요하다.
출처: Mullvad, Another way to leak traffic on Android has been discovered
