December 02, 2025
면책 조항(Disclaimer)
본 보고서는 온체인 상 공개된 트랜잭션 및 주소 데이터를 기반으로 작성되었으며, 데이터 수집·검증 시점 및 사용한 데이터 소스의 한계로 인해 일부 수치와 추정값에는 일정 수준의 오차가 존재할 수 있습니다. 또한 향후 추가적인 온체인 데이터, 거래소 발표 정보, 수사 결과 등이 확보될 경우, 본 보고서의 분석 내용과 평가는 변경될 수 있습니다.
2025년 11월 27일 04시 42분(KST), 국내 최대 가상자산 거래소인 Upbit의 Solana 계열 핫월렛(Hot Wallet) 인프라에서 비정상적인 출금 트랜잭션이 탐지되었습니다. 온체인 포렌
식과 공개 자료를 교차 분석한 결과, 이번 사고는 외부 공격자가 핫월렛의 서명 키(Signing Key) 또는 서명 권한에 해당하는 인프라에 비인가로 접근하면서 발생한 것으로 판단됩니다.
콜드월렛(Cold Wallet)이나 별도 보관 자산은 이번 사고의 직접적인 영향을 받지 않았고, 피해는 온라인 상태의 핫월렛에 보관 중이던 자산으로 제한되었습니다.
총 피해 규모는 약 445억 원 수준으로 추정되며, 피해 자산은 모두 Solana 네트워크 기반의 24개 SPL 토큰으로 구성되어 있습니다. 이 중 ‘솔레이어(LAYER)’ 토큰 약 23억 원 상당은
발행 재단의 신속한 협조로 동결되면서 최종 유출 피해액에서는 제외되었습니다.
공격자는 탈취 자산을 현금화하고 추적·동결 리스크를 줄이기 위해, 체인 간 이동(Chain-Hopping)과 프라이버시 프로토콜을 결합한 고도화된 세탁 전술을 사용했습니다.
전체 흐름은 아래 네 단계로 요약할 수 있습니다.
사건과 관련된 주요 정량 지표는 Upbit 측 공개 내용과 온체인 데이터를 교차 검증하여 정리했습니다.

공격자는 추적을 어렵게 만들기 위해, 탈취 자금을 다단계로 쪼개고 서로 다른 인프라를 조합하는 방식을 택했습니다. 우리가 확인한 주요 단계는 다음과 같습니다.
이번 사건의 한 가지 특징은 특정 메이저 자산(BTC, ETH 등)만 노린 것이 아니라, 유동성과 시가총액이 제각각인 24종의 Solana 기반 토큰을 한 번에 쓸어갔다는 점입니다.
이는 공격자가 자산 선택에 별도의 필터를 두지 않고, 해당 핫월렛에서 접근 가능한 자산을 최대한 회수하는 방향으로 움직였음을 의미합니다.
아래 데이터는 탈취된 자산의 전체 목록입니다. 공격자는 이 다양한 자산을 현금화하기 위해 각 토큰의 유동성 상황에 맞는 매도 전략을 수립해야 했을 것입니다.

인텔리전스 관점에서 주목할 부분은 다음과 같습니다.
유동성 제약이 큰 자산
스테이블코인의 포함
공격자의 Solana 상 첫 번째 목표는, 종류가 너무 많은 잡다한 토큰을 유동성과 호환성이 높은 자산(USDC, WSOL 등)으로 정리하는 것이었습니다.
이후 Ethereum으로의 브릿징 을 염두에 둔 준비 단계라고 볼 수 있습니다.
공격자는 단일 DEX에 의존하지 않고, 여러 서비스를 병행하면서 총 7,646건의 스왑 트랜잭션을 발생시켰습니다.

