[블록미디어 James Jung 기자] XRP 레저(XRPL) 블록체인에 약 11년간 숨어 있던 치명적인 보안 결함이 발견됐다. 공격자가 기존에 없던 엑스알피(XRP)를 무단으로 생성할 수 있는 취약점이다.
자칫 총발행량 1000억개라는 공급 원칙이 무너질 수 있었다. 개발진은 신고 접수 사흘 만에 긴급 패치를 배포했다. 실제 공격에 악용된 흔적은 발견되지 않았다고 발표했다.
XRPL 개발진은 9일(현지시각) 공식 보안 보고서를 공개하고 결제 엔진에서 발견된 정수 오버플로(integer overflow) 취약점의 원인과 대응 과정을 상세히 설명했다. 문제의 결함은 2015년 작성된 코드에 존재했던 것으로 파악됐다.
XRP 코인 무단 발행이라는 전대미문의 사고로 이어질 수 있었던 버그 처리의 아찔한 순간순간을 정리했다.
이번 사건은 지난 9월22일 외부 보안 연구원들의 제보로 시작됐다. 9월23일 공격 재현과 위험 등급 상향이 이뤄졌고, 9월25일 긴급 업데이트가 배포됐다. 10월9일 기술적 분석과 수정 소스코드가 공개되면서 사건의 전모가 드러났다.
11년 된 결함, 9월22일 발견… 하루 만에 최고 위험 등급
취약점을 발견한 연구원은 케이든 랴오(Cayden Liao)와 베리아 AI(Veria AI)다. 이들은 9월22일 XRPL 버그 바운티 프로그램을 통해 결제 엔진의 정수 오버플로 오류를 신고했다.
최초 위험 등급은 ‘중대(Major)’였다. 그러나 리플의 개발 조직 리플엑스(RippleX)가 독립적인 시험 서버에서 공격을 재현하면서 상황이 달라졌다.
9월23일 개발진은 결제 과정에서 새롭게 생성된 XRP가 실제로 다른 계정에 송금되고 사용될 수 있다는 사실을 확인했다. 위험 등급도 최고 수준인 ‘치명적(Critical)’로 상향했다.
문제는 XRPL에 내장된 탈중앙화거래소(DEX)의 주문 처리 과정에 있었다.
공격자가 특수하게 설계한 수백 개의 매도 주문을 하나의 결제로 처리하면 금액을 합산하는 과정에서 정수 오버플로가 발생할 수 있었다. 정수 오버플로는 계산 결과가 시스템이 표현할 수 있는 숫자 범위를 초과하면서 비정상적인 값으로 바뀌는 현상이다.
이 오류가 발생하면 구매자에게는 실제 거래 금액보다 훨씬 적은 XRP가 청구되는 반면, 판매자에게는 정상적인 금액이 지급될 수 있었다. 차액만큼 기존에 존재하지 않았던 XRP가 생성되는 구조다. 공격을 반복하면 XRP의 총발행량인 1000억개를 넘어서는 토큰 생성도 이론적으로 가능했다.
더욱 심각한 문제는 XRP의 무단 생성을 방지하도록 설계된 내부 검증 장치마저 같은 계산 오류에 영향을 받을 수 있었다는 점이다. 개발진의 재현 실험은 이러한 위험이 단순한 이론적 가능성에 그치지 않는다는 사실을 보여줬다.
9월25일 긴급 패치… ‘2주 소요’ 검증자 투표 생략할 정도로 긴박
개발진은 9월25일 소프트웨어 버전 xrpld 3.4.1을 긴급 배포했다. 최초 신고로부터 사흘 만이다.
패치에는 결제 금액 합산 과정에서 정수 오버플로를 탐지하고 차단하는 기능이 포함됐다. XRP가 새롭게 생성되지 않았는지 확인하는 내부 검증 방식도 강화했다.
이때 개발진은 일반적인 수정안 투표 절차를 생략했다. 통상의 절차를 따랐다가는 버그가 외부에 알려지게 되고, XRP 생태계 자체가 위험에 처할 만큼 긴박하다고 판단한 것.
XRPL은 통상 거래 처리 규칙을 변경할 때 신뢰 검증자의 80%를 초과하는 찬성을 확보하고 이를 14일간 유지해야 한다. 그러나 이번에는 정상적인 절차를 밟는 동안 취약점이 외부에 노출될 위험이 있다고 판단했다.
개발진은 수정된 소스코드를 공개하지 않은 상태에서 실행 파일인 바이너리를 먼저 배포했다. 취약점의 구체적인 공격 방법이 알려지기 전에 네트워크를 보호하기 위한 조치였다.
긴급 배포 당일 기본 신뢰 검증자 목록에 포함된 검증자의 80% 이상이 새 버전을 적용했다. 문제는 소스코드 자체를 보지 못하고 업데이트를 해야만 했다는 것. 깜깜이 검증이었다는 점에서 향후 논란이 예상되는 대목이다.
이 과정에서 탈중앙화 원칙을 훼손했다는 비판이 제기됐다. 일부 업계 관계자들은 소스코드를 공개하지 않은 업데이트와 검증자 투표 생략이 네트워크의 투명성을 훼손할 수 있다고 지적했다.
반면 개발진은 무단 발행으로 원장의 신뢰가 훼손되는 상황을 막기 위해 신속한 대응이 불가피했다는 입장이다.
10월9일 공식 보고서 공개… 실제 악용 흔적 없어
긴급 패치가 배포된 지 14일 만인 10월9일, 개발진은 공식 보안 보고서와 수정된 소스코드를 공개했다.
보고서에는 취약점이 발생한 원인과 공격 재현 결과, 긴급 업데이트 과정 등이 담겼다.
개발진은 결제 엔진과 XRP 공급량 검증 과정의 계산 방식을 개선했다고 설명했다. 향후 유사한 오류가 발생하더라도 무단 발행을 차단할 수 있도록 방어 체계를 강화했다.
리플엑스와 XRPL 재단이 공개 네트워크의 과거 거래 기록을 조사한 결과, 해당 취약점이 실제로 악용된 정황은 발견되지 않았다.
실제 공격이 없었다는 사실과 취약점 자체의 위험성은 별개다. 이번 결함은 XRP의 고정 공급량을 위협할 수 있었으며, 개발진의 시험 환경에서 공격 가능성이 확인됐다.
이번 사건은 11년 가까이 운영된 블록체인에서도 핵심 경제 구조를 흔들 수 있는 소프트웨어 결함이 발견될 수 있음을 보여준다. 보안 위협에 신속하게 대응하는 능력과 탈중앙화 네트워크의 투명성을 어떻게 조화시킬 것인지라는 과제도 남겼다.