BGP 하이재킹 — 경로 탈취의 원리와 방어
BGP 하이재킹은 권한 없는 경로 광고로 다른 네트워크의 트래픽 방향을 잘못 유도하는 문제다. 광고가 존재한다는 사실과 전 세계 트래픽이 실제로 탈취됐다는 판단은 구분해야 한다.
1. 무엇이 바뀌는가?
DNS는 이름을 주소로 찾는 과정이고, 라우팅은 그 주소로 패킷을 보내는 과정이다. DNS 응답과 서버 설정이 그대로여도 네트워크의 경로 정보가 바뀌면 트래픽이 다른 곳으로 향할 수 있다.
경로 교란은 의도적인 무단 광고뿐 아니라 설정 실수로도 발생한다. BGP 수신 정책, 전파 범위, 대체 경로, 실제 패킷 전달을 확인하기 전에는 공격 의도나 피해 범위를 단정하지 않는다. BGP 운영·보안: RFC 7454
2. 정상 경로와 더 구체적인 무단 경로

그림 1. 주소·ASN은 문서용이다. 하단은 두 경로가 모두 허용·설치됐다는 가정이다. 실제 인터넷에서 항상 이렇게 전파된다는 뜻은 아니다.
학습용 정상 네트워크 AS64496이 2001:db8::/32를 광고하고 있다고 가정한다. 다른 AS64497이 그 안의 2001:db8:1000::/48을 무단 광고한다.
두 경로가 FIB에 설치됐다면 2001:db8:1000::10으로 향하는 패킷은 더 구체적인 /48에 맞는다. 영향을 받는 것은 해당 /48 목적지이며 전체 /32가 반드시 바뀌는 것은 아니다.
여기에는 두 단계가 있다.
- 제어 단계: 경로가 수신 정책을 통과하고 선택·설치되는가?
- 전달 단계: 설치된 경로 가운데 목적지와 가장 길게 일치하는 것은 무엇인가?
이는 동일한 프리픽스에 대해 AS_PATH 등 속성으로 후보를 선택하는 문제와 다르다. 실제 경로 수용에는 사업자별 정책·필터·프리픽스 길이 제한 등이 작용한다. 경로 처리: RFC 4271 §9 · 필터 운영: RFC 7454
3. 서로 다른 네 가지 사례
| 사례 | 바뀌는 것 | 결과를 볼 때의 질문 |
|---|---|---|
| 동일 대역 무단 광고 | 같은 prefix, 다른 origin | 각 수신 네트워크가 어느 후보를 선택하는가? |
| 더 구체적인 무단 광고 | 하위 prefix 추가 | 해당 경로가 수용·설치되는가? 어느 목적지가 포함되는가? |
| 허용된 origin 위조 | AS_PATH에 정당한 origin을 표시 | origin 일치만으로 실제 광고 주체를 증명할 수 있는가? |
| 경로 유출 | 허용 범위를 넘어 재광고 | origin은 맞더라도 전달 정책을 위반했는가? |
경로 유출(Route Leak)은 경로가 의도한 전파 범위를 벗어나는 문제다. 자신을 origin으로 바꾸지 않고도 발생할 수 있으므로 하이재킹과 같은 뜻으로 사용하지 않는다. RFC 7908
4. ROV가 막는 경우와 놓칠 수 있는 경우
경우 A: 무단 ASN이 광고하고 권한 정보가 존재한다
검증 정보: 2001:db8::/32, origin AS64496, maxLength 48
수신 경로: 2001:db8:1000::/48, origin AS64497다른 일치 VRP가 없다면 origin 불일치로 Invalid다. 수신자가 Invalid 거부 정책을 적용하면 이 경로를 거부할 수 있다. 검증 상태를 표시하기만 하고 허용한다면 트래픽 보호 효과는 다르다. RFC 6811 · RFC 8481
경우 B: 해당 대역을 포함하는 VRP가 없다
결과는 NotFound다. 이는 정상이나 공격을 증명하지 않는다. 경로 필터, 고객 광고 권한, 경로 변화 관측 같은 다른 근거가 필요하다. RFC 6811
경우 C: 공격 경로에 허용된 origin ASN이 들어 있다
ROV는 전체 AS_PATH의 진위를 검증하지 않는다. 허용된 origin을 넣은 위조 경로가 프리픽스·길이 조건도 만족하면 Valid가 될 수 있다. 특히 사용하지 않는 하위 대역까지 광범위하게 허용한 maxLength는 불필요한 공격 표면을 만든다. “Valid이므로 무단 경로일 수 없다”는 결론은 성립하지 않는다. RFC 9319
경우 D: origin을 유지한 경로 유출
원래 origin이 허용된 AS인 채로 전파 범위만 잘못될 수 있다. 이런 문제는 origin 권한과 사업자 사이의 재광고 정책이 다른 질문임을 보여 준다. RFC 7908
5. 피해와 증거를 구분하기
| 관측 | 말할 수 있는 것 | 아직 단정할 수 없는 것 |
|---|---|---|
| 새 origin 등장 | 기존과 다른 origin이 관측됨 | 고의 공격 여부 |
| 새 세부 대역 등장 | 경로 구조가 달라짐 | 모든 네트워크가 그 경로를 채택했는지 |
| 일부 지역 접속 장애 | 해당 관측 지점의 도달성 문제 | 전 세계 장애인지 |
| 트래픽이 다른 경로로 이동 | 경로 변경 또는 우회 정황 | 암호화된 내용을 읽었는지 |
| ROV Invalid | 현재 권한 정보와 불일치 | 운영 변경 오류인지 공격인지 |
이 표는 사건 보고를 위한 판단 틀이다. BGP 관측 지점의 가시성은 제한적이므로 제어 평면 관측과 실제 서비스 측정을 함께 남긴다. 트래픽 우회 자체가 TLS 암호 해독을 의미하지는 않으며, 반대로 암호화가 경로 장애나 서비스 불가를 막아 주는 것도 아니다.
6. 방어는 여러 층을 조합한다
| 방어 층 | 확인하는 것 | 한계 |
|---|---|---|
| ROA 관리 | 자신의 정상 광고 권한 | 다른 네트워크의 적용을 강제하지 않음 |
| ROV 정책 | origin·길이 조건 불일치 | 전체 경로 검증이 아님 |
| 고객 prefix·AS 경로 필터 | 고객이 광고해도 되는 경로 범위 | 목록이 오래되면 정상 변경도 차단 가능 |
| 경로 수 제한 | 비정상적으로 많은 경로 | 소수의 정교한 무단 광고는 놓칠 수 있음 |
| 광고 정책 관리 | 누구에게 어떤 경로를 재광고할지 | 모든 다른 AS의 정책까지 통제하지 못함 |
| 외부 모니터링 | 자신의 prefix·origin·상태 변화 | 관측 지점 밖의 상황은 추가 확인 필요 |
세션 보호와 경로 내용 검증도 구분한다. BGP 세션을 보호하는 것만으로 피어가 전달한 모든 경로의 자원 권한이 증명되지는 않는다. RFC 7454 · ROV 운영: RFC 7115
7. 의심 상황에서 남길 기록
다음은 이 학습자료에서 제안하는 대응 기록 순서다. 무단 광고를 실제로 재현하는 실습은 포함하지 않는다.
- 시점: 최초 관측 시각과 시간대, 마지막 정상 시각.
- 경로: 피해 prefix, 기존·새 origin, AS_PATH, 관측 지점.
- 권한: 당시 VRP와 판정 상태, 최근 ROA·ASN·방어 서비스 변경.
- 영향: 지역별 접속·지연·패킷 손실과 서비스 지표.
- 조치: 정당한 변경 여부 확인, 상위 사업자와 사실 공유, 변경·복구 이력 기록.
- 회복: 여러 지점에서 경로와 서비스가 모두 정상화됐는지 확인.
“Invalid가 사라졌다”와 “서비스가 복구됐다”는 서로 다른 완료 조건이다. 공격 경로 철회 후에도 캐시·전파·경로 선택 차이가 있을 수 있으므로 둘을 따로 확인한다.
8. 사고 실험과 정답
문제 1. 정상 /32와 무단 /48이 모두 설치됐다. /48 밖의 목적지도 반드시 무단 경로로 가는가?
정답: 아니다. 목적지가 어느 프리픽스와 일치하는지에 따라 다르다.
문제 2. 경로가 Valid면 경로 유출이 아니라고 판단해도 되는가?
정답: 아니다. origin 권한과 재광고 정책은 다르다.
문제 3. ROV 상태가 Invalid로 바뀌었다. 공격이라고 발표하기 전에 무엇을 확인하는가?
정답: 실제 광고·ROA·정상 변경 이력·검증 데이터 시점과 외부 관측을 확인한다.
자료 확인: 2026-10-27. 사례와 도식은 원리를 설명하는 가상 예제이며 특정 사업자의 실제 사고를 나타내지 않는다.