분석 – Jupiter 활용 이유
Jupiter는 Solana 내 주요 DEX들의 유동성을 묶어, 주문을 여러 경로로 나누어 처리하는 애그리게이터입니다. 대량 매도 시 발생하는 가격 충격을 줄이는 데 최적화되어 있습니다. 공격자의 입장에서 보면,
Jupiter처럼 주문을 쪼개고, 여러 풀을 동시에 활용해주는 애그리게이터는 사실상 필수적인 선택지에 가까웠습니다. PUMP_AMM 사용 비중이 18.6%에 이른 것도, 탈취된 자산 중 PUMP 계열 밈코인이 적지 않았다는 점을 뒷받침합니다.
자산별 트랜잭션 패턴을 보면, 어떤 토큰이 실제로 “처리하기 까다로웠는지”를 엿볼 수 있습니다.

특히 WSOL 관련 트랜잭션이 2,689건으로 과다하게 발생한 점은, 다수의 토큰이 직접 USDC로 가지 못하고
Token → WSOL → USDC 순으로 2단계 혹은 그 이상의 경로를 거쳤음을 의미합니다.
이 과정 자체가 트랜잭션 그래프를 복잡하게 만들고, 결과적으로 포렌식 분석에 필요한 시간을 늘리는 부수 효과를 가져옵니다.
Solana 상에서 어느 정도 “정리”를 마친 자금은 Allbridge를 통해 Ethereum으로 옮겨졌습니다. 이는

Allbridge를 통해 Ethereum으로 유입된 자금은 요약하면 다음과 같습니다.
Solana에서 이미 USDC 비중을 키워둔 상태였지만, Ethereum으로 넘어오는 과정에서 일부는 USDT로 전환되었습니다.
이는 Allbridge 유동성 풀 구조상 자동으로 발생했을 가능성과, 공격자가 스테이블코인을 분산해 리스크를 나누려 했을 가능성을 동시에 염두에 둘 필요가 있습니다.
여기서 눈에 띄는 부분은 “서둘러 한 번에” 옮기지 않았다는 점입니다.
유동성 관리 차원:
모니터링 회피:
Ethereum으로 넘어온 자금은 먼저 19개의 1차 지갑으로 나뉘어 유입된 뒤, 여기서 다시 11개의 2차 지갑으로 이동했습니다.
이후 일부는 Railgun으로 편입되어 추적이 끊기는 구조입니다.
이 19개 지갑은 Allbridge에서 직접 자금을 수령한 1차 관문입니다. 각 지갑의 보유 ETH는 아래와 같습니다.

조치 상황을 보면, 19번 지갑에서 보유 중이던 USDT 약 10,159달러(약 1,400만 원 수준)가 Tether사에 의해 동결되었습니다.
이는 일부 주소에 대한 블랙리스트 등재가 이뤄졌음을 보여주지만, 나머지 상당수 자산은 이미 ETH로 변환된 상태여서 동결 가능성이 매우 낮습니다.
1차 지갑의 자금 일부는 다시 2차 지갑 11개로 이체되었습니다. 이는 온체인 상 트랜잭션 그래프를 복잡하게 만들고, “단일 지갑 – 단일 출구” 식의 단순한 패턴을 의도적으로
피하려는 움직임으로 해석됩니다.

Ethereum으로 진입한 뒤 공격자의 1차 목표는, 동결 가능성이 높고 추적이 비교적 쉬운 스테이블코인(USDC, USDT)을, 네이티브 자산인 ETH로 바꾸는 것이었습니다.
이 과정에서 우리가 특히 눈여겨본 부분은 CowProtocol의 활용 비중입니다.

6.2 CowProtocol 선택의 배경

