1. VPN(Virtual Private Network)
- 가상 사설망
- 기존 공용 네트워크에 터널링 및 암호화 기법을 사용해 만든 가상 사설망 네트워크
- VPN을 활용해 외부에서 안전하게 내부망과 통신할 수 있음
- 비용 효율, 익명성, 암호화, IP 우회 등의 장점과 속도 저하, 일부 국가 불법 등의 단점이 있음
2. TunnelCrack [1]
- 23.08.08 VPN의 두 가지 보안 취약점이 결합된 트래픽 유출 취약점이 발견
> 해당 공격은 사용되는 VPN 프로토콜과 무관
> 많은 VPN 클라이언트는 다음 두 가지 유형의 트래픽을 VPN 터널 외부로 전송하기 위해 예외를 추가
① 로컬 네트워크와 주고받는 트래픽: VPN을 사용하는 동안 로컬 네트워크에 계속 액세스할 수 있도록 보장
② VPN 서버와 주고받는 트래픽: 라우팅 루프가 없음을 보장
2.1 LocalNet 공격 (CVE-2023-36672, CVE-2023-35838)
- 공격자가 로컬 네트워크 IP 주소 범위를 조작하여 트래픽이 유출될 수 있음
> 공격자가 로컬 네트워크에 할당된 IP 범위를 제어할 수 있다고 가정
> 공격자는 로컬 네트워크 내에서 활동
① 공격자는 악성 AP를 생성 하고 로컬 네트워크 IP 범위를 대상 서버의 IP 주소가 포함된 범위로 설정
② 피해자 VPN 클라이언트는 연결하려는 웹사이트가 로컬 네트워크에 있다고 믿도록 속여 연결되지 않음
① 공격자는 악성 AP를 생성하고 대상 서버의 IP 주소가 포함된 범위로 IP 범위를 설정하며, 피싱 사이트 생성
> 피싱 사이트는 대상 서버와 IP를 동일하게 구성
② 피해자는 악성 AP에 연결하며, 악성 AP는 target[.]com과 동일한 서브넷의 IP 주소 할당
③ 피해자는 정상적인 VPN 연결을 생성
④ 피해자가 target[.]com 접속 시 피싱 사이트로 연결
> 피해자는 target[.]com(피싱 사이트)가 동일한 로컬 네트워크에 있다고 믿음
> 결과적으로 클라이언트는 VPN 터널을 사용하지 않고 웹 서버에 직접 연결 시도
※ 목적지 target[.]com을 제외한 트래픽은 정상 VPN 터널을 통해 전송
2.2 ServerIP 공격 (CVE-2023-36673, CVE-2023-36671)
- 공격자는 VPN 서버의 IP 주소를 스푸핑하여 트래픽이 유출될 수 있음
> 공격자가 DNS 응답을 스푸핑할 수 있다고 가정
> 공격자는 위치는 (1) 피해자가 VPN 서버의 IP 주소를 조회하는데 사용하는 DNS 서버 (2) 트래픽을 유출하려는 피해자와 대상 서버
① 공격자는 피해자의 VPN 서버에 대한 nslookup 결과를 스푸핑 (DNS 스푸핑)
② 피해자는 스푸핑된 IP 주소로 서버에 연결 시도
① 피해자는 vpn[.]com의 IP를 얻기위해 nslookup
② 공격자는 nslookup에 대한 응답을 스푸핑하여 조작된 응답을 전송
> [사진 4]에서는 target[.]com의 IP 주소로 DNS 스푸핑
③ 피해자는 조작된 IP로 VPN 연결을 시도하며, 공격자는 정상 vpn[.]com으로 패킷 포워딩
④ 피해자가 target[.]com으로 접속 시 트래픽은 VPN 터널 외부로 전송
> 결과적으로 VPN 클라이언트는 스푸핑된 IP 주소로 연결을 시도
2.3 취약점 영향 및 대응 방안
구분 | 대응방안 |
LocalNet | - 로컬 트래픽 비활성화 (단, 로컬 네트워크 사용이 불가해짐) - 라우팅할 수 없는 IP 주소에 대한 직접 액세스만 허용 (로컬 네트워크에 대한 액세스가 필수인 경우) |
ServerIP | - 정책 기반 라우팅 (VPN 클라이언트를 제외한 모든 애플리케이션의 트래픽을 VPN 터널을 통해 전송) - 서버 IP 주소 확인 (클라이언트가 서버에 연결되면 VPN 서버의 IP 주소 확인) - 인증된 DNS 사용 (DNSSEC 등) |
3. TunnelVision (CVE-2024-3661) [2][3]
- 24.05.06 VPN 트래픽을 훔쳐볼 수 있는 취약점이 발견
> DHCP의 설계 오류로 인해 발생
> IP 라우팅을 기반으로하는 모든 VPN 시스템에 통하는 공격으로 2 가지 조건을 가짐
① 공격자가 클라이언트의 DHCP 서버가 되어야 함
② 대상 호스트의 DHCP 클라이언트는 옵션 121을 구현해야 함
- DHCP Option 33 vs Option 121
> 1997년 DHCP RFC에는 관리자가 클라이언트의 라우팅 테이블에 설치할 고정 경로를 지정할 수 있는 옵션 33 존재
> 옵션 33은 Classful Static Routes를 사용하였고, 공용 IP 공간이 제한되면서 시간이 지남에 따라 선호되지 않음
> 2002년 RFC 3442에서 Classless Static Routes가 가능한 옵션 121 도입 (호환을 위해 옵션 33 유지)
> TunnelVision은 옵션 121를 악용해 공격
※ Android는 DHCP 옵션 121을 지원하지않아 영향받지 않음
① 공격자는 정상 DHCP 서버에 DHCP 고갈 공격을 수행
> DHCP 고갈 공격: DHCP 서버에 MAC 주소를 변조하여 DHCP Discover 패킷을 계속 전송하여 IP 주소를 모두 소진하도록 하는 공격
> DHCP는 DHCP Discover 패킷의 MAC 주소만 보고 호스트 인식
② 공격자는 피해자와 동일한 네트워크에서 악성 DHCP를 운영
③ 악성 DHCP 서버는 옵션 121을 악용해 라우팅 테이블에 고정 경로를 구성
④ 공격자는 트래픽이 기본 게이트웨이로 전달되기 전에 암호화되지 않은 트래픽을 가로챌 수 있음
3.1 대응방안
구분 | 설명 |
DHCP Snooping | - DHCP 서버를 보호하기 위해 사용하는 기능 > 스위치에는 DHCP 서버 또는 DHCP Relay Agent가 접속된 Trusted Port와 DHCP 클라이언트가 접속된 Untrusted Port가 있음 > Untrusted Port에서 DHCP 응답 메시지를 확인하면 차단 (DHCP Spoofing 방지) > 또한, Ethernet 프레임의 SRC MAC 주소와 DHCP 메시지의 클라이언트 MAC 주소를 비교해 정상 여부 판단 (DHCP 고갈 공격 방지) |
옵션 121 비활성화 | - TunnelVision은 옵션 121을 악용하므로 옵션 121 비활성화시 완화할 수 있음 |
포트 보안 | - 포트에 연결된 PC의 MAC 주소를 등록한 후 등록된 MAC 주소에서 수신한 패킷만 전달 |
4. 참고
[1] https://tunnelcrack.mathyvanhoef.com/details.html
[2] https://www.leviathansecurity.com/blog/tunnelvision
[3] https://github.com/leviathansecurity/TunnelVision
[4] https://www.zscaler.com/blogs/security-research/cve-2024-3661-k-tunnelvision-exposes-vpn-bypass-vulnerability
'취약점 > 기타' 카테고리의 다른 글
GrimResource 공격 (0) | 2024.06.26 |
---|---|
Wi-Fi SSID 혼동 공격 (CVE-2023-52424) (0) | 2024.05.18 |
PuTTY 취약점 vuln-p521-bias (CVE-2024-31497) (0) | 2024.04.19 |
금융보안원, ‘레드아이리스 인사이트 리포트 : Campaign ThirdEye’를 발간 (0) | 2024.03.12 |
KISA 브라우저 자동 로그인 비활성화 및 주의 권고 (0) | 2024.03.08 |