최근 DHCP 프로토콜의 내장 기능을 이용하여 공격자가 사용자의 트래픽을 VPN 터널 밖으로 강제로 내보낼 수 있는 방법이 발견되었다는 사실이 밝혀졌습니다 .
"터널비전(TunnelVision)" 이라고 명명된 이 새로운 공격 방식은 공격자가 로컬 네트워크에 접근 권한이 있거나 무선 네트워크를 제어하는 경우, 피해자의 트래픽을 공격자의 호스트를 통해 우회시킬 수 있도록 합니다 .
로컬 라우팅 변경이라는 개념은 새로운 것이 아니며 DNS 서버를 사칭하는 공격에 흔히 사용되어 왔다는 점에 유의해야 합니다 . 예를 들어, 기본 게이트웨이를 변경하여 트래픽을 리디렉션하는 TunnelCrack은 테스트된 모든 iOS VPN 클라이언트뿐만 아니라 macOS, Windows, Linux 및 Android VPN에도 영향을 미쳤습니다.
TunnelVision 소개
TunnelVision의 핵심은 공격자가 자체 DHCP 서버를 시작 하고 이를 사용하여 클라이언트에 라우팅 정보를 전송함으로써 라우팅을 변경할 수 있다는 점입니다 . 특히 공격자는 정적 경로 정보를 전송하도록 설계된 DHCP 옵션 121을 이용하여 피해자 시스템의 라우팅 테이블을 수정하고 VPN을 거치지 않고 트래픽을 직접 전송할 수 있습니다.
이 연구의 목적은 최신 VPN 제공업체를 대상으로 이 기술을 테스트하여 취약성을 확인하고 이 문제를 일반 대중에게 알리는 것이었습니다. 이것이 바로 우리가 CISA에 공개할 때 CVE를 제출하기로 CISA와 동의하고 취약점 이름을 지정하기로 결정한 이유입니다.
리디렉션은 /1 접두사를 가진 서브넷에 대해 일련의 경로를 구성함으로써 이루어지며 , 이러한 경로는 /0 접두사를 가진 기본 경로보다 우선순위가 높습니다. 결과적으로 VPN에 대해 구성된 가상 네트워크 인터페이스 대신 트래픽이 물리적 네트워크 인터페이스를 통해 로컬 네트워크에 있는 공격자의 호스트로 전달됩니다.
VPN을 통해 전송되는 대신, 트래픽이 터널 없이 일반 텍스트로 공격자의 시스템으로 전송됩니다. 이 문제는 격리된 네트워크 네임스페이스를 사용하여 터널로 트래픽을 라우팅하지 않거나, 기존 물리적 네트워크 인터페이스를 통해 VPN 트래픽이 라우팅되는 것을 금지하는 패킷 필터링 규칙을 설정하지 않은 모든 VPN 클라이언트에 영향을 미칩니다.
TunnelVision은 Linux, Windows, iOS 및 macOS를 포함하여 DHCP 옵션 121을 지원하는 모든 시스템에서 사용할 수 있으며 , 사용되는 VPN 프로토콜(Wireguard, OpenVPN, IPsec) 및 암호화 스위트와 관계없습니다.
안드로이드는 DHCP에서 121 옵션을 처리하지 않기 때문에 이 공격에 취약하지 않다고 언급되어 있습니다 . 이 공격은 트래픽에 접근할 수는 있지만, TLS 및 SSH와 같은 보안 애플리케이션 레벨 프로토콜을 통해 전송되는 연결을 가로채거나 전송되는 콘텐츠를 파악할 수는 없습니다. 예를 들어, 공격자는 HTTPS를 통해 전송되는 요청의 내용을 확인할 수는 없지만, 요청이 전송되는 서버는 파악할 수 있습니다.
공격으로부터 보호하기 위해 패킷 필터링 수준에서 다음과 같은 여러 조치를 구현할 수 있습니다. VPN 인터페이스로 향하는 패킷이 다른 네트워크 인터페이스를 통과하지 않도록 금지하거나, 옵션 121을 사용하는 DHCP 패킷을 차단하거나, 외부 네트워크와 격리된 별도의 가상 머신 또는 컨테이너 내에서 VPN을 사용하거나, Linux 네트워크 네임스페이스를 사용하는 특수 터널 구성 모드를 사용하는 것입니다.
경로를 위조하기 위해 네트워크 어댑터의 작동을 모방하는 특수 설계된 USB 동글이 개발되었으며 , 이 동글은 DHCP를 통해 컴퓨터에 연결될 때 스스로를 게이트웨이로 선언합니다. 또한, 게이트웨이가 공격자의 제어 하에 있을 때(예: 피해자가 공격자가 제어하는 무선 네트워크에 연결할 때), VPN 네트워크 인터페이스에서 발생한 것처럼 인식되는 패킷을 터널에 주입하는 기술이 개발되었습니다. 이러한 공격을 실험하기 위한 여러 스크립트도 공개되었습니다.
마지막으로, 이 주제에 대해 더 자세히 알고 싶으 시다면 다음 링크 에서 자세한 내용을 확인하실 수 있습니다.