TunnelCrack은 VPN에서 널리 퍼진 두 가지 보안 취약점의 조합입니다. 공격자는 취약점을 통해, VPN 터널 외부의 트래픽을 유출시킬 수 있습니다.
이 두 가지 공격을 로컬넷 공격과 서버IP 공격이라고 하며, 두 공격 모두 사용자가 신뢰할 수 없는 Wi-Fi 네트워크에 연결할 때 악용될 수 있습니다.
또한, 악의적인 인터넷 서비스 제공업체도 ServerIP 공격을 악용할 수 있습니다. 이 공격은 피해자의 라우팅 테이블을 조작하여 피해자가 보호된 VPN 터널 외부로 트래픽을 보내도록 속여 공격자가 전송된 트래픽을 읽고 가로챌 수 있도록 합니다.

종합적으로 취약점 논문에 따르면, 안드로이드가 가장 안전했으며 이외의 운영체제에서는 취약할 가능성이 높습니다. (특히, 애플의 OS들이 제일 심각한 것으로 나타남.)


이 취약점에 대응하는 첫 번째 방법은 각 VPN마다 LAN 내부 네트워크의 연결을 허용하는 기능을 끄는 것입니다.
이 기능을 제공하지 않는 VPN의 경우 사용하는 의미가 없으므로 중단하는 것이 좋습니다. (그러나 ios의 경우 LAN 내부 네트워크를 끊을 수 없어 취약한 채 입니다.)

두 번째로, 각 VPN회사들이 해당 취약점에 대해 대응 및 해명을 하였는지 확인해야합니다.

필자가 사용하는 VPN인 Mullvad의 경우, 다음과 같이 해명하였습니다:
로컬넷 공격의 경우 Windows, Linux, macOS 및 Android에서는 로컬넷 공격에 취약하지 않습니다.
VPN 터널 외부의 공용 IP로 트래픽을 유출하지 않습니다. 그러나 iOS에서는 이 공격 범위 내의 영향을 받습니다.

설정이 존재하는 Windows, Linux, macOS 및 Android에서는 로컬 네트워크 공유가 기본적으로 비활성화되어 있습니다.
이는 터널 외부의 모든 트래픽이 기본적으로 차단됨을 의미합니다.
설정이 활성화 되면 로컬 네트워크 공유에 대해 우리 앱은 DHCP 서버가 알리거나 라우팅 테이블에서 로컬 네트워크로 설정된 모든 네트워크에 대한 트래픽을 허용하지 않으며, 특히 알려진 표준화된 로컬 네트워크 범위로만 트래픽을 허용합니다.
이들은 로컬 네트워크에만 존재할 수 있는 IP이며 유효한 공용 IP가 아닙니다.

서버 IP 공격의 경우 Mullvad의 앱은 모든 플랫폼에서 서버 IP 공격 벡터의 어떤 부분에도 취약하지 않습니다.
이 공격 방식은 공격자가 제어하는 IP를 VPN 서버 IP로 사용하도록 VPN 클라이언트를 속이는 것입니다.
그러나, Mullvad VPN 앱은 DNS를 사용하여 VPN 서버 IP를 얻지 않습니다. 우리 앱은 자체 API에서 VPN 서버 IP 목록을 가져옵니다.
또한, DNS를 사용하여 API 서버의 IP를 찾지 않습니다. 모든 API 통신은 https(TLS 1.3)로 암호화되며 인증서 고정을 사용합니다.
이것은 앱이 잘못된 서버의 정보를 말하거나 신뢰하도록 속일 수 없음을 의미합니다. 이는 모든 플랫폼에 해당됩니다.
(실제로 컴퓨터 내의 DNS 연결을 의도적으로 망가뜨려도 (127.0.0.1 ip부여를 통해, 인터넷 접속이 불가능한 상태에서도) Mullvad VPN은 정상적으로 연결되었습니다.)


출처: https://tunnelcrack.mathyvanhoef.com/
더 보기: https://mullvad.net/en/blog/2023/8/9/response-to-tunnelcrack-vulnerability-disclosure/