BGP 하이재킹이란?

BGP 하이재킹은 인터넷 트래픽을 악의적으로 재라우팅하는 것으로, 인터넷의 라우팅 프로토콜인 BGP의 신뢰 특성을 이용합니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • BGP 하이재킹의 정의
  • BGP 하이재킹의 실제 사례 몇 가지 살펴보기
  • BGP 하이재킹을 방지하기 위한 몇 가지 대응책 개요

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

BGP 하이재킹이란?

BGP 하이재킹은 공격자가 인터넷 트래픽을 악의적으로 리디렉션하는 것을 말합니다.공격자는 실제로 소유, 제어, 라우팅하지 않는 IP 주소 그룹(IP 접두사라고 함)의 소유권을 허위로 발표하여 이를 달성합니다.BGP 하이재킹은 고속도로 일정 구간의 모든 표지판을 바꾸고 차량의 경로를 잘못된 출구로 변경하는 것과 아주 유사합니다.

BGP 하이재킹 리라우팅

BGP는 상호 연결된 네트워크들이 자체에서 소유하고 있는 IP 주소에 대해 진실을 말한다는 가정에 따라 구축되므로, BGP 하이재킹을 막는 것은 거의 불가능합니다. 고속도로 표지판을 아무도 보지 않고, 악의적으로 변경되었는지 알 수 있는 유일한 방법은 많은 자동차가 잘못된 지역에 도착하는 것을 관찰하는 것뿐이라고 상상해 보세요. 그러나 하이재킹이 발생하려면 공격자가 자율 시스템(AS)과 다른 시스템 사이를 연결하는 BGP 지원 라우터를 제어하거나 손상시켜야 하므로 아무나 BGP 하이재킹을 수행할 수 있는 것은 아닙니다.

BGP란 무엇일까요?

BGP는 보더 게이트웨이 프로토콜(Border Gateway Protocol)의 약자로, 인터넷의 라우팅 프로토콜입니다.다시 말해서, BGP는 트래픽이 한 IP 주소에서 다른 IP 주소로 최대한 효율적으로 이동할 수 있도록 경로를 제공합니다.IP 주소는 특정 웹 사이트의 실제 웹 주소입니다.사용자가 웹 사이트 이름을 입력하고 브라우저가 이를 찾아 로드하면 사용자의 IP 주소와 웹 사이트의 IP 주소 간에 요청과 응답이 오갑니다.도메인 네임 시스템(DNS) 서버는 IP 주소를 제공하지만, BGP는 해당 IP 주소에 도달하는 가장 효율적인 방법을 제공합니다.대략적으로 말하면 DNS가 인터넷의 주소록이라면 BGP는 인터넷의 로드맵이라고 할 수 있습니다.

각 BGP 라우터는 자율 시스템 간의 최적 경로가 포함된 라우팅 표를 저장합니다.이 표는 각 AS*[주로 인터넷 서비스 공급자(ISP)]가 소유하고 있는 새로운 IP 접두사를 브로드캐스트하므로 거의 지속해서 업데이트 됩니다.BGP는 네트워크 전반에서 가능한 최소한의 홉을 통해 IP 주소에 도달하기 위해 항상 AS에서 AS로 가는 가장 짧고 직접적인 경로를 선호합니다.BGP에 대해 자세히 알아보기 >>

*자율 시스템(AS)의 정의

자율 시스템은 단일 조직에서 관리하는 대규모 네트워크 또는 네트워크 그룹입니다.AS에는 많은 하위 네트워크가 있을 수 있지만, 모두 동일한 라우팅 정책을 공유합니다.일반적으로 AS는 자체 네트워크와 해당 네트워크에서 ISP로 연결되는 여러 업스트림 연결('멀티홈 네트워크'라고 함)을 갖춘 ISP 또는 매우 큰 규모의 조직입니다.각 AS에는 쉽게 식별할 수 있도록 고유한 자율 시스템 번호(ASN)가 할당됩니다.자율 시스템에 대해 자세히 알아보기 >>

BGP가 중요한 이유는?

