누출 사례 연구 2 : WebRTC 유출

공개 IP 주소는 웹에서 개인의 신원의 일부를 구성하여 사이트, 앱 및 타사가 웹에서 활동을 추적하고 특정 개인과 연결할 수 있도록합니다. VPN을 사용하면 사이트는 사용자 대신 VPN 서버의 공개 IP 주소를보고 자신의 신원을 보호합니다.

그러나 WebRTC는 때때로 웹 사이트가 개인 정보 유출 위험을 나타내는 사용자의 공개 IP 주소를 볼 수 있도록 할 수 있습니다. 개인 정보 보호 연구소의이 사례 연구에서는 WebRTC 누수가 발생하는 방법 및 ExpressVPN 누출 테스트 도구를 사용하여 누수를 테스트하는 방법에 대해 설명합니다..

WebRTC 개요

WebRTC는 웹 페이지가 웹 브라우저를 통해 P2P (Peer-to-Peer) 통신을 제공 할 수있는 개방형 기술 세트입니다. 대부분의 최신 브라우저는 이제 WebRTC 표준을 완벽하게 지원합니다.

WebRTC는 무엇보다도 웹 브라우저가 사용자의 퍼블릭 IP 주소와 로컬 IP 주소를 모두 감지 할 수있는 기능을 제공합니다. 이 기능은 추가 앱이나 플러그인없이 웹 브라우저 만 사용하여 P2P 통신을 촉진하는 데 중요합니다.

WebRTC 누출

WebRTC 유출은 일종의 IP 유출입니다. 웹 페이지는 JavaScript WebRTC API를 사용하여 브라우저에 장치의 IP 주소를 요청할 수 있습니다. 이 IP 주소를 수집하면 서버로 전송하여 특정 웹 페이지 또는 서비스에 액세스하는 사람을 식별하는 데 사용할 수 있습니다.

대부분의 VPN 응용 프로그램은 WebRTC를 통해 유출되는 IPv4 주소로부터 효과적으로 보호하지만 많은 VPN 응용 프로그램은 동일한 방식으로 유출되는 IPv6 주소를 간과하는 경향이 있습니다..

WebRTC는 IP 주소를 어떻게 감지합니까?

WebRTC는 두 가지 주요 기술을 사용하여 장치의 IP 주소를 결정합니다. STUN / TURN 서버 및 호스트 후보 검색.

스턴 / 턴 서버는 액세스에 사용되는 공용 IP 주소를 확인하여 IP 주소를 감지합니다. 일반적으로 이들은 VPN IP 유출의 원인이 아닙니다.

호스트 후보자 발견 WebRTC 유출과 관련하여 더 문제가 있습니다. 이 기능을 통해 브라우저는 시스템 및 네트워크 인터페이스를 직접 검사하고 관련 IP 주소를 확인할 수 있습니다.

장치의 모든 활성 네트워크 인터페이스가 작동하려면 IP 주소가 필요합니다. 예를 들어, 활성 Wi-Fi 연결의 경우 장치에 해당 네트워크 인터페이스가 있습니다. 이 인터페이스는 IP 주소를 갖게됩니다.

WebRTC는 일반적으로 장치 외부에서 볼 수 없었던 IP 주소를 웹 페이지에 공개 할 수 있습니다.

IPv6 누출이 문제가되는 이유?

IPv4 주소는 공급이 부족합니다. 단지 충분하지 않습니다! 일반적으로 IPv4 주소는 사람들간에 공유됩니다. 이를 위해 NAT (Network Address Translation)라는 시스템이 사용됩니다. 이 시스템을 통해 장치는 일반적으로 ISP를 통해 공용 IP 주소를 공유하면서 “로컬 IPv4″주소를 네트워크 인터페이스에 할당 할 수 있습니다. 이 로컬 IP 주소는 전 세계 수백만 컴퓨터에서 전 세계적으로 사용되며 특정 개인과 직접 연결하기가 어렵습니다..

IPv6의 문제점은 주소가 부족하다는 것입니다. 있다 제비 그들의! 즉, 개인마다 일반적으로 고유 한 IPv6 주소가 할당됩니다. 이러한 IPv6 주소가 네트워크 인터페이스에 할당되면 이는 해당 IP 주소가 일반적으로 외부 세계에 표시되지 않더라도 WebRTC가 사용자를 식별하는 IP 주소를 발견 할 수 있음을 의미합니다..

어떤 종류의 누출이 있습니까??

WebRTC 누출에는 심각도가 다른 두 가지 유형이 있습니다. 취약한 사용자는 웹 페이지에 특정 WebRTC 관련 권한을 부여하는지 여부에 따라 다릅니다. 두 경우 모두 좋은 VPN은 누출로부터 보호해야합니다..

브라우저 제조업체는 다른 방법을 사용하여 WebRTC를 구현할 수 있으므로 동일한 장치 설정 및 VPN 공급자를 사용하더라도 브라우저 하나가 누출되거나 다른 브라우저가 유출되지 않을 수 있습니다..

영구 누출 (권한 필요 없음)

