← 블로그로 돌아가기

VPN 탐지 원리: ASN과 차단 목록

VPN 탐지 원리: ASN과 차단 목록

VPN 탐지는 IP 주소가 다른 사람들의 트래픽을 중계하는 것으로 알려진 네트워크에 속하는지를 두 가지 주요 소스로 판단하는 방식입니다. 하나는 네트워크를 누가 운영하는지 보여 주는 주소의 자율 시스템 번호(ASN)이고, 다른 하나는 알려진 VPN, 프록시, Tor 출구 주소의 차단 목록입니다. 어느 쪽도 완전하지 않으므로 탐지는 증명이 아니라 확률 추정입니다.

이것이 가능한 근본적인 이유는 VPN 출구도 어딘가에 있어야 하기 때문입니다. 상용 VPN 서비스는 데이터센터의 서버를 임대하고 소수의 네트워크에서 주소 공간을 광고하며, 이러한 주소는 가정용 브로드밴드 연결과 다르게 동작합니다. 탐지는 이 흔적을 알아보려는 시도입니다.

신호 1: ASN 귀속

모든 공개 IP 주소는 ASN으로 식별되는 자율 시스템이 광고하는 블록 안에 있습니다. ASN 조회는 AS15169 같은 번호에 대해 등록된 소유자, 조직, 국가를 반환하며, 기본 IP 조회도 모든 주소에 대해 같은 asn과 조직을 반환합니다. 조직이 호스팅 회사, 클라우드 플랫폼, CDN이라면 그 주소는 집에 있는 개인일 가능성이 낮으며, ipto는 이를 is_datacenter로 노출합니다. 일반 소비자용 ISP라면 주소는 아마도 가정 또는 모바일 가입자일 것입니다. 배경은 ASN이란 무엇인가에서 다룹니다.

VPN 제공업체가 임대한 랙에서 서버를 운영하는 일반적인 경우에 ASN 증거는 강력하지만 두 가지 약점이 있습니다. VPN이 아닌 트래픽도 스크립트, 모니터링 서비스, 정당한 기업 이그레스, 클라우드에 호스팅된 앱 등 데이터센터에서 많이 나옵니다. 그리고 일반 소비자용 ISP를 통해 나가는 VPN은 데이터센터 흔적이 전혀 남지 않습니다. 따라서 ASN은 결론이 아니라 사전 확률입니다.

신호 2: 공개된 목록

두 번째 소스는 이미 VPN 엔드포인트, 프록시, Tor 릴레이로 확인된 주소의 목록입니다. Tor는 네트워크가 릴레이를 공개적으로 게시하므로 가장 쉬운 경우이지만, 정적 Tor 출구 목록이 금방 낡는 이유에서 논의하듯 출구 목록은 빠르게 바뀝니다. 상용 VPN의 목록은 관측과 제공업체 데이터로 구성되며, 제공업체가 서버를 계속 교체하고 추가하므로 자주 갱신해야 합니다. ipto에서 VPN, Tor, 악용 피드는 6시간마다, IP 및 ASN 데이터셋은 매일 갱신되며, 결과는 IP 조회에서 is_vpn, is_tor, is_abuser로 나타납니다. 기반이 되는 위협 피드를 직접 둘러볼 수도 있습니다.

목록에 오른 주소는 개별적으로 식별된 것이므로 목록 증거는 ASN 증거보다 구체적입니다. 하지만 뒤처집니다. 오늘 아침에 추가된 서버는 다음 갱신 전까지 어떤 목록에도 없을 수 있고, 목록에는 이후 일반 고객에게 재할당된 주소가 남아 있을 수 있습니다.

신호 결합하기

두 소스는 서로를 보완합니다. 호스팅 ASN에 속하면서 출구 목록에도 있는 주소는 신뢰도가 높은 VPN 또는 프록시입니다. 호스팅 ASN에만 속하는 주소는 신중하게 다룰 만하지만 자동으로 VPN으로 볼 수는 없습니다. 목록과 일치하지만 소비자용 ASN에 있는 주소는 오래된 항목이거나 주거용 출구일 수 있습니다. 주소를 VPN, Tor, 프록시 검사기에 넣으면 어떤 목록과 일치했는지와 주소가 어느 네트워크에 속하는지 보여 주므로, 단순한 예/아니요가 아니라 근거를 확인할 수 있습니다.

탐지가 놓치는 경우

결과를 기반으로 설계할 때는 사각지대를 명확히 인식하세요.

  • 새로 추가되었거나 교체된 서버는 피드가 따라잡을 때까지 탐지되지 않을 수 있습니다.
  • 주거용 프록시는 실제 가정 연결을 경유하므로 일반 사용자처럼 보입니다. ipto는 이를 탐지하지 않으며, 그것이 어려운 이유는 주거용 프록시 탐지를 참고하세요.
  • IPv6: VPN, Tor, 악용 플래그는 현재 IPv4 범위만 다루므로 IPv6 주소는 추측 대신 false를 반환합니다. ASN, 조직, 위치는 여전히 작동합니다.
  • 작은 제공업체 대역의 개인 서버에 구축한 자체 호스팅 VPN은 어떤 목록에도 나타나지 않을 수 있습니다.

음성 결과는 "확실히 직접 연결"이 아니라 "VPN으로 알려지지 않음"으로 취급하세요.

결과를 현명하게 활용하기

대부분의 VPN 사용자는 기업 터널을 쓰는 직원, 여행자, 개인정보를 중시하는 사람 등 정당한 사용자입니다. 플래그는 자동 차단이 아니라 추가 인증 단계, 낮은 신뢰 점수, 고가치 작업에 대한 수동 검토처럼 적절한 수준의 대응을 촉발하는 위험 입력으로 쓸 때 가장 효과적입니다. 이에 대한 패턴은 VPN 탐지의 오탐 줄이기에 있으며, 사기 점수 검사기는 IP 신호를 이메일, 전화번호, User-Agent 증거와 결합해 0에서 100 사이의 단일 점수로 만드는 방법을 보여 줍니다.

직접 시험하려면 자신의 로그에 있는 주소로 GET https://ipto.to/v1/ip/:ip를 호출하고(무료, 가입 불필요, 하루 1,000건) ASN과 함께 플래그를 살펴보세요. 응답 스키마는 API 문서에 있습니다.

명확한 답변

ASN을 통해 IP 주소가 호스팅 또는 데이터센터 네트워크에 속하는지, 그리고 알려진 VPN, 프록시, Tor 출구 주소의 공개 목록에 있는지 확인합니다. 두 가지를 결합하면 증명이 아닌 확률 추정을 얻을 수 있습니다.
새로 추가되었거나 교체된 서버는 아직 어떤 목록에도 없을 수 있고, 주거용 프록시는 일반 가정 연결처럼 보이며, 작은 대역의 자체 호스팅 VPN은 목록에 오르지 않을 수 있습니다. 음성 결과는 해당 주소가 VPN으로 알려지지 않았다는 뜻입니다.
보통은 그렇지 않습니다. VPN 사용자 중에는 정당한 사용자가 많기 때문입니다. 플래그는 추가 인증이나 검토 같은 적절한 단계를 더하는 위험 신호로 쓰는 편이 낫습니다.
← 블로그로 돌아가기