기술 개요 : 네트워크 인터페이스 전환시 DNS 누출 방지

네트워크 인터페이스 전환시 DNS 누출 방지

사용자 개인 정보 보호 및 보안을 효과적으로 제공하기 위해 VPN 응용 프로그램은 사용자의 DNS 요청이 VPN 연결 전체 기간 동안 비공개로 유지되도록해야합니다. 응용 프로그램은 일반적으로 모든 DNS 요청이 VPN 터널을 통해 암호화되어 VPN 공급자의 DNS 서버에서 처리되도록 보장함으로써이를 수행합니다..

이 보증을 유지하려면 DNS 누출이 발생할 수있는 시나리오를 이해하는 것이 중요합니다. 네트워크 연결이 안정적인 경우와 같은 간단한 시나리오 만 고려하면 충분하지 않습니다. 실제로는 네트워크가 불안정하거나 구성이 변경 될 수 있으며 일반적으로 누수가 발생할 때입니다. 따라서 복잡한 시나리오를 조사하는 것은 누출 방지 VPN 응용 프로그램 엔지니어링 프로세스의 중요한 부분입니다..

ExpressVPN에서는 VPN 응용 프로그램이 유출 될 수있는 복잡한 시나리오를 조사하는 데 상당한 시간과 노력을 투자합니다. 이 기사의 나머지 부분에서는 DNS 유출이 발생할 수있는 특정 시나리오에 대해 설명합니다. DNS 누출이 발생하는 방법과 이유를 설명하고 누출을 직접 테스트 할 수있는 방법을 알려드립니다..

시나리오 : 네트워크 인터페이스 전환 후 DNS 누출

네트워크 인터페이스 간 전환은 DNS 유출이 가능한 일반적인 시나리오입니다. 다음 예제를 고려하십시오.

  • 집에서 노트북을 가지고 있고 Wi-Fi에 연결되어 있습니다.
  • VPN 응용 프로그램에 연결
  • 나중에 이더넷 케이블을 연결합니다

대부분의 VPN 응용 프로그램은이 네트워크 구성 변경을 감지하지 않습니다. 그들은 귀하의 개인 정보 및 보안이 여전히 100 % 보호되어 있음을 계속 알릴 것이지만, 실제로는 매우 다를 수 있습니다.

엄밀히 말하면, DNS 요청이 ISP 나 다른 제 3 자에게 지속적으로 유출 될 수 있으며,이를 결코 알지 못할 수 있습니다.

기술 분석

언제 이런 일이 일어날 수 있습니까?

Mac을 예로 들어 보겠습니다 (이 누출은 Windows 장치에서도 발생합니다). 사용 가능한 Wi-Fi 및 이더넷 연결이 있다고 가정하십시오. “시스템 환경 설정”앱을 열고“네트워크”로 이동하십시오. 다음과 같은 메시지가 나타납니다.

Wi-Fi DNS 유출

이것은 Wi-Fi와 이더넷에 모두 연결되어 있지만 이더넷이 선호하는 연결임을 나타냅니다..

DNS가 “로컬”IP 주소로 설정되어 있다고 가정하십시오. 이더넷 연결이 강조 표시되면 “고급”을 클릭 한 다음 “DNS”로 이동하여이를 확인할 수 있습니다.

DNS 서버보기

“DNS 서버”아래의 IP 주소가 10.x.x.x, 192.168.x.x 또는 172.16.x.x와 172.31.x.x 사이 인 경우 “로컬”IP 주소입니다. 이것은 아마도 라우터가 DNS 서버 역할을하므로 VPN이 없으면 ISP가 모든 DNS 요청을 볼 수 있음을 의미합니다. 이러한 설정이 있으면이 DNS 유출에 취약 할 수 있습니다.

DNS 서버에 로컬 IP 주소가없는 경우에도 DNS 누출에 취약 할 수 있습니다. 이 경우 DNS 요청이 VPN 터널을 통과 할 수 있습니다. 그러나 VPN의 DNS 서버로 라우팅되지 않고 ISP 또는 타사 DNS 공급자의 서버와 같은 다른 DNS 서버로 라우팅됩니다..

누출 여부를 어떻게 확인할 수 있습니까?

가장 간단한 방법은 ExpressVPN의 DNS 유출 도구를 사용하고 다음을 수행하는 것입니다.

  • 이더넷 케이블이 분리되어 있는지 확인하십시오
  • Wi-Fi 네트워크에 연결되어 있는지 확인
  • VPN 애플리케이션과 연결
  • ExpressVPN의 DNS 누출 테스터 또는 타사 테스터 사용
  • 하나의 DNS 서버 만 표시되어야합니다.
  • ExpressVPN을 사용하는 경우 테스터는 해당 서버가 인정 된 서버임을 알려줍니다.
  • 이더넷 케이블을 연결하십시오
  • DNS 누출 페이지를 새로 고칩니다. DNS가 유출되는 경우 이제 다른 DNS 서버 목록이 표시됩니다.

