간단히 말하면, 공격자는 일정 기간 동안 온체인에서 공개적으로 준비한 후, 한 번의 EIP-7702 위임으로 바이낸스 핫월렛 Binance 14를 자신의 컨트랙트로 바꾸고 새벽에 청소를 시작했습니다. 날이 밝을 무렵, 바이낸스 핫월렛과 관련된 주소에서 약 56.43억 달러가 유출되었으며, 이더리움, 비트코인, 트론 및 여러 L2를 가로질렀습니다. Tether, Circle, Ripple, World Liberty 등 발행사들이 연합하여 약 25.4억 달러를 동결했으며, 이는 유출액의 약 45%에 해당합니다. 그리고 현재까지 그 악의적인 위임은 여전히 취소되지 않았습니다.
바이낸스의 현재 공식 입장은 항상 잠재적 보안 문제를 조사 중이며 사용자 자금은 완전히 안전하다는 것입니다.
이더리움: 35.28억 달러
비트코인: 14.49억 달러
트론: 6.28억 달러
Arbitrum + Optimism + Base: 합계 약 3,800만 달러
Tether 약 15.67억 USDT, Circle 약 8.23억 USDC (둘 합계 23.16억), 여기에 Ripple 약 2억 RLUSD, World Liberty Financial 약 2,780만 USD1 + 200만 WLFI를 더해 25.4억을 이룹니다.
10월 28일부터: 공격자 발신 주소 0x7C86…5CA0가 잇따라 약 0.1 ETH의 Tornado Cash 출금 3건을 받았으며, 이는 가스비 지불 전용이었습니다. 이 주소는 이전에 바이낸스와 아무런 관계가 없었습니다.
10월 29일 10:29: 첫 번째 청소 컨트랙트 0x19be…f2bf를 배포했습니다. 이후 폐기되었습니다.
10월 29일 21:51: 두 개의 테스트 월렛에 EIP-7702 위임을 기록했습니다. 이 두 월렛은 모두 바이낸스 것이 아니며, 공격자가 직접 찾은 외부 월렛입니다.
10월 29일 22:20 및 22:24: 1, 2차 리허설로, 청소 호출을 통해 이 두 테스트 월렛을 비웠습니다. 첫 번째는 문제가 있었던 듯하며, 4분 후 다시 시도했습니다.
10월 29일 23:59: 수정된 계약 0x63e8…6fAe 배포. 최종적으로 바이낸스에서 적용됨
10월 30일 00:21 ~ 00:30: 3차 리허설, 세 번째 지갑으로 교체, 두 번의 위임과 한 번의 스윕.
이후 3시간 51분간 정적. 실행 직전까지.
04:21:00: EIP-7702 유형 거래 제출, 0x63e8…6fAe의 코드를 Binance 14에 위임, 주소는 0x28C6…1d60. 동일 거래에 50개의 승인을 넣었으나 nonce에 적중한 것은 1개뿐.
04:24:23: 메인 스윕 발생. Binance 14가 직접 호출을发起하여 0x5227…2f8c로 167,464 ETH와 63종 토큰 전송, 그중 약 16.15억 USDT 포함. 수수료 0.0004 ETH, 1달러 미만.
04:24:47: Binance 16이 동일 주소로 28,005.6 ETH 추가 전송, 거의 끊김 없이 연결.
04:30 ~ 04:33: USDT 분할 시작, 5억을 0x9749…C762로, 2억을 0x0Ddf…697e로 전송.
04:38: 195,460 ETH를 일시에 0x8532…43D4로 이체. 단일 최대 이체.
04:41 및 04:59: 공격자가 Binance 14에서 다른 함수 0x043ff9d2 호출; 같은 분에 Hot Wallet 34가 각각 7.8억 및 4,300만 USDC 전송. 공격자가 Binance 14의 해당 계약 권한을借用.
05:04: 또 한 번의 스윕, 1,699.92 ETH 스윕.
05:22 ~ 06:02: 분산 처리. RLUSD 8,850만, UNI 702만, PEPE 7.77조, wBETH 29,934, ENA 2.175억을 각각全新 주소로 전송, 각 주소에 사전 0.5~1 ETH를 Gas로 입금.
05:44: 이 과정에서 Binance 14에서 또 한 번 성공적으로 스윕이 이루어져, 방금 입금된 신규 예치금이 쓸려나갔다.
위임에서 첫 스윕까지는 단 3분 24초밖에 걸리지 않았다. 그러나 바이낸스의 리스크 관리 시스템은 아무런 차단 조치를 취하지 않았다.
이후 5시부터 바이낸스와 각 프로젝트 측은 자산 동결을 시작했는데, Tether 약 15.67억 USDT, Circle 약 8.23억 USDC(둘 합계 23.16억), 여기에 Ripple 약 2억 RLUSD, World Liberty Financial 약 2,780만 USD1 + 200만 WLFI를 더해 총 25.4억이 되었다.
EIP-7702는 이더리움 Pectra 업그레이드에서 도입된 기능으로, 일반 지갑(EOA)이 일시적으로 스마트 컨트랙트의 코드를 임대할 수 있게 한다. 지갑 주인이 한 번의 승인에 서명하면, 이후 해당 주소에 대한 모든 호출은 그 외부 코드를 실행하게 된다.
공격자의 사용 방식은 다음과 같다:
컨트랙트 0x63e8…6fAe를 배포하는데, 그 안에는 단 하나의 함수 sweep(address pool, address[] depositors)만 있다——ETH와 지정된 일련의 토큰을 전부 지정 주소로 전송하는 함수다.
Binance 14의 승인 서명을 받아, 이 코드를 바이낸스 핫월렛에 "설치"한다.
설치 후 3분 24초 뒤, 바이낸스 핫월렛 주소에서 직접 스윕 컨트랙트를 호출한다.
그래서 외부에서 보기에는 바이낸스 핫월렛이 스스로 돈을 송금한 것처럼 보인다. 체인상에서는 "외부 주소가 자산을 가져갔다"는 동작이 전혀 보이지 않고, 마치 Binance 14가 정상적인 출금을 하는 것처럼 보인다.
공격자는 Binance 14의 실시간 nonce를 알지 못했다(그 지갑은 여전히 계속 거래를 보내고 있었다). 그래서 그는 한 트랜잭션에 50개의 승인을 넣고, nonce를 N부터 N+49까지 배열하여 그중 하나가 맞기를 걸었다. 결과적으로 하나만 효력을 발휘했다.
BlockBeats 공식 커뮤니티에 참여하세요:
Telegram 구독 그룹:https://t.me/theblockbeats
Telegram 토론 그룹:https://t.me/BlockBeats_App
Twitter 공식 계정:https://twitter.com/BlockBeatsAsia