CowProtocol이 전체 스왑 금액의 절반 이상을 차지한 것은 의미가 큽니다. 이는 공격자가 Ethereum 상 MEV(Miner/Maximal Extractable Value) 환경과 샌드위치 공격 구조를 상당 수준 이해하고 있었다는 방증입니다.
정리하면, 공격자는
현재까지 파악된 바에 따르면, 탈취 자금 중 상당수는 여전히 온체인 상에서 추적 가능한 상태로 남아 있습니다.
다만 약 409 ETH(대략 120만 달러 수준)는 Railgun 프라이버시 프로토콜로 유입되어, 이후 흐름을 정상적인 방법으로는 확인하기 어려운 상황입니다.
출처: CATV
Railgun은 Tornado Cash와 달리 zk-SNARKs 기반으로 설계된 프로토콜로, 단순 입금·출금 믹싱을 넘어 내부에서 프라이빗 스왑까지 지원합니다. 사용자가 자금을 예치하면 “실드된
잔액(Shielded Balance)”으로 관리되며, 외부에서는 누가 누구에게 얼마를 보냈는지 파악이 사실상 불가능합니다.
공격자가 Viewing Key를 공유하지 않는 이상, 온체인 포렌식만으로는 후속 흐름을 복원하기 매우 어렵습니다. PoI(Proof of Innocence) 등의 기법이 논의되고 있지만, 현실적으로는
Railgun 유입 이후는 “흐름 단절 지점”에 가깝다고 보는 것이 맞습니다.
특히 주목할 점은, 전체 탈취 규모 대비 Railgun으로 보낸 금액이 상대적으로 작다는 점입니다.
이는 공격자가 먼저 “테스트 송금”을 진행해
등을 점검한 뒤, 향후 상황을 보며 나머지 자금을 순차적으로 투입할 가능성을 시사합니다. 다시 말해, Railgun으로의 409 ETH 송금은 끝이 아니라 시작일 수 있습니다.
현재까지 파악된 자금 상태를 요약하면 다음과 같습니다.
· 대상: 17개
· 규모: 약 6,903.21 ETH
· 설명: 1차 브릿지 지갑 중 Railgun 전송분·동결분을 제외한 잔여 자산
· 대상: 11개
· 규모: 약 1,632.22 ETH
· 설명: 1차 지갑에서 파생된 2차 이동 분량
· 대상: 3개(경로 포함)
· 규모: 약 410.27 ETH
· 설명: Railgun에 편입되어 온체인 추적이 사실상 불가한 상태
· 대상: 1개
· 규모: USDT 10,159달러 상당
· 설명: Tether 측 동결 조치 완료
· 총 지갑 수: 32개
· 총 규모: 약 7,300 ETH 이상 (ETH 기준, 가격 변동에 따라 KRW 환산액 변동)
전체적으로 보면, 아직 상당한 양의 ETH가 특정 지갑들에 집중된 채로 남아 있으며, 공격자가 다음 수순을 준비 중인 “대기 단계”에 있다고 보는 것이 현실적입니다.

이번 사건은 단순한 키 유출 사고라기보다, Solana·Ethereum 양 체인의 DeFi 인프라를 종합적으로 악용한 지능형 가상자산 범죄 사례입니다. Jupiter, Allbridge, CowProtocol,
Railgun을 단계적으로 연결해 사용한 점에서, 공격자가 온체인 구조와 규제·동결 메커니즘을 충분히 이해하고 움직였다는 인상을 줍니다.
실무 관점에서 바로 필요한 대응은 아래와 같습니다.
2. Railgun 출금 패턴 상시 모니터링
3. Solana·브릿지·거래소 측 협조와 가스비 출처 역추적
4. 핫월렛 운영·키 관리 정책 재점검
정리하면, 아직 상당량의 ETH가 특정 지갑에 남아 있는 상태이며, 공격자는 시장과 수사기관의 관심이 느슨해지는 타이밍을 기다리며 “대기 모드”에 들어간 것으로 보입니다. 남은 약
6,900 ETH는 Railgun 또는 다른 프라이버시 툴로 추가 이동할 가능성이 매우 높습니다. 이 사건을 이미 끝난 해킹으로 보지 말고, 앞으로 수개월 이상 이어질 수 있는 중장기 추적 과제
로 전제하고 모니터링·협업 전략을 가져가는 것이 현실적인 접근입니다.
32 reads