← 블로그로 돌아가기

ASN 하이재킹: IP 지오로케이션 데이터가 뒤처지는 이유

ASN 하이재킹: IP 지오로케이션 데이터가 뒤처지는 이유

ASN 하이재킹, 더 정확하게는 BGP 경로 하이재킹은 네트워크가 발급 권한이 없는 IP 프리픽스를 자신이 출발지인 것처럼 광고하거나, 다른 네트워크가 자신에게 트래픽을 보내도록 만드는 방식으로 광고할 때 발생합니다. IP 지오로케이션과 ASN 데이터셋은 주기적인 스냅샷을 바탕으로 만들어지므로, 하이재킹이 진행되는 동안에는 대체로 이를 보여주지 못합니다.

BGP 하이재킹의 동작 방식

인터넷의 모든 네트워크는 자율 시스템 번호(ASN)로 식별되며, 도달 가능한 프리픽스를 이웃에게 알리기 위해 BGP(Border Gateway Protocol)를 사용합니다. BGP는 신뢰를 전제로 설계되었습니다. 기본적으로 광고를 받은 이웃에게는 광고한 네트워크가 정말로 그 프리픽스를 소유하는지 확인할 내장 수단이 없습니다. 이후 라우터는 최단 AS 경로와 무엇보다 최장 프리픽스 일치 같은 규칙으로 최적 경로를 고릅니다.

이 마지막 규칙이 공격자와 잘못된 설정이 악용하는 지점입니다. 정상 네트워크가 /22를 광고하는데 다른 누군가가 그 안의 더 구체적인 /24를 광고하면, /24를 수락한 라우터는 더 구체적인 경로가 우선하므로 그쪽을 선호합니다. 그 256개 주소로 가는 트래픽이 엉뚱한 네트워크로 흘러갑니다. 변형으로는 다른 사람의 프리픽스를 아예 자신이 출발지인 것처럼 광고하는 경우, AS 경로 일부를 위조하는 경우, 내부에 머물러야 할 경로를 유출하는 경우가 있습니다. 실제 사고의 상당수는 고객이 전체 라우팅 테이블을 업스트림에 유출하는 것 같은 실수이지만, 트래픽에 미치는 영향은 같습니다.

트래픽에는 어떤 일이 생기는가

트래픽을 끌어들인 공격자는 이를 버리거나(블랙홀), 들여다보거나, 실제 목적지로 다시 전달해 사용자가 약간의 지연 외에는 아무것도 눈치채지 못하게 할 수 있습니다. 암호화는 TLS로 보호되는 콘텐츠의 피해를 제한하지만, 하이재킹이 도메인 검증 트래픽을 가로채 인증서를 발급받거나 DNS를 가로채는 데 쓰인 사례도 있습니다. 지속 시간은 몇 분에서 몇 시간까지 다양하며, 바로 그래서 탐지 속도가 중요합니다.

지오로케이션과 ASN 데이터셋이 뒤처지는 이유

지오로케이션 및 ASN-프리픽스 데이터셋은 레지스트리 데이터, 라우팅 스냅샷 등의 소스로 구성된 뒤 버전 단위로 게시됩니다. 이 데이터셋은 "지금 이 순간 누가 이 대역을 광고하는가"가 아니라 "평소 누가 이 대역을 보유하는가"에 답합니다. ipto에서는 IP 및 ASN 데이터셋이 매일, 위협 피드가 6시간마다 갱신되므로, 한 시간 동안 지속된 하이재킹은 대개 두 갱신 사이에 시작되고 끝납니다. 사고가 진행되는 동안 영향을 받은 주소를 조회하면 대부분 여전히 정당한 소유자가 표시될 가능성이 높으며, 이는 데이터셋이 답하도록 설계된 질문에 대해서는 올바른 답입니다.

