Boan/뉴스

[번역] VPN bypass vulnerability in Apple iOS

ha3kkkkk 2020. 5. 3. 17:19

https://protonvpn.com/blog/apple-ios-vulnerability-disclosure/

 

Apple iOS vulnerability causes connections to bypass VPN

We discovered a security vulnerability in Apple’s iOS that causes connections to remain unencrypted even after connecting to VPN.

protonvpn.com

Apple IOS의 VPN 우회 취약점

 

이 기사는 Apple의 IOS 버전 13.4에서 발견된 VPN이 모든 트래픽을 암호화지 못하는 취약점에 대해 보고한다.

 

당사는 때때로 타사 소프트웨어 취약점을 발견하며, 90일이내에 책임감있는 공개 프로그램에 따라 공개할 것이다.

 

커뮤니티와 다른 VPN 제공자 그리고 그들의 사용자들이 이 문제를 인지하는 것이 중요하기 때문에 우리는 "VPN 우회" 취약점을 공식적으로 공개한다. 

 

아래에 우리는 설명했다. 보안 결함의 특성, 어떻게 우리가 이것을 조사했는지, 그리고 Apple이 이 취약점을 해결할때까지 위험을 완화시키기 위해 사용자가 무엇을 할 수 있는지.

 

 

 

IOS VPN 우회 취약점이 어떻게 동작할까

 

일반적으로, 가상사설망(VPN)에 연결했을때 OS는 존재하는 모든 인터넷 연결을 닫고 VPN 터널을 통해 그들과 재연결 한다. 

 

VPN 작동 방식 자세히 알기: https://protonvpn.com/blog/how-does-a-vpn-work/

 

Proton 커뮤니티의 회원은 IOS 버전 13.3.1에서 OS가 존재하는 연결을 닫지 않는것을 발견했다. (이 이슈는 최신 버전인 13.4에서도 유지되고있다) 대부분의 연결은 수명이 짧고 결국 VPN 터널을 통해서 재연결될것이다. 하지만, 어떤것은 길게 살아있고 몇분에서 몇시간 까지도 VPN 터널 밖에서유지지될 수 있다.

 

대표적인 예중 하나는 Apple의 Push 알림 서비스이다. 그들은 장비와 Apple 서버 사이에서 오랜 시간동안 연결을 유지한다. 그러나, 문제는 인스턴트 메시지 어플리케이션이나 웹 비콘같이 어떠한 앱이나 서비스에도 영향을 미칠 수 있다는 것이다.

 

VPN 우회 취약점의 결과로 사용자의 데이터가 노출될수있다. 만약 영향받는 연결이 자체적으로 암호화 되어있지 않다면 말이다. (요즘 흔치않긴하지만.) 더 일반적인 문제는 IP 유출이다. 공격자는 사용자의 IP 주소와 그들이 연결한 서버의 IP주소를 볼 수 있다. 게다가, 너가 연결한 서버는 VPN 서버가 아니라 너의 진짜 IP를 볼 수 있다.

 

이 보함 결함으로 인해 가장 위험한 사람은 감시와 인권 학대가 흔한 국가의 사람들 이다.

 

IOS가 VPN 앱이 존재하는 네트워크 연결을 죽이는것을 허용하지 않기 때문에 Proton VPN뿐만 아니라 다른 VPN 서비스도 이 문제의 해결책을 제공할 수 없다.

 

 

 

취약점 조사

 

이 문제를 조사하기 위해, 우리는 WireShark를 이용하여 IOS 장비의 네트워크 트래픽을 캡쳐했다.

 

너가 VPN에 연결했을때, 너는 오직 장비 IPVPN 서버 또는 Local IP 주소(너의 local 네트워크에 물려있는 다른 장비)만 볼 수 있다.  아래의 캡쳐에서 볼 수 있듯이, IOS 장비 IPVPN 서버가 아닌 외부 IP 주소(이상황에서는 Apple 서버다) 사이에서의 직접적인 트래픽이 있다.

 

10.0.2.109 = IOS 장비 IP

185.159.157.8 = Proton VPN 서버 IP

17.57.146.68 = Apple 소유 IP

 

우리는 이 취약점의 CVSS 점수를 medium 으로 계산했다.

 

 

 

어떻게 이 IOS VPN 우회 취약점을 완화시킬 수 있을까

 

너가 VPN에 연결한 이후에 수립된 인터넷 연결은 영향 받지않는다. 그러나, VPN에 연결하기전에 이미 연결중이던 것은 VPN 터널 밖에서 무기한 지속될 수 있다. VPN 연결을 시작하는 순간 이 연결들을 닫도록 보장하는 방법은 없다.

 

하지만, 우리는 아래의 기술이 거의 효과적이라는 것을 발견했다.

1. Proton VPN 서버에 접속한다.

2. 비행기 모드를 켠다. 이것은 모든 인터넷 연결을 죽이고 일시적으로 Proton VPN과 연결을 끊는다.

3. 비행기 모드를 끈다. Proton VPN은 재연결 될것이고, 너의 다른 연결 또한 VPN 터널 안에서 재연결 되야하지만 100%보장할 수는 없다.

 

대신에, Apple은 이 문제를 완화하기 위해 Always-on VPN을 사용하는 것을 추천한다. 이 방법은 장치 관리를 사용해야 하므로, 불행하게도 Proton VPN 같은 타사 응용프로그램의 문제는 완화 시키지 못한다.

 

이 취약점은 보안 컨설턴트이자 Proton 커뮤니티의 회원인 Luis를 통해서 처음 우리에게 보고됐다.우리는 VPN 우회 취약점을 인정하고 이를 완화시키기위해 Apple과 접촉하고 있다. Apple에서 업데이트를 할때까지, 위의 해결책을 사용하는 것을 권장한다.