애초에 북측이 탈취한 자금은 11개 블록체인에 분산돼 있었다. 바이낸스는 이번 공격이 단일 보안 침해 사건이 아니라 여러 단계에 걸쳐 진행된 조직적인 공격이었다고 설명했다.
지난 6월 바이낸스의 한 엔지니어가 변조된 인공지능(AI) 코딩 도구를 설치하면서 공격자들에게 지갑 관리팀의 정보가 노출됐다. 9월에는 공격자들이 채용 담당자를 사칭해 또 다른 엔지니어에게 접근했다. 이들은 가짜 채용 면접을 진행한 뒤 악성코드가 포함된 ‘과제’ 파일을 업무용 컴퓨터에 다운로드하도록 유도했다.
이후 공격자들은 바이낸스 내부 AI 도구를 이용해 다른 엔지니어들의 컴퓨터에도 접근했다. 결국 10월29일에는 이 접근 권한을 이용해 바이낸스의 지갑 서명 서비스까지 침투했다.
|
29일 자산 탈취는 세계협정시(UTC) 기준으로 오후 8시5분부터 11시56분까지 진행됐다. 탈취된 64억3000만달러 가운데 34억6000만달러, 약 54%는 USDT와 USDC 같은 스테이블코인이었다. 테더와 서클 같은 스테이블코인 발행사는 해당 토큰을 동결할 수 있다. 따라서 공격자의 최우선 과제는 스테이블코인을 이더리움(ETH)이나 트론(TRX)처럼 발행사가 동결할 수 없는 자산으로 교환하는 것이었다.
이더리움 네트워크에서 테더는 탈취된 USDT가 공격자 지갑에 도착한 지 37분 만에 동결 조치를 취했다. 그러나 동결이 이뤄지기 전에 공격자는 유니스왑 등 탈중앙화거래소(DEX)를 통해 4억3400만 USDT를 ETH로 교환하는 데 성공했다. 또 5990만 USDT를 담보로 탈중앙화 대출 프로토콜 아베(Aave)에서 1만9762 ETH를 빌렸다. 트론 네트워크에서는 테더가 나머지 자산을 동결하기 전에 선스왑(SunSwap)을 통해 2억3400만 USDT를 TRX로 교환했다.
반면 서클은 탈취된 8억2300만 USDC가 다른 자산으로 교환되기 전에 전액을 동결했다. 이에 현재까지 동결되거나 압류된 자산은 총 28억5000만달러다. 약 7억8600만달러 상당의 스테이블코인은 동결 조치가 이뤄지기 전에 다른 자산으로 전환됐다. 같은 30분 동안 탈취된 비트코인 1만8270개(BTC)는 19개 주소로 분산됐다. 이 비트코인은 이후 이동하지 않았다.
최초 탈취 이후 약 1시간이 지나자 트론 네트워크의 자금 이동은 약 5시간 동안 거의 중단됐다. 그러나 하루 뒤인 30일 UTC 오전 2시19분, 하나의 자금 분배용 지갑에서 공격자가 보유한 6억8460만 TRX를 수백 개의 신규 주소로 소액씩 보내기 시작했다. 이후 자금은 약 7700개 주소로 확산됐다.
이어진 2시간 30분 동안 공격자는 서로 다른 6개의 크로스체인 브리지를 통해 최초의 자금 이전을 실행했다. 대부분 소규모 시험 거래였다. 크로스체인 브리지는 한 블록체인의 자산을 받아 다른 블록체인에서 대응하는 자산을 지급하는 서비스다.
트론에서 이동한 TRX는 거의 대부분 이더리움 네트워크의 ETH로 전환됐다. 현재까지 최소 1억4700만달러가 트론 네트워크 밖으로 이전됐다. 이더리움으로 유입된 ETH는 새로 생성된 주소들로 다시 전송됐고, 이후 해당 주소에서는 추가 이동이 발생하지 않았다.
현재 약 6만8300 ETH가 830개 가량의 소규모 주소에 분산돼 있다. 이들 주소 대부분은 각각 10~100 ETH를 보유하고 있다. 공격자가 보유한 ETH의 89%를 차지하는 상위 9개 주소에서는 30일 이후 자금 이동이 발생하지 않았다.
31일이 되자 공격자들은 새로운 자금세탁 경로를 추가했다. UTC 오전 3시36분부터 일부 TRX를 USDD로 교환하기 시작했다. USDD는 중앙화된 주체가 자산을 동결할 수 없다는 의미에서 스스로를 ‘동결 불가능(freeze-free)’ 스테이블코인으로 홍보하는 자산이다.
오전 5시18분부터는 한 주소에서 1억2800만 TRX를 저스트렌드(JustLend)의 대출 금고(vault)에 예치했다가 16개의 새로운 주소로 인출했다. 이 과정에서는 자금을 예치한 주소와 인출한 주소 사이에 직접적인 전송 기록이 남지 않는다.
자금 분배용 지갑의 처리 속도도 빨라졌다. 30일 대부분의 시간 동안 시간당 1200만 TRX 미만이었던 전송 규모는 31일 최대 시간당 3700만 TRX로 증가했다. 이러한 자금 이동은 평양 시간으로 이틀 밤 동안 계속됐다. 거래가 가장 활발했던 31일 UTC 오전 8시에는 공격자의 트론 지갑에서 한 시간 동안 약 1300건의 거래가 발생했다.
공격자들이 이용하던 크로스체인 브리지 중 하나인 토르체인(THORChain)은 31일 UTC 오전 11시34분 기술적 결함으로 대부분의 블록체인에서 스왑 거래를 중단했다. 그 전까지 공격자들은 토르체인을 통해 시간당 약 1000만 TRX를 입금하고 있었지만, 서비스 중단 직후 이러한 입금도 멈췄다.
그렇다고 자금세탁이 중단된 것은 아니었다. 공격자들은 다른 브리지로 이동했고, 자금 분배용 지갑의 거래량은 오히려 그날 늦게 최고치를 기록했다. 같은 날 저녁 미국 연방수사국(FBI)은 이번 해킹의 배후로 트레이더트레이터(TraderTraitor)를 지목했다. FBI는 공격자들의 지갑 주소를 공개하고 토르체인 노드 운영자와 다른 서비스 제공업체들에 관련 거래를 차단할 것을 촉구했다.
11월1일 UTC 오전 5시 무렵부터 트론 네트워크에서의 자금 이동은 대부분 중단됐다. 자금 분배용 지갑은 오전 5시33분 마지막 거래를 실행했다. 51시간 동안 총 1113건의 자금 전송이 이뤄진 뒤였다.
이후 다른 블록체인에서 움직임이 나타나기 시작했다. UTC 오전 7시부터 니어(NEAR)가 새로운 계정으로 이동했다. 오전 8시19분부터는 그동안 보관 상태에 있던 일부 ETH가 약 10 ETH씩 묶음으로 다시 이동하기 시작했다. 오전 9시 38분부터는 SOL 보유량의 약 절반이 새로운 주소로 옮겨졌고, 이후 소량씩 추가로 빠져나갔다. NEAR는 이후 더 이상 이동하지 않았다.
이날 탈취 자금에 대한 첫 번째 믹싱(mixing) 거래도 확인됐다. UTC 오전 5시55분부터 트론에서 유래한 자금이 비트코인으로 전환된 뒤 와비사비(WabiSabi)를 이용한 코인조인(CoinJoin) 거래에 투입되기 시작했다. 와비사비는 와사비월렛(Wasabi Wallet) 등에서 사용하는 프로토콜이다.
이날 늦게 보관 중이던 일부 ETH도 비트코인으로 교환됐으며, 대부분 같은 방식으로 이동했다.
11월2일 UTC 오전 6시2분까지 약 28 BTC, 당시 가치로 220만달러가 18건의 코인조인 거래를 거쳤다. 코인조인은 여러 사용자의 비트코인을 하나의 거래로 결합하는 방식이다. 이를 통해 투입된 비트코인과 거래 이후 나온 비트코인 사이의 가시적인 연결 관계를 끊을 수 있다.
이번 사건에서 확인된 코인조인 거래는 각각 101~491개의 입력값을 포함하고 있었다.
2일 새벽에는 탈취 이후 움직이지 않았던 XRP가 처음으로 이동했다. UTC 오전 2시12분부터 4시 사이에 총 2억3300만 XRP가 6개의 새로운 주소로 전송됐다. 해당 XRP는 이후 이 주소들에 그대로 남아 있다.
솔라나 네트워크에서는 공격자들이 일부 SOL을 USDC로 교환했다가 다시 SOL로 바꾸는 거래를 실행했다. 또한 트론에서 사용했던 방식과 마찬가지로 대출 금고를 이용해 SOL을 이동시켰다. 한 주소에서 자산을 예치하고 다른 주소에서 인출하는 방식이다.
이날 늦게 공격자들은 SOL을 비트코인으로 전환하기 시작했다. 여러 묶음의 SOL을 USDC로 매도한 뒤 이더리움으로 브리지하고, 다시 ETH로 교환한 다음 비트코인으로 바꾸는 과정을 거쳤다. 각 묶음의 전환에는 약 1시간이 걸렸다. 한 묶음은 5시간도 되지 않는 시간 동안 4개 블록체인을 거쳤다.
각 단계에서 USDC는 수분 내에 다음 주소로 이동했다. UTC 오후 12시58분에는 코인조인 거래가 한 차례 더 발생하면서 믹싱된 비트코인 규모가 약 28.2 BTC로 늘어났다. 트론에서는 공격자들이 USDD를 대출시장을 통해 이동시킨 뒤 다른 자산으로 교환하기 시작했다. 앞서 대출 금고를 이용했던 것과 같은 방식이었다.
3일에는 자금세탁 속도가 더욱 빨라졌다. UTC 오후 3시15분까지 약 13만7000 SOL, 당시 가치로 1280만달러가 최초 탈취 지갑에서 빠져나갔다. 자금은 수십 차례에 걸쳐 전송됐으며, 새로운 지갑들로 분산된 뒤 대출 금고와 유동성 스테이킹 서비스를 거쳐 매도되거나 비트코인으로 교환됐다.
트론에서는 약 70만 TRX를 보유한 지갑 하나가 완전히 비워졌다. 해당 TRX는 USDT와 USDD로 교환된 뒤 대출시장을 거쳐 최종적으로 비트코인으로 전환됐다. 이 과정에서 USDT가 한 지갑에 머무른 시간은 1분을 넘지 않았다. 소규모 ETH도 계속 비트코인으로 전환됐으며, 약 5 BTC가 추가로 코인조인에 투입됐다.
이날 오후까지 다른 탈취 자산에서 전환된 약 215 BTC, 당시 가치로 1700만달러가 새로운 비트코인 주소에 도착했다.
공격자들은 프라이버시 캐시(Privacy Cash)도 이용하기 시작했다. 프라이버시 캐시는 이더리움과 솔라나에서 운영되는 프라이버시 풀이다. 이 서비스에 자금을 예치하면 나중에 새로운 주소로 인출할 수 있으며, 예치와 인출 사이의 연결 관계가 블록체인상에 직접 드러나지 않는다.
3일 탈취 사건과 연관된 주소에서 약 41 ETH와 9600 SOL이 프라이버시 캐시에 예치됐다. 이들 자산의 합산 가치는 약 100만달러였다. 프라이버시 캐시는 2025년 8월 솔라나에서 출시된 토네이도캐시(Tornado Cash) 방식의 프로토콜이다. 가상자산 액셀러레이터 얼라이언스DAO(Alliance DAO)의 지원을 받았으며, 이후 이더리움과 다른 블록체인에도 서비스를 확대했다.
프라이버시 캐시는 스스로 규제 준수에 중점을 둔 서비스라고 설명하며, 온체인 위험 심사를 통해 악의적인 행위자의 이용을 차단한다고 주장한다. 다만 완전히 탈중앙화된 서비스는 아니다. 이더리움에서는 관리자 지갑이 스마트계약을 일시 중단하거나 업그레이드할 수 있다.
3일 늦은 밤과 4일 새벽, 공격자들은 11월1일부터 두 번째 주소에 보관돼 있던 나머지 SOL의 절반 가량인 약 48만5000 SOL을 두 차례에 걸쳐 최초 탈취 지갑으로 다시 이동시켰다. 이후 3일 UTC 오후 3시30분부터 4일 오전 9시7분까지 해당 지갑에서는 약 72만5000 SOL, 당시 가치로 6700만달러가 빠져나갔다.
이 자금은 총 204건의 거래를 통해 77개의 새로운 지갑으로 전송됐다. 상당 부분은 탈중앙화거래소와 시장조성자를 통해 USDC로 매도된 뒤 이더리움과 다른 블록체인으로 이동했다. 이후 대부분의 USDC는 ETH를 거쳐 비트코인으로 전환되거나 직접 비트코인으로 교환됐다.
약 2300 SOL은 추가로 프라이버시 캐시에 예치됐다. 현재 남아 있는 SOL은 약 5만6000개, 당시 가치로 약 500만달러에 불과하다.
토르체인은 3일 늦게 스왑 서비스를 재개했다. 이후 밤사이 약 4600 ETH, 당시 가치로 1070만달러가 토르체인을 거쳐 비트코인으로 전환됐다. 이 가운데 대부분은 탈취된 SOL을 매각해 확보한 자금이었다.
자금세탁의 최종 경로는 점차 비트코인으로 집중되고 있다. 다른 탈취 자산을 비트코인으로 전환해 새로운 주소에 보관한 규모는 약 470 BTC, 당시 가치로 3700만달러에 달한다. 이는 하루 전보다 두 배 이상 증가한 수치다.
공격자들은 이미 알려진 여러 자금세탁 기법을 조합해 사용했다. 개별 기법 자체가 새로운 것은 아니지만, 여러 방식을 결합하면서 자금 추적의 난도가 크게 높아졌다.
첫째, 수천 개의 신규 주소로 자금을 분산한다. 자금을 여러 주소로 나누면 추적해야할 거래 건수가 급격히 늘어난다.
둘째, 브리지와 크로스체인 스왑을 이용해 블록체인 사이를 이동한다. 브리지에 자산을 예치하는 거래와 다른 블록체인에서 자산을 지급받는 거래는 서로 다른 네트워크에서 별도로 발생한다. 일부 자금은 불과 몇 시간 만에 4개 블록체인을 거쳤다.
셋째, 탈중앙화거래소를 통해 자산 종류를 계속 바꾼다. 추적 대상이 되는 자산 자체가 계속 달라지기 때문에 거래 흐름을 파악하기가 어려워진다.
넷째, 디파이 대출 금고와 유동성 스테이킹 서비스를 이용한다. 트론과 솔라나에서 이러한 서비스를 거치면 자금을 보내는 주소와 받는 주소 사이에 직접적인 전송 기록이 남지 않을 수 있다.
다섯째, 코인조인과 프라이버시 풀을 활용한다. 비트코인은 코인조인을 통해, ETH와 SOL은 프라이버시 캐시를 통해 믹싱한다. 두 방식 모두 여러 사용자의 자금을 한데 모아 예치된 자금과 인출된 자금 사이의 가시적인 연결 관계를 끊는다.
자금을 잘게 나누는 것은 다른 측면에서도 유리하다. 소액 거래는 시장가격에 큰 영향을 주지 않으면서 스왑하거나 브리지를 통해 이동시킬 수 있다. 또한 거래소의 입금 모니터링 시스템에서 상대적으로 눈에 덜 띈다. 공격자는 원하는 속도에 맞춰 소규모 거래를 반복하면서 자금세탁을 진행할 수도 있다.
4일 UTC 오전 9시10분 기준 전체 탈취액 64억3000만달러 가운데 28억5000만달러는 동결됐다. 약 32억1000만달러는 여전히 탈취 사건과 연관된 주소에 남아 있다. 이 가운데 대부분은 아직 본격적인 자금세탁 과정을 거치지 않았다.
대표적인 자산이 최초 탈취된 비트코인과 상위 9개 주소에 보관된 ETH다. 이들 자산은 여전히 북한이 보유하고 있을 가능성이 매우 높다. 다만 이미 자금세탁이 진행 중인 자산까지 북한이 직접 통제하고 있다고 단정할 수는 없다. 과거 북한은 탈취한 자금을 중국의 자금세탁 네트워크에 넘긴 사례가 있다. 온체인 데이터만으로는 이번 사건에서도 같은 일이 발생했는지 확인할 수 없다.
약 1600만달러는 2026년 9월 발생한 비트겟(Bitget) 해킹 사건의 탈취 자금도 보관하고 있는 주소들로 이동했다. 비트겟 해킹 역시 트레이더트레이터의 소행으로 추정된다.
현재까지 실제 현금화된 자금은 극히 적은 것으로 추정된다. 지금까지 발생한 거래 대부분은 자산 전환에 해당한다. 즉 탈취 자금의 종류는 달라졌지만, 여전히 공개 블록체인상의 관련 주소에 남아 있다는 의미다.
공격자가 이 자금을 실제로 사용할 수 있는 돈으로 바꾸려면 거래 상대방이 필요하다. 중앙화 거래소나 장외거래(OTC) 중개업체 등이 대표적이다. 바로 이 지점에서 탈취 자금의 흐름을 확인하고 현금화를 차단할 수 있다.
작년 2월 바이비트 해킹 사건 이후 북한은 탈취한 49만9000 ETH 전량을 10일 만에 세탁했다. 대부분의 자금은 비트코인으로 전환됐다. 그러나 실제 현금화에는 수개월이 걸렸다. 당시 바이비트에서 탈취된 자금은 최종적으로 트론 네트워크의 USDT로 전환된 뒤 중국의 장외거래 서비스로 추정되는 경로를 통해 현금화됐다.
이번 바이낸스 해킹 자금의 세탁 속도는 현재까지 바이비트 사건보다 느리다. ETH와 BTC는 발행사가 동결할 수 없기 때문에 공격자가 서둘러 이동시킬 이유가 없다. 또한 탈취 자금 규모가 바이비트 사건의 두 배를 넘기 때문에 대규모 자금을 빠르게 이동시키면 스왑 과정에서 상당한 손실이 발생할 수 있다.
FBI가 공격자들의 지갑 주소를 공개한 만큼 관련 서비스 제공업체들도 자금 흐름을 감시하고 있다. 엘립틱은 공격자들이 ETH를 여러 차례의 소규모 거래를 통해 비트코인으로 전환한 뒤, 수개월에 걸쳐 장외거래 중개업체를 통해 현금화할 것으로 예상하고 있다.
이미 대부분이 스왑·브리지·믹싱 과정을 거친 SOL은 이러한 경로를 따르고 있다. 상당 부분이 최종적으로 비트코인으로 전환됐다.
추가적인 자산 동결은 더 어려워질 전망이다. 이번 사건에서 탈취액의 44%를 동결한 것 자체가 이례적인 성과다. 바이비트 해킹 사건 당시에는 탈취 자금의 약 3%만 동결됐다. 앞으로 추가 동결 가능성이 가장 높은 대상은 자산 전환 과정에서 잠시 사용되는 스테이블코인이다.
이미 엘립틱의 경보를 통해 이러한 자금에 대한 동결 조치가 이뤄진 사례가 있다. 또 다른 차단 지점은 현금화 단계에서 이용되는 중앙화 서비스다. 탈취 자금이 실제로 현금화되려면 결국 중앙화된 서비스를 거쳐야 한다.
엘립틱은 브리지, 탈중앙화금융(DeFi) 프로토콜, 신규 지갑 주소를 가로지르는 자금 흐름을 추적하고 있다. 또한 자금이 이동할 때마다 거래 심사 데이터를 갱신한다. 이를 통해 컴플라이언스 담당자들이 모든 자금 이동 단계를 직접 추적하지 않아도 관련 위험을 확인할 수 있도록 지원한다.





