바이비트 강탈 사건: 북한이 47분 만에 15억 달러를 어떻게 강탈했나
2025년 2월 21일. 협정 세계시 오후 12시 30분.
Dubai에 본사를 두고 매일 수백억 달러 규모의 거래량을 처리하는 암호화폐 거래소 Bybit의 운영 센터에서 예정된 전송이 시작된다.
401,347개의 Ethereum 토큰. 당시 약 15억 달러 상당. 이 전송은 일상적인 절차였다. 보안을 위해 오프라인에 보관된 Bybit의 다중 서명 콜드 월렛에서 운영 유동성을 위해 사용되는 웜 월렛으로의 전송이었다.
세 명의 Bybit 선임 직원이 거래를 승인해야 한다. 그들은 각자의 워크스테이션에서 Safe{Wallet} 인터페이스를 연다. 그들은 목적지 주소를 검토한다. 그들은 거래 세부 정보를 검토한다. 모든 것이 예상된 작업과 일치한다.
그들은 서명한다.
1분 후, 401,000개의 Ethereum 토큰이 사라졌다.
웜 월렛으로 전송된 것이 아니었다. North Korea가 통제하는 주소로 전송된 것이다.
비밀번호는 도난당하지 않았다. 프라이빗 키는 유출되지 않았다. 자격 증명은 피싱되지 않았다. Bybit 자체 인프라는 침해되지 않았다. 세 명의 서명자는 절차에서 지시한 대로 정확히 실행했다. 그들이 화면에서 본 것을 승인했다.
그들이 화면에서 본 것은 거짓이었다.
이는 기록된 단일 암호화폐 절도 중 가장 큰 규모이다. Guinness World Records 분류에 따르면, 이는 역사상 가장 큰 은행 강도 사건으로, 2003년 Saddam Hussein이 Iraq 중앙은행에서 인출한 10억 달러를 넘어선다.
이는 웹사이트의 단일 파일을 변경하여 실행되었다.
이 공격은 Bybit을 직접 겨냥하지 않았다.
Bybit의 인프라(서버, 직원 워크스테이션, 서명 하드웨어, 내부 네트워크)는 전혀 침투되지 않았다. 독립적인 기업인 Sygnia와 Verichains가 수행한 모든 후속 포렌식 조사는 동일한 결과를 확인했다. Bybit은 해킹당하지 않았다.
해킹당한 회사는 Safe였다. 이전 명칭은 Gnosis Safe로, Ethereum 생태계에서 가장 널리 사용되는 다중 서명 지갑 플랫폼이다. Safe는 app.safe.global에서 웹 인터페이스를 유지하며, 대부분의 기관 Ethereum 보유자들이 이를 통해 대규모 거래의 다자간 승인을 관리한다.
Safe의 엔지니어링 팀은 약 30명으로 구성되어 있다. 그들 중 소수의 시스템 관리자 그룹이 라이브 프로덕션 코드베이스와 배포된 웹 인터페이스를 수정할 권한을 가지고 있다.
2월 21일 약 30일 전, 이 시스템 관리자 중 한 명이 표적이 된다.
공격 경로는 Federal Bureau of Investigation이 내부적으로 TraderTraitor로 추적하는 North Korean 부대의 전술과 일치한다. 이 부대는 North Korea의 Reconnaissance General Bureau 제3국에서 운영되는 더 큰 Lazarus Group의 하위 구성 요소이다.
구체적인 기술은 Safe나 수사관에 의해 공개되지 않았다. 가장 가능성이 높은 시나리오는 LinkedIn 연락처, 개발자 포럼 또는 기술 협력이라는 구실을 통한 고도로 표적화된 사회 공학적 접근 방식이다. 관리자는 합법적인 기술 아티팩트로 보이는 것을 다운로드한다. 이 아티팩트에는 악성 소프트웨어가 포함되어 있다.
악성 소프트웨어는 AWS 세션 토큰을 훔친다. 영구적인 자격 증명이 아니라 Safe의 개발자들이 일반적인 업무 시간 동안 Safe의 웹 인터페이스가 호스팅되는 Amazon Web Services에 접근하기 위해 사용하는 임시 인증 토큰이다.
이 토큰들을 사용하여 공격자들은 Safe의 AWS 계정에 접근한다.
그들은 데이터를 추출하지 않는다. 그들은 랜섬웨어를 배포하지 않는다. 그들은 인프라를 통한 측면 이동을 시도하지 않는다.
그들은 하나의 JavaScript 파일을 수정한다.
Safe의 Amazon S3 스토리지 버킷에서 제공되는 파일은 Bybit 서명자들의 브라우저에 거래 승인 인터페이스를 렌더링하는 프론트엔드 JavaScript이다.
수정된 버전은 포렌식 수사관들이 나중에 조건부 악성 논리라고 묘사하는 것을 포함하고 있었다.
대다수의 Safe 사용자들(일반 보유자, 다른 거래소, 탈중앙화 금융 프로젝트)에게는 수정된 JavaScript가 합법적인 버전과 동일하게 작동한다. 인터페이스는 정상적으로 렌더링된다. 거래는 예상대로 처리된다. 아무것도 잘못된 것처럼 보이지 않는다.
악성 코드는 특정 조건이 충족될 때만 실행된다.
이 조건들은 Bybit을 위해 정밀하게 설계되었다.
코드는 다음을 확인한다. 이 세션이 세 가지 특정 지갑 주소 중 하나에 대해 인증되었는가? 제안되는 거래가 Bybit의 Ethereum 콜드 월렛에서 전송되는 것인가? 두 조건이 모두 참이면 진행한다.
두 조건이 모두 참이면, 악성 JavaScript는 서명자에게 표시되기 직전에 거래 데이터를 가로챈다. 거래 논리를 대체한다. 서명자들이 화면에서 보는 것(목적지 주소, 금액, 작업 유형)은 합법적으로 의도된 전송과 시각적으로 동일하게 유지된다.
그들이 실제로 서명하고 있는 것은 North Korea가 통제하는 컨트랙트에 대한 `delegatecall`이었다.
Ethereum에서 `delegatecall`은 한 스마트 컨트랙트가 다른 컨트랙트의 컨텍스트에서 코드를 실행할 수 있도록 하는 기본 기능이며, 호출자(caller)의 저장 공간과 자금에 대한 완전한 접근 권한을 부여한다. 서명자가 `delegatecall`을 포함하는 거래를 승인할 때, 그들은 단순히 자금을 전송하는 것이 아니다. 그들은 호출된 컨트랙트에 호출하는 지갑에 대한 완전한 통제권을 부여하는 것이다.
자신들이 일상적인 전송이라고 믿었던 것을 승인함으로써, 세 명의 Bybit 서명자는 North Korean이 통제하는 컨트랙트에 자신들의 콜드 월렛에 대한 완전한 소유권을 부여한 것이다.
공격자는 그 후 지갑을 비웠다.
401,347개의 Ethereum 토큰. 15억 달러.
세 명의 서명자 모두 자신의 계정에 다단계 인증을 활성화했다. 세 명 모두 활성 하드웨어 보안 키를 가지고 있었다. 이 모든 것은 중요하지 않았다. 기만은 인증보다 상위 계층에서 일어났다. 즉, 서명자 자신의 눈이 승인하도록 요청받은 것을 해석하는 계층에서 발생한 것이다.
거래가 Ethereum 메인넷에 기록된 지 2분 후, Safe 웹사이트의 악성 JavaScript는 삭제되었다.
수정된 파일은 합법적인 버전으로 대체되었다. app.safe.global을 방문하는 모든 후속 방문자는 깨끗한 코드를 받게 되었다. 라이브 환경에서 증거는 사라졌다.
그러나 Safe의 인프라가 파일이 제공된 유일한 곳은 아니었다. Internet Archive가 유지 관리하는 웹의 공공 아카이브인 Wayback Machine 아카이브는 악성 버전이 활성 배포 기간 동안 캡처했다. 수사관들이 공격을 재구성할 때, 이 아카이브된 파일은 핵심적인 포렌식 증거가 되었다. 공격자들은 공공 웹 아카이브가 자신들의 익스플로잇 사본을 조용히 만들고 있었다는 사실을 예상하지 못했던 것이다.
Bybit의 탐지 시스템은 몇 분 내에 이상 징후를 감지했다. CEO Ben Zhou는 몇 시간 내에 절도 사실을 공개적으로 확인했다. 블록체인 분석 회사들은 도난당한 Ethereum을 실시간으로 추적하기 시작했다.
자금 세탁 작업은 이미 시작되었다.
North Korea의 암호화폐 자금 세탁 방법론은 성숙하다.
절도 발생 후 첫 48시간 이내에 블록체인 분석가들은 약 1억 6천만 달러 상당의 Ethereum이 탈중앙화 거래소와 크로스체인 브릿지를 통해 성공적으로 세탁되었다고 추정한다. 자산은 변환되고, 분할되고, 프라이버시 프로토콜을 통해 혼합되며, 수천 개의 블록체인 주소에 걸쳐 재구성된다.
선호되는 전환 대상은 Bitcoin이다.
Bitcoin의 거래 모델은 미사용 거래 출력(Unspent Transaction Outputs)을 사용한다. 이는 모든 거래를 물리적 현금과 유사하게 개별 단위로 취급하는 구조이다. Bitcoin을 통해 특정 달러 가치를 추적하는 것은 많은 주소에 걸쳐 개별 UTXO를 추적해야 하므로, Ethereum 계정을 추적하는 것보다 기하급수적으로 더 복잡한 포렌식 작업이다.
FBI가 TraderTraitor로 지정한 North Korea의 자금 세탁 부대는 도난당한 Ethereum의 대부분을 첫 주 이내에 Bitcoin으로 전환한다.
FBI는 공격 5일 후인 2025년 2월 26일에 공개 서비스 발표를 발행하여, 이 절도를 공식적으로 North Korea의 소행으로 지목했다. FBI는 자금 세탁 인프라의 일부로 식별된 51개의 Ethereum 주소를 공개했다. FBI는 거래소, 탈중앙화 금융 플랫폼, 블록체인 인텔리전스 회사들에게 해당 주소에서 파생된 거래를 차단할 것을 촉구했다.
국가 지원 사이버 공격 수사의 기준으로 볼 때, 이 귀속은 신속하게 이루어졌다. 이는 패턴 매칭을 통해 가능했다.
Bybit의 도난당한 자금을 이동하는 데 사용된 주소들은 특정 지점에서 이전 암호화폐 절도 사건(2024년 Phemex 절도, 2024년 BingX 절도, 2023년 Poloniex 절도)에 사용된 주소들과 겹친다. 블록체인 인텔리전스 회사인 Elliptic과 TRM Labs는 독립 수사관 ZachXBT와 함께 며칠 내에 이러한 중복을 확인했다.
동일한 운영자들이 반복되는 강도 사건에서 동일한 자금 세탁 인프라를 운영하고 있었다. 인프라가 그들의 서명이었다.
규모에 대한 맥락.
여러 블록체인 인텔리전스 회사에 따르면, Lazarus Group과 그 하위 구성 요소들은 다년간에 걸쳐 약 34억 달러에서 60억 달러 이상의 암호화폐를 훔쳤다. 2024년에만 North Korean 관련 절도가 20억 달러 이상을 차지했다.
Bybit의 15억 달러는 단일 작전으로 탈취되었으며, 다음으로 큰 단일 강도 사건인 2024년 Japan의 DMM Bitcoin 거래소에서 3억 8백만 달러가 도난당한 사건보다 5배나 많다.
이 자금은 자금 세탁 네트워크를 통해 Democratic People's Republic of Korea 정부가 통제하는 계좌로 흘러들어간다. Treasury Department 지정은 이러한 계좌들이 North Korea의 탄도 미사일 개발 및 핵 프로그램을 포함한 무기 프로그램을 자금 조달한다는 것을 반복적으로 입증해왔다.
Bybit은 이 사건에도 불구하고 살아남았다. 회사는 지급 능력이 있었다. 절도 발생 후 몇 시간 내에 CEO Ben Zhou는 예비금을 보충하기 위해 브릿지 대출과 다른 기관 투자자들로부터의 전략적 유입을 조달했다. 고객 자금은 보호되었다. 예치된 자산을 잃은 사용자는 없었다.
거래소는 회수된 자금의 최대 10%를 추적하거나 압수하는 데 도움을 주는 사람들에게 제공하는 회수 현상금 프로그램을 시작했다.
도난당한 Ethereum의 대부분은 회수되지 않았다.
이 사건 파일의 미해결 요소들은 구조적인 것이다.
Bybit은 암호화폐 보관 모범 사례의 기준으로 볼 때 아무런 잘못도 하지 않았다. 예비금을 위해 콜드 스토리지(cold storage)를 사용했다. 전송을 위해 다중 서명 승인을 사용했다. 신뢰할 수 있는 타사 인터페이스 제공업체를 사용했다. 서명자들을 위해 하드웨어 보안 키를 사용했다. 업계가 권장하는 모든 방어적 통제를 Bybit은 구현했다.
공격은 Bybit의 통제 범위를 벗어난 계층을 침해함으로써 이 모든 것을 우회했다.
인터페이스 제공업체인 Safe는 수천 개의 기관 고객에게 서비스를 제공한다. 이들 고객 중 누구라도 표적이 될 수 있었다. Bybit이 선택된 이유는 공격자들이 초기 정찰을 통해 Bybit의 콜드 월렛 주소와 거래 패턴을 미리 파악했기 때문이다. 조건부 JavaScript는 이러한 특정 데이터 포인트를 중심으로 설계되었다.
근본적인 아키텍처적 약점은 특정적인 것이 아니라 일반적이다.
암호화폐 거래 서명에 사용되는 모든 웹 인터페이스는 정의상 디스플레이 조작의 잠재적 지점이다. 인터페이스가 호스팅 인프라, 콘텐츠 전송 네트워크, 소스 코드 저장소 또는 배포 파이프라인의 침해를 통해 미묘하게 수정될 수 있다면, 대부분의 구현에서 서명자는 자신이 실제로 서명하는 내용을 독립적으로 확인할 수 없다.
독립적인 거래 디스플레이를 갖춘 하드웨어 지갑은 부분적인 완화책이다. 그러나 많은 하드웨어 지갑은 `delegatecall`과 같은 복잡한 거래 구조를 사람이 읽을 수 있는 형태로 디코딩하지 않는다. 그들은 원시 해시를 보여준다. 64자리 16진수 문자열을 응시하는 사용자는 검사를 통해 그 의미를 확인할 수 없다.
사용자는 인터페이스를 신뢰해야 한다.
North Korea는 2025년 2월 21일, 그 신뢰의 대가를 보여주었다.
Fragment Zero는 이 사건 파일을 추적할 것이다.
도난당한 자금은 전 세계 블록체인에 걸쳐 계속해서 조각나고 있다. 일부는 태그가 지정되고 제재된 주소에 정적으로 남아 있다. 일부는 계속해서 이동하고 있다. FBI가 식별한 51개의 주소는 여러 체인에 걸쳐 수백 개로 늘어났다.
Safe의 침해된 기계를 사용한 개발자는 공개적으로 이름이 밝혀지지 않았다. 그에게 도달하기 위해 사용된 구체적인 사회 공학적 공격 경로는 공개적으로 상세히 설명되지 않았다.
Lazarus Group은 계속 활동하고 있다. Bybit 절도 사건 이후 몇 달 동안, 더 작지만 여전히 상당한 규모의 절도 사건들(수천만 달러 규모)이 동일한 인프라와 관련되어 있었다.
더 근본적인 질문은 암호화폐가 도난당할 수 있는지 여부가 아니다.
더 근본적인 질문은 수십억 달러의 자산과 이를 승인하는 사람들 사이에 위치하며, 소규모 팀에 의해 유지 관리되고, 라이브 배포 파이프라인을 통해 업데이트되며, 웹 브라우저를 통해 사용되는 소수의 오픈 소스 인터페이스 프로젝트에 현재 얼마나 많은 금융 인프라가 의존하고 있는가이다.
이 사건에서, 역사상 가장 큰 절도를 막을 수 있었던 사람은 한 명이었다. 그리고 그는 무언가를 클릭했다.