다음과 같이 tcpdump를 사용하여 웹 페이지에 의존하지 않고 DNS 누출을 확인할 수도 있습니다..

먼저 이더넷 연결에 해당하는 네트워크 인터페이스를 찾으십시오.

  • 터미널 창을 엽니 다
  • networksetup -listallhardwareports를 입력하십시오.
  • “하드웨어 포트 : Thunderbolt 이더넷”과 같은 줄을 찾으십시오..
  • 하드웨어 포트 : Thunderbolt Ethernet

  • 이더넷 연결을위한 네트워크 인터페이스가 “장치”옆에 표시됩니다.이 예에서는 en4입니다.

이제 테스트를 실행 해 봅시다 :

  • 이더넷 케이블이 분리되어 있는지 확인하십시오
  • Wi-Fi를 통해 VPN 애플리케이션과 연결
  • 이더넷 케이블을 연결하십시오
  • 터미널 창을 엽니 다
  • sudo tcpdump -i en4 port 53을 입력하고 암호를 입력하십시오
  • sudo는 네트워크 트래픽을 캡처하는 데 필요한 권한을 tcpdump에 제공합니다.
  • -i4는 tcpdump가 이더넷 인터페이스에서 수신하도록 지시합니다.
  • en4를 위에서 발견 한 인터페이스로 교체하십시오.
  • 포트 53은 DNS 트래픽에 사용되는 포트이므로 DNS 요청 만 표시합니다.
  • 트래픽이 표시되면 DNS 유출이있는 것입니다 (예 :.
  • DNS 누출 트래픽

    실제로 여기서 일어나는 일?

    이 누출의 근본 원인은 운영 체제가 사용할 DNS 서버를 결정하는 방법에 달려 있습니다. 시스템에서 사용하는 DNS 서버는 항상 가장 높은 우선 순위의 활성 네트워크 서비스와 관련된 것입니다. 위의 그림에서 맨 위에있는 녹색 서비스에 해당합니다..

    이더넷을 비활성화하면 DNS 쿼리를 수신 할 서버가 Wi-Fi 서비스와 연결된 서버가됩니다. 이제 가장 우선 순위가 높은 활성 네트워크 서비스입니다. VPN에 연결할 때도 마찬가지입니다. DNS 트래픽을 VPN의 DNS 서버로 올바르게 보내려면 대부분의 VPN 제공 업체는 우선 순위가 가장 높은 인터페이스의 DNS 서버를 자체 DNS 서버로 변경합니다. 이 시나리오에서는 Wi-Fi 네트워크 서비스와 연결된 DNS 서버를 변경한다는 의미입니다..

    이더넷 케이블을 연결하면 이더넷 네트워크 서비스가 현재 가장 우선 순위가 높은 네트워크 서비스이므로 활성 목록의 맨 위로 이동합니다. 그런 다음 운영 체제는 DNS 조회를 위해 해당 서비스와 관련된 DNS 서버를 사용하려고합니다..

    Wi-Fi 네트워크가 여전히 작동 중이므로 중단되지 않았기 때문에 많은 VPN 응용 프로그램에서 문제를 인식하지 못합니다. 그러나 Wi-Fi 네트워크를 통해 암호화 된 데이터를 전송하는 동안 DNS 요청은 암호화되지 않은 ISP로 전송됩니다..

    VPN 응용 프로그램이이 시나리오로부터 보호하지 못하면 DNS 요청이 터널에서 ISP로 유출됩니다..

    터미널에서 DNS 이름 서버 확인

    참고로 scutil 명령을 사용하여 DNS 서버의 동작을 직접 조사 할 수 있습니다. 시스템이 어떤 DNS 서버를 사용하는지 간단히 보려면 ​​:

    • 터미널 창을 엽니 다
    • scutil –dns를 입력하십시오.
    • 출력 상단에 “이름 서버”목록이있는 “해결 프로그램 # 1″이 표시됩니다..
    • 리졸버 # 1 네임 서버

    • 각“nameserver”옆에있는 IP 주소는 시스템이 DNS 요청에 사용할 것을 나타냅니다

    더 배우고 싶으세요? 질문이나 의견이 있으시면?

    저희 엔지니어링 팀이 귀하의 의견을 듣고 싶습니다. 간단하게 [email protected]으로 연락하십시오..