Hijacking Bitcoin: Routing Attacks on Cryptocurrencies 리뷰
인터넷 라우팅이 흔들리면, 탈중앙화된 overlay도 함께 흔들린다.
이 글은 Maria Apostolaki, Aviv Zohar, Laurent Vanbever의 논문 Hijacking Bitcoin: Routing Attacks on Cryptocurrencies를 방어 관점에서 다시 읽는다. 논문의 핵심 기여는 Bitcoin의 합의 알고리즘이 아니라 그 아래의 인터넷 라우팅을 공격면으로 모델링했다는 데 있다.
이 문서의 수치와 Bitcoin 동작은 별도 표시가 없는 한 논문이 수집한 2015~2016년 데이터와 2017년 발표 시점을 가리킨다. 현재 네트워크에 그대로 일반화할 수 없다.
안전 범위: 실제 prefix를 허가 없이 광고하거나 타인의 트래픽을 가로채면 서비스 장애와 법적 피해를 일으킬 수 있다. 이 글은 공격 재현 절차가 아니라 논문의 위협 모델, 증거, 한계, 방어를 설명한다.
논문 정보
| 항목 | 내용 |
|---|---|
| 저자 | Maria Apostolaki, Aviv Zohar, Laurent Vanbever |
| 발표 | 2017 IEEE Symposium on Security and Privacy, pp. 375–392 |
| DOI | 10.1109/SP.2017.29 |
| 공개 원문 | arXiv 1605.07524v2 |
| 분석 데이터 | 2015년 10월~2016년 3월 Bitcoin·BGP 관측 자료 |
| 핵심 질문 | AS-level 공격자가 Bitcoin 연결을 분할하거나 block 전파를 지연할 수 있는가? |
배경: overlay 아래의 routing underlay
Bitcoin node는 다른 peer와 TCP 연결을 맺고 transaction과 block을 전파한다. 논리적으로는 분산된 peer-to-peer overlay지만, packet은 여전히 ISP와 transit provider가 운영하는 Autonomous System(AS)을 통과한다.
Bitcoin overlay: node A ───── peer connection ───── node B
↓ ↓
Internet underlay: origin AS ─ transit AS ─ destination AS
BGP와 prefix
BGP-4는 AS 사이에서 IP prefix의 도달 가능성과 AS_PATH 같은 path attribute를 교환한다.
여기에는 서로 다른 두 단계가 있다.
- Control plane: 같은 prefix/NLRI에 여러 BGP route가 있으면 local policy와 BGP decision process가 best route를 선택해 routing table에 반영한다.
- Forwarding plane: 실제 packet은 설치된 여러 overlapping prefix 가운데 목적지 주소와 가장 길게 일치하는 entry로 전달된다.
따라서 공격자가 경쟁 route를 만들어 control-plane 선택을 바꾸거나, 설치 가능한 더 구체적인 prefix를 유포해 forwarding-plane longest-prefix match를 차지하면 트래픽 경로가 달라질 수 있다.
기본 BGP 명세 자체가 모든 announcement의 권한을 암호학적으로 증명하는 것은 아니다. 다만 이를 단순히 “BGP는 아무 route나 믿는다”라고 요약하면 운영 현실을 놓친다. 실제 방어에는 prefix·AS path filtering, Internet Routing Registry, RPKI 기반 Route Origin Validation (ROV), monitoring 같은 별도 정책과 확장이 함께 쓰인다.
RPKI가 보장하는 것과 보장하지 않는 것
RPKI의 Route Origin Authorization(ROA)은 특정 prefix를 originate할 수 있는 AS를 서명된
객체로 표현한다. RFC 6811의 origin validation은 route를 Valid, Invalid, NotFound로
분류할 수 있게 하지만, 전체 AS_PATH를 검증하지는 않는다. RFC 8205의 BGPsec은 지원하는
AS들이 BGP UPDATE를 다음 AS로 전파하도록 승인했다는 서명 sequence를 제공하는 별도 확장이다.
이는 실제 data packet이 같은 AS 경로를 통과한다는 증명이 아니다.
즉 ROV는 중요한 root defense지만 모든 route leak, path 조작, 이미 정상 경로 위에 있는 공격자를 단독으로 제거하는 만능 방어는 아니다.
논문의 위협 모델
논문은 두 종류의 AS-level 공격자를 다룬다.
| 공격자 | 능력 | 제약 |
|---|---|---|
| 자연스럽게 on-path인 AS | 자신을 통과하는 packet을 관찰·drop·delay | 경로 밖 연결은 건드릴 수 없음 |
| BGP hijack을 수행하는 AS | 목표 prefix로 향하는 경로를 자신 쪽으로 유도 | announcement 전파, filtering, 탐지·대응의 영향을 받음 |
공격자는 Bitcoin의 proof-of-work를 깨거나 private key를 훔치지 않는다. 대신 node들이 서로의 block을 제때 보지 못하게 하여 합의가 의존하는 통신 가정을 약화한다.
두 공격의 구조
1. Partition attack
목표는 선택한 node 집합과 나머지 Bitcoin network 사이의 모든 연결을 끊어 두 개의 component를 만드는 것이다. 논문은 목표 node가 속한 prefix의 트래픽을 divert한 뒤 partition을 가로지르는 Bitcoin 연결만 drop하는 모델을 제시한다.
이 선택적 제어에는 단순 blackhole hijack보다 강한 조건이 필요하다. 공격자는 legitimate destination으로 트래픽을 돌려보낼 untouched path를 남기고, 경계 안의 연결은 계속 전달하면서 경계를 넘는 연결만 차단하는 interception hijack을 구성해야 한다. 이 반환 경로가 없으면 leakage point를 관찰·조정하는 partition 절차가 아니라 눈에 띄는 전체 연결 장애가 된다.
완전한 cut이 필요하다는 점이 중요한 제약이다. 같은 AS 안의 연결, mining pool 내부 연결, 비공개 pool-to-pool 연결처럼 공격자가 가로채지 못하는 stealth connection 하나만 남아도 block 정보가 partition을 건널 수 있다. 논문의 알고리즘은 이런 leakage point를 식별해 최초 목표보다 작은, 실제로 격리 가능한 최대 부분집합을 찾는다.
성공하면 양쪽에서 block이 병렬로 생성되어 fork와 stale block이 늘 수 있다. reconnect 후 누적 작업량이 작은 chain의 block과 transaction이 되돌려질 수 있으며, mining revenue 손실과 double-spend 위험도 커진다.
2. Delay attack
목표는 특정 node가 새 block을 늦게 받도록 만드는 것이다. 2017년의 Bitcoin v1 transport는 평문이며 cryptographic integrity가 없었고, 당시 client는 한 peer에게 요청한 block을 최대 20분 기다리는 동작을 보였다. 논문의 결과는 공격자가 가로채는 연결의 비율뿐 아니라 트래픽 방향에도 의존한다.
- victim에서 peer로 나가는 방향을 보면
GETDATA를 변조할 수 있다. 논문은 timeout 안의 후속 요청을 이용해 원래 block도 전달되게 하여 연결을 계속 유지하는 경우를 제시한다. - peer에서 victim으로 들어오는 방향만 보면
BLOCK을 손상할 수 있다. 이 경우 victim은 첫 지연 block의 20분 timeout 후 해당 연결을 끊으므로 공격 효과가 지속적이지 않다.
즉 일부 연결의 한 방향만 가로채도 지연은 가능하지만, 모든 방향에서 “연결을 끊지 않는” 것은 아니다. 효과와 지속 시간은 어떤 연결의 어느 방향을 관찰하는지에 따라 달라진다.
여기서 20분과 구체적인 message 처리 방식은 당시 구현의 속성이다. 공격의 더 일반적인 교훈은 “한 peer에게 집중된 요청 상태와 인증되지 않은 transport가 on-path 조작의 영향력을 키운다”는 것이다.
| 속성 | Partition | Delay |
|---|---|---|
| 필요한 가시성 | 경계를 지나는 모든 연결 | 일부 연결만으로도 영향 가능 |
| 주된 동작 | interception 후 선택적 packet drop | 당시 평문 message 변조와 전달 지연 |
| 탐지 단서 | 대량 disconnect, route 변화 | RTT·block latency·request/response 이상 |
| 주요 결과 | network split, fork, rollback 위험 | stale block, mining power 낭비 |
측정과 실험 설계
논문은 하나의 실험만으로 결론을 내리지 않고 여러 증거를 결합했다.
- 첫 Bitcoin supernode는 하루 약 2,000개 node에 연결해 block 전파 시점을 모았고, 별도 crawler 역할의 supernode는 하루 약 6,000개 active IP를 수집했다.
- CAIDA AS topology와 business relationship으로 AS-level forwarding path를 추론했다.
- 세 RIPE RIS collector의 182개 BGP session에서 얻은 약 250만 route로 Bitcoin IP를 prefix와 origin AS에 매핑했다.
- 6개월 동안 약 40억 BGP update를 분석해 origin 변화 기반의 hijack 후보를 찾았다.
- 연구팀 소유 prefix와 node만 대상으로 실제 route diversion과 delay prototype을 검증했다.
- Bitcoin Core
v0.12.1을 testnet mode로 실행한 1,050개 VM을 격리된 virtual switch에 연결하고 50/50 drop rule로 partition recovery를 측정했다. 이는 public testnet 관측이 아니다. - 별도 event-driven simulator와 연구팀 소유 Bitcoin Core
v0.12.0node의 delay experiment로 network-wide 영향과 targeted delay를 평가했다.
실제 관측, 제한된 live experiment, testbed, simulation을 함께 사용했다는 점이 이 논문의 가장 강한 방법론적 특징이다.
주요 결과
다음 수치는 모두 논문이 관측한 당시 topology에 한정된다.
- 13개 AS가 공개 Bitcoin node의 30%, 50개 AS가 50%를 hosting했다.
- 63개 prefix가 node의 20%를 hosting했다.
- Hurricane Electric, Level 3, TeliaNet 세 AS가 가능한 Bitcoin 연결의 60% 이상에서 경로상에 있었고, Hurricane Electric 하나의 추정치는 32%였다.
- Bitcoin node를 hosting한 prefix의 93%가
/24보다 짧아, 논문의 more-specific hijack 모델에 노출될 수 있었다. - 연구팀 소유 prefix 실험에서는 hijack 시작 후 20초 안에 연결 절반 이상, 90초 안에 모든 관측 트래픽이 공격 경로로 이동했다.
- 특정 39개 prefix를 hijack하면 추정 mining power의 47%를 격리할 수 있는 feasible partition이 계산됐다.
- 약 200시간의 attack period 동안 연결의 50%를 가로챘을 때, 실험 node의 chain이 reference node보다 짧아 최신 block을 모르는 상태였던 시간의 평균 비율은 63.21%였다. 이는 baseline 대비 증가량이 아니라 전체 공격 시간 중 측정된 상태 비율이다.
- 반대로 전체 network를 대상으로 한 passive on-path delay는 pool의 multi-homing 때문에 매우 강한 AS coalition 없이는 제한적이었다.
이 결과가 말하는 것은 “Bitcoin이 중앙화됐다”는 단일 문장이 아니다. application node의 수와 network path의 다양성은 서로 다른 지표이며, 전자가 많아도 후자가 소수 AS와 prefix에 집중되면 공통 실패 지점이 생긴다는 뜻이다.
강점
Cross-layer threat model
논문은 consensus·P2P protocol·TCP·BGP를 하나의 공격 경로로 연결한다. 각 계층만 따로 보면 놓치기 쉬운 “분산 overlay, 집중된 underlay”의 모순을 정량화했다.
공격의 필요조건과 실패조건을 함께 설명
partition이 항상 가능한 것처럼 과장하지 않고 intra-AS·intra-pool·private connection을 명시한다. delay도 node-level에서는 강하지만 network-wide에서는 multi-homing 때문에 제한될 수 있음을 보여 준다.
제한된 live experiment와 윤리 경계
Appendix F에 따르면 route experiment는 Transit Portal이 연구팀에 할당한 prefix만 광고했고, 격리·지연 대상도 연구팀 node였다. 외부 node와의 정상 연결을 의도적으로 손상하지 않는 범위를 설계에 포함했다.
한계
결과는 2015~2016년 topology의 snapshot이다
hosting AS, mining pool gateway, client version, timeout, peer selection은 시간이 지나며 변한다.
39 prefixes, 47%, 63.21% 같은 수치를 현재 network의 위험도로 재사용하려면 동일한
방법론으로 다시 측정해야 한다.
실제 path가 아니라 추론된 path가 포함된다
CAIDA relationship과 routing tree로 계산한 path는 traffic engineering, private peering, hot-potato routing을 완전히 재현하지 못한다. 논문도 비공개 pool connection을 직접 알 수 없다는 점을 인정한다.
Hijack 탐지 heuristic에는 오탐 가능성이 있다
논문은 직전 한 달과 다른 origin AS를 hijack 후보로 세고, multiple-origin prefix를 제외했다. 이 방식은 대규모 trend를 보는 데 유용하지만 정상적인 운영 변경과 악성 hijack을 완벽히 구분하는 ground truth는 아니다.
일부 공격 전제는 protocol evolution의 영향을 받는다
논문의 delay attack은 평문·무결성 부재와 당시 request timeout에 의존한다. 현재 BIP 324는 v2 P2P transport에 opportunistic encryption과 AEAD packet integrity를 제공하므로 동일한 저비용 message 변조의 전제를 약화한다. 그러나 peer identity를 인증하지 않으며 v1 호환도 유지한다. 무엇보다 암호화는 packet drop이나 route diversion 자체를 막지 못한다.
방어를 계층별로 읽기
Internet routing 계층
- prefix owner는 정확한 ROA를 게시하고 operator는 ROV policy로
Invalidannouncement를 처리한다. - IRR/RPKI 기반 prefix filtering, max-prefix, AS path policy를 자동 갱신한다.
- 여러 upstream과 물리 경로를 사용하되, 이름만 다른 provider가 같은 transit AS에 수렴하지 않는지 실제 path diversity를 확인한다.
- BGP update, origin 변경, more-specific announcement를 외부 관측 지점과 함께 monitoring한다.
- origin validation을 넘어 UPDATE propagation sequence를 검증하려면 BGPsec 같은 별도 메커니즘이 필요하다. 이 보장은 BGPsec을 협상한 서명 구간에 한정되며, 비지원 AS를 거친 unsigned 구간까지 연속되지 않는다. data-plane path, availability, packet drop, 정상 경로상의 악성 AS도 보장하지 않는다.
지금 배포 가능한 Bitcoin node·pool 운영 방어
- mining gateway와 upstream을 서로 다른 AS·물리 경로에 두고, private relay도 같은 routing fate를 공유하는지 외부 관측으로 확인한다.
- RTT, block arrival latency, 동시 disconnect, peer distribution, route 변화를 경보 신호로 수집한다. 하나의 지표만으로 자동 차단·재연결을 결정하지 않는다.
- 구현이 지원하는 여러 reachable network를 유지하고, 가능한 연결에 BIP 324 v2 transport를 사용하되 이것을 route hijack 방어로 오해하지 않는다.
- 수동으로 고정한 peer나 tunnel이 있다면 모두 같은 provider·transit path에 수렴하지 않는지 점검한다. 단일 VPN은 단지 failure domain을 VPN provider로 옮길 수 있다.
Client 지원과 별도 검증이 필요한 제안
논문이 제안한 routing-aware peer selection, 이상 시 extra peer 추가, 여러 peer로부터 block 조각을 받는 방식은 운영 명령이 아니라 client policy 또는 protocol redesign에 가깝다.
- AS/path 정보는 동적이고 source-dependent이므로 신뢰할 수 있는 관측과 stale-data 처리가 필요하다.
- anomaly-triggered connection은 기존 peer를 즉시 버리지 않고, connection budget·cooldown· address-group diversity를 제한해야 한다. 공격자가 공급한 address로 연결을 몰아 eclipse나 Sybil 공격면을 키우지 않아야 한다.
- 병렬 block retrieval은 중복 traffic, bandwidth amplification, peer resource exhaustion을 포함한 DoS 모델과 회귀 성능을 검증한 뒤 채택해야 한다.
핵심은 transport integrity와 route availability를 분리해서 방어하는 것이다. 암호화는 변조 비용을 높이지만 blackhole을 막지 못하고, ROV는 잘못된 origin을 줄이지만 정상 on-path AS의 packet drop을 막지 못한다.
2026년에 다시 검증할 질문
- 현재 reachable node와 mining gateway는 몇 개 AS·prefix·transit path에 분포하는가?
- BIP 324 v2와 v1 연결의 실제 비율은 어느 정도이며 downgrade·active MitM은 어떻게 관찰되는가?
- Bitcoin Core의 현재 peer selection과 multi-network outbound 정책이 AS diversity를 얼마나 높였는가?
- compact block·relay network·private pool link가 partition을 잇는 독립 경로인가, 같은 routing failure domain을 공유하는가?
- RPKI ROV 적용 이후 논문의 more-specific origin hijack 중 어느 범주가 차단되고, route leak과 on-path 공격 중 무엇이 남는가?
이 질문들에 답하기 전에는 2017년의 공격 성공률을 현재 위험 수치로 인용해서는 안 된다.
평가
| 기준 | 점수 | 이유 |
|---|---|---|
| 문제 설정 | 5/5 | cryptocurrency와 inter-domain routing을 처음 체계적으로 연결 |
| 방법론 | 4/5 | 관측·실험·simulation을 결합했지만 path와 pool topology 일부는 추론 |
| 재현 가능성 | 4/5 | 데이터와 도구를 공개했으나 live routing 환경과 historical snapshot에 의존 |
| 현재 직접 적용성 | 3/5 | routing 교훈은 유효하지만 Bitcoin transport와 topology가 진화 |
| 종합 | 4/5 | 수치보다 cross-layer 분석 방법이 오래 남는 논문 |
관련 문서
- DNS Rebinding — application identity와 network endpoint가 어긋나는 또 다른 경계 문제
- SSRF Exploitation Guide — server-side network reachability를 신뢰 경계로 다루는 방법
- Host Header Attacks — protocol metadata와 실제 목적지를 혼동할 때의 위험
참고 자료
- Apostolaki, Zohar, Vanbever, Hijacking Bitcoin: Routing Attacks on Cryptocurrencies
- arXiv:1605.07524v2 — 공개 원문
- RFC 4271 — A Border Gateway Protocol 4
- RFC 6811 — BGP Prefix Origin Validation
- RFC 7454 — BGP Operations and Security
- RFC 8205 — BGPsec Protocol Specification
- BIP 324 — Version 2 P2P Encrypted Transport Protocol
- Bitcoin Core 26.0 release notes — v2 transport와 multi-network outbound 도입 시점