기본적으로 웹 페이지에는 WebRTC 권한이 부여되지 않습니다. 그러나 여전히 WebRTC API를 사용하여 페이지가 일부 사용자의 IP 주소에 액세스 할 수 있습니다. 이러한 상황에서 웹 사이트는 지식 없이도 IP 주소를 통해 사용자를 쉽게 추적 할 수 있습니다..

발생 된 누출 (권한 필요)

웹 페이지는 WebRTC 관련 기능을 사용할 권한을 명시 적으로 요청할 수 있습니다. 이러한 권한은 실제로 다음과 같이 분류됩니다. 마이크로폰 카메라 권한. WebRTC는 음성 통화 나 화상 회의와 같은 P2P 통신을위한 기술이기 때문입니다..

이러한 권한 중 하나가 부여되면 웹 페이지가 장치의 더 넓은 범위의 IP 주소에 액세스하여 누출이 발생할 수 있습니다. 일부 브라우저에서는 이러한 권한이 여러 세션에 걸쳐 유지됩니다. 즉, 사용자가 웹 페이지에 한 번 권한을 부여한 경우 웹 페이지는 사용자가 나중에 페이지로 돌아갈 때 해당 권한을 유지합니다.

개별 웹 페이지에는 개별적으로 권한이 부여되어야하므로 한 사이트에 대한 권한을 부여해도 다른 사이트에 대한 권한은 부여되지 않습니다..

이러한 누수는 위의 영구 누수보다 덜 심각하지만 사용자가 적극적으로 권한을 부여해야하기 때문에 여전히 문제가됩니다. WebRTC의 인기가 높아지고 있으며 사용자는 앞으로이 기술을 사용하여 점점 더 많은 사이트를 볼 수있을 것으로 기대합니다. 사용자가 사이트에 권한을 부여 할 때 VPN이 IP 주소를 숨기지 않으면 두 가지 옵션 만 남습니다.

  • WebRTC 지원 사이트 및 서비스를 사용하지 마십시오
  • IP 주소 노출과 관련된 보안 및 개인 정보 보호 위험 수용

누출 테스트

이러한 테스트는 모든 데스크탑 컴퓨터에서 수행 할 수 있습니다. 누출 테스트를 수행 할 때 VPN 공급자가 누출 될 가능성이 가장 높은 상황이므로 테스트 장치에서 IPv6을 사용할 것을 권장합니다..

수동 테스트

온라인 WebRTC 누출 테스트를 사용하여 누출을 수동으로 테스트 할 수 있습니다.

재현 단계

  • 누출 테스트 페이지가 있는지 확인하십시오 닫은
  • VPN 응용 프로그램이 있는지 확인하십시오 연결 해제
  • WebRTC 누출 테스트 페이지를 방문하십시오.
  • 모두 기록해 두십시오 공공의 테스트 출력에 표시되는 IP 주소
    • 그들은 함께 표시됩니다 상태 “잠재적 누출”
  • 누출 테스트 페이지를 닫습니다
  • VPN에 연결
  • WebRTC 누출 테스트 페이지를 다시여십시오
  • 위에서 언급 한 IP 주소가 있으면 누출이 발생한 것입니다

브라우저 캐싱 문제를 방지하기 위해 누출 테스트 페이지를 닫으십시오. 많은 브라우저가 WebRTC를 통해 탐지 된 IP를 캐시하므로 웹 페이지를 다시로드하는 것은 테스트를 실행하는 신뢰할 수있는 방법이 아닙니다.

이 테스트 페이지는 가장 심각한 클래스의 누출, 즉 위에서 설명한 “영구 누출”에 대해서만 테스트합니다. 브라우저에 권한이 부여 될 때 누출 여부를 테스트하려면 아래의 누출 테스트 도구를 사용하는 것이 좋습니다..

ExpressVPN 누출 테스트 도구를 사용한 테스트

ExpressVPN 누출 테스트 도구는 VPN 응용 프로그램의 수동 및 자동 누출 테스트를 위해 설계된 확장 가능한 오픈 소스 Python 도구 모음입니다. 도구 다운로드 및 설정에 대한 지침은 도구 소개를 참조하십시오..

도구를 설정 한 후 도구 루트 디렉토리에 있는지 확인하고 다음을 실행하십시오.

./run_tests.sh -c configs / case_studies / webrtc_leaks.py

이 명령은 여러 브라우저에서 두 가지 테스트 사례를 실행합니다. 두 테스트 사례는 대부분 위에서 설명한 수동 단계의 자동화이며 다음을 수행합니다.

  • 테스트중인 VPN 응용 프로그램의 연결이 끊어 졌는지 확인
  • 장치의 공개 IPv4 및 IPv6 주소 확인
  • VPN 애플리케이션 연결
  • 간소화 된 누출 테스트 웹 페이지를 사용하여 WebRTC IP 수집
  • 연결 후 WebRTC를 통해 연결 전에 수집 된 퍼블릭 IP가 표시되는지 확인

한 테스트는 브라우저 권한이 부여되지 않은 경우 지속적인 누출을 테스트하고 다른 테스트는 권한이있을 때 누출을 테스트합니다. 아르 부여.

참고 : 브라우저를 변경하여 사용되는 브라우저를 조정할 수 있습니다 브라우저 의 목록 webrtc_leaks.py 파일.