BGP는 인터넷이 대규모로 커지는 것을 가능하게 해줍니다. 인터넷은 서로 연결된 여러 개의 대규모 네트워크로 구성되어 있습니다. 탈중앙화되어 있으므로 데이터 패킷이 의도한 IP 주소 목적지로 이동할 수 있는 최적의 경로를 지정하는 관리 기관이나 교통 경찰이 없습니다. 이 역할을 BGP가 맡습니다. BGP가 없다면 웹 트래픽은 비효율적인 라우팅으로 인해 목적지에 도달하는 데 엄청난 시간이 걸리거나 의도한 목적지에 전혀 도달하지 못할 수도 있습니다.

BGP는 어떻게 하이재킹될 수 있을까요?

어떤 AS에서 실제로 제어하지 않는 IP 접두사에 대한 경로를 발표하면, 이 발표가 필터링되지 않을 경우 인터넷 전역의 BGP 라우터의 라우팅 표에 확산되어 추가될 수 있습니다. 그 이후로는 누군가가 경로를 알아채고 수정할 때까지 해당 IP로 향하는 트래픽은 해당 AS로 라우팅됩니다. 부동산 증서를 확인하고 시행할 지방 정부가 없는 경우 자기 땅이라고 주장하는 것과 마찬가지입니다.

BGP는 항상 원하는 IP 주소로 가는 가장 짧고 구체적인 경로를 선호합니다. BGP 하이재킹이 성공하려면 경로 발표가 다음 경우 중 하나여야 합니다.

1) 다른 AS가 이전에 발표했던 것보다 더 작은 범위의 IP 주소를 발표하여 더 구체적인 경로를 제공합니다.

2) 특정 IP 주소 블록에 대한 더 짧은 경로를 제공합니다. 또한, 아무나 더 큰 인터넷에 BGP 경로를 알릴 수 있는 것은 아닙니다. BGP 하이재킹이 발생하려면 AS 운영자 또는 AS를 침해한 위협 행위자가 발표해야 합니다(두 번째 경우는 더 드뭅니다).

BGP 하이재킹 흐름

대규모 네트워크 또는 네트워크 그룹(대부분 ISP)의 운영자가 이러한 악의적인 활동을 뻔뻔스럽게 수행한다는 사실이 놀랍게 느껴질 수도 있습니다. 그러나 현재 전 세계적으로 80,000여 개의 자율 시스템이 존재한다는 점을 고려하면 일부 시스템을 신뢰할 수 없다는 것은 놀라운 일이 아닙니다. 또한 BGP 하이재킹이 항상 명백하거나 감지하기 쉬운 것은 아닙니다. 악의적인 행위자는 자신의 활동을 다른 AS 뒤에 숨기거나 레이더망에 걸리지 않으려고 알아차리기 어렵고 사용하지 않는 IP 접두사 블록을 발표할 수 있습니다.

BGP가 하이재킹되면 어떻게 될까요?

BGP 하이재킹의 결과로 인터넷 트래픽은 잘못된 방향으로 이동하거나, 모니터링되거나 가로채기 되거나, '블랙홀'이 되거나, 경로상 공격의 일부로 가짜 웹 사이트로 연결될 수 있습니다.또한 스팸 발송자가 BGP 하이재킹 또는 BGP 하이재킹을 수행하는 AS의 네트워크를 사용하여 합법적인 IP를 스푸핑해서 스팸을 발송할 수 있습니다.사용자 입장에서는 요청과 응답이 가장 효율적인 네트워크 경로를 따르지 않고 불필요하게 전 세계에 걸쳐 이동하므로 페이지 로드 시간이 늘어날 수 있습니다.

최상의 사례 시나리오에서는 트래픽이 불필요하게 긴 경로로 이동하여 대기 시간이 증가합니다.최악의 사례 시나리오에서는 공격자가 경로상 공격을 수행하거나 자격 증명을 탈취하기 위해 사용자를 가짜 웹 사이트로 리디렉션할 수 있습니다.

현실 세계의 BGP 하이재킹

