블로그로 돌아가기
보안

IP 평판: 방화벽만으로는 충분하지 않은 이유

Josselin Liebe
Josselin Liebe

정적 IP 차단 목록은 VPN, 주거용 프록시, Tor 출구 노드를 순환하는 공격자를 따라잡을 수 없습니다. Veille IP 평판 API(GET /v1/intelligence/ip)는 각 IP를 여러 차원에서 실시간으로 분석하고 0에서 100까지의 threat_score를 반환합니다.

API가 반환하는 내용

모든 IPv4 또는 IPv6 주소에 대해 다음을 얻습니다: VPN/프록시/Tor/데이터센터 탐지, ASN 및 네트워크 소유자 세부 정보, 지리적 위치(국가, 도시, 좌표, 시간대), 그리고 IP가 악용자 또는 크롤러로 플래그된 여부.

빠른 통합

Python

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"

response = requests.get(
    f"{BASE_URL}/intelligence/ip",
    params={"query": "82.64.12.193"},
    headers={"x-api-key": API_KEY},
)
data = response.json()

if data["is_vpn"] or data["threat_score"] > 60:
    print(f"Suspicious IP - score: {data['threat_score']}")
else:
    print(f"Clean IP from {data['location']['country']}")

TypeScript

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";
const headers = { "x-api-key": API_KEY };

const response = await fetch(
  `${BASE_URL}/intelligence/ip?query=82.64.12.193`,
  { headers }
);
const data = await response.json();

if (data.is_vpn || data.threat_score > 60) {
  console.log(`Suspicious IP - score: ${data.threat_score}`);
} else {
  console.log(`Clean IP from ${data.location.country}`);
}

주요 응답 필드

  • is_vpn / is_proxy / is_tor - 특정 익명화 플래그
  • is_datacenter - 자동화 공격에 사용되는 클라우드/호스팅 IP 식별
  • is_abuser - 알려진 악의적 활동으로 플래그됨
  • asn - 네트워크 소유자, 유형(isp, hosting, business), 국가
  • threat_score - 0(안전)에서 100(고위협)까지

5가지 활용 사례

  1. 가입 사기 탐지 - VPN이나 Tor 출구 노드에서 생성된 계정을 수동 검토를 위해 플래그 처리합니다.
  2. 적응형 인증 - IP가 데이터센터나 프록시에서 온 경우 CAPTCHA나 MFA를 추가합니다.
  3. 지역 제한 시행 - 사용자의 실제 국가가 서비스 지역과 일치하는지 확인합니다.
  4. 속도 제한 - 위협 점수가 높은 IP에 더 엄격한 속도 제한을 적용합니다.
  5. 결제 사기 방지 - 요금을 처리하기 전에 IP 지리적 위치를 청구 주소와 비교합니다.

관련 글