지연에는 두 가지 효과가 더해집니다. 첫째, 레지스트리 기록은 천천히 바뀌므로 라우팅 이벤트 때문에 주소 블록의 소유 조직이 바뀌지는 않습니다. 둘째, 프리픽스로부터 도시를 추정하는 지오로케이션 데이터베이스는 경로가 바뀔 때마다 이를 다시 추정하지 않습니다. 오히려 이렇게 안정적인 데이터는 기준선으로 유용합니다. 어떤 프리픽스를 누가 광고해야 하는지 알려 주며, 이것이 실시간 라우팅 데이터와 비교하는 대상이기 때문입니다.

의심스러운 라우팅을 확인하는 방법

  • 예상되는 출발지를 파악하세요. ASN 조회는 AS 번호의 등록된 소유자, 조직, 국가, 대역 수를 보여 주고, IP 대역 디렉터리에서는 어떤 네트워크가 특정 /8 또는 /16 블록을 보유하는지 탐색할 수 있습니다.
  • 등록 정보를 확인하세요. IP whois 조회는 RDAP를 통해 레지스트리 기록을 반환하며, 통보할 수 있는 악용 신고 연락처도 포함됩니다.
  • 경로 출발지를 검증하세요. RPKI 조회는 RIPEstat를 통해 IP에 대해 현재 광고되는 경로가 유효한 Route Origin Authorization(ROA)으로 보호되는지 실시간으로 확인합니다. 결과는 유효(valid), 무효(invalid), 미적용(not covered) 중 하나로 보고됩니다.

RPKI 결과는 신중하게 해석하세요. "invalid" 결과는 출발지 AS 또는 프리픽스 길이가 소유자가 승인한 것과 일치하지 않는다는 뜻이므로 조사할 가치가 있습니다. "Not covered"는 ROA가 존재하지 않는다는 의미일 뿐이며, 흔한 일이고 하이재킹의 증거는 아닙니다. 또한 RPKI는 올바른 출발지를 유지한 채 AS 경로를 위조하는 것과 같은 모든 공격을 막아 주지는 않습니다. ROA를 게시하고 이를 기준으로 필터링하는 운영자는 노출을 줄이며, 자신의 프리픽스에 예상 밖의 출발지가 나타나면 알려 주는 모니터링 서비스는 어떤 데이터셋 갱신보다 빠르게 알려 줍니다.

애플리케이션에 주는 의미

애플리케이션이 사기 점수 산정이나 지역 규칙 같은 판단에 ASN 또는 지오로케이션 데이터를 사용한다면, 이를 천천히 변하는 맥락으로 취급해야 하며 연결이 물리적으로 어디에서 종단되는지에 대한 증거로 보아서는 안 됩니다. ipto IP 조회는 asn과 org 필드를 반환하며, 응답 형식은 API 문서에서 확인할 수 있습니다. 알려진 고객이 접속하는 네트워크가 갑자기 바뀌는 것은 유용한 신호이지만, 하이재킹은 가능한 여러 설명 중 하나일 뿐이고 대부분의 변화는 새 ISP, 모바일 핸드오버, VPN 같은 평범한 이유입니다.

명확한 답변

ASN 하이재킹은 보통 BGP 하이재킹이라고 부르며, 네트워크가 소유하지 않은 IP 프리픽스를 광고하거나 더 구체적으로 광고해서 다른 네트워크가 트래픽을 자신에게 보내게 만드는 것입니다. 공격 또는 잘못된 설정으로 발생할 수 있습니다.
지오로케이션 및 ASN 데이터셋은 주로 레지스트리와 라우팅 이력으로 구성된 주기적 스냅샷으로 게시되므로, 짧게 지속된 경로 변경은 보통 다음 갱신 전에 끝납니다. 이 데이터셋은 지금 누가 광고하는지가 아니라 평소 누가 해당 대역을 보유하는지를 나타냅니다.
RPKI 경로 출발지 검증은 광고된 출발지와 프리픽스 길이를 소유자의 서명된 Route Origin Authorization과 비교합니다. ipto의 RPKI 조회는 이 검사를 실시간으로 수행해 valid, invalid, not covered 중 하나로 보고합니다.
← 블로그로 돌아가기