고의적인 BGP 하이재킹의 실제 사례는 많이 있습니다. 예를 들어, 2018년 4월 러시아의 한 공급자는 실제로 Route53 Amazon DNS 서버에 속하는 다수의 IP 접두사(IP 주소 그룹)를 발표했습니다. 요약하자면, 암호화폐 사이트에 로그인을 시도하는 사용자가 해커가 제어하는 가짜 버전의 웹 사이트로 리디렉션되는 결과로 이어졌습니다. 이렇게 하여 해커들은 약 152,000달러 상당의 암호화폐를 훔칠 수 있었습니다. (좀 더 구체적으로 설명하자면, 해커들은 BGP 하이재킹을 통해 Amazon DNS 쿼리를 하이재킹하여 myetherwallet.com에 대한 DNS 쿼리가 자신들이 제어하는 서버로 이동하도록 하고 잘못된 IP 주소를 반환한 다음 HTTP 요청을 가짜 웹 사이트로 보냈습니다. 다음 블로그 게시물에서 자세히 알아보세요. 'BGP 유출과 암호화폐'.)

의도하지 않은 BGP 하이재킹 사례도 널리 퍼져 있으며, 이는 전 세계 인터넷 전체에 부정적인 영향을 미칠 수 있습니다. 2008년 파키스탄 정부 소유의 파키스탄 텔레콤은 웹 사이트의 BGP 경로를 업데이트하여 파키스탄 내에서 YouTube 검열을 시도했습니다. 실수로 보이지만, 새로운 경로가 파키스탄 텔레콤의 업스트림 공급자에게 발표되었고, 이 소식은 전체 인터넷에 브로드캐스트되었습니다. 갑자기 YouTube에 대한 모든 웹 요청이 파키스탄 텔레콤으로 향했고, 그 결과 거의 모든 인터넷이 몇 시간 동안 중단되어 해당 ISP가 압도되었습니다.

사용자와 네트워크에서 BGP 하이재킹으로부터 자체를 방어하려면 어떻게 해야 할까요?

인터넷 트래픽이 라우팅되는 방식을 지속해서 모니터링하는 것 외에는 사용자와 네트워크에서 BGP 하이재킹을 방지하기 위해 할 수 있는 일은 거의 없습니다.

IP 접두사 필터링

대부분의 네트워크는 필요한 경우에만 IP 접두사 선언을 허용해야 하며, 전체 인터넷이 아닌 특정 네트워크에 대해서만 IP 접두사를 선언해야 합니다. 이렇게 하면 우발적인 경로 하이재킹을 방지하고 AS가 가짜 IP 접두사 선언을 수락하지 못하게 하는 데 도움이 되지만, 실제로 이를 강제하기는 어렵습니다.

BGP 하이재킹 지

대기 시간 증가, 네트워크 성능 저하, 잘못된 방향의 인터넷 트래픽은 모두 BGP 하이재킹의 징후일 수 있습니다. 많은 대규모 네트워크에서는 클라이언트가 지연 문제를 겪지 않도록 BGP 업데이트를 모니터링하며, 몇몇 보안 연구원들은 실제로 인터넷 트래픽을 모니터링하고 그 결과를 발표합니다.

BGP 보안 강화

BGP는 인터넷이 원활하게 작동하도록 설계되었으며, 실제로 그렇게 하고 있습니다. 하지만 BGP는 보안을 염두에 두고 설계되지는 않았습니다. 인터넷 전반을 위한 보다 안전한 라우팅 솔루션(예: BGPsec)이 개발되고 있지만, 아직 채택된 솔루션은 없습니다. 당분간 BGP는 본질적으로 취약하며 앞으로도 계속 취약할 것입니다.

Cloudflare에서 BGP를 이용하는 방법은?

Cloudflare에서는 전 세계 310개 도시에 데이터 센터를 보유하고 있으며, 모두 하나의 ASN(AS13335)과 동일한 IP 접두사를 브로드캐스트합니다. 이렇게 하면 Cloudflare가 호스팅하는 IP 주소에 도달하기 위해 통과해야 하는 네트워크 트래픽의 수를 최소화할 수 있습니다. 그 결과, 전 세계 거의 모든 곳에서 Cloudflare 소유 IP 주소에 대한 효율적인 경로를 사용할 수 있습니다. 일본에 있는 AS의 경우, Cloudflare IP로 가는 최단 경로는 몇 번의 네트워크 홉만 거치면 일본 현지 Cloudflare 데이터 센터로 연결될 수 있습니다. 캘리포니아주에서는 트래픽이 동일한 Cloudflare AS 내에서 호스팅되는 동일한 IP 주소로 이동하여 캘리포니아주 데이터 센터를 경유하여 도달할 수 있습니다.