2022년 10월 13일 Beosin의 EagleEye Web3 보안 모니터링 플랫폼에 따르면 FTX 거래소는 해커에게 대량의 XEN 토큰을 발행하기 위해 모든 가스 수수료를 지불하도록 조작되는 가스 도용 공격을 받았습니다.
이 공격에 대응하여 Coinlive는 싱가포르에 기반을 둔 Web3 보안 회사인 Beosin을 초청하여 익스플로잇의 구체적인 프로세스를 분석했습니다.
1. 이벤트 관련 안내
A few transactions of the attacks: 0xc96b84cd834655290aa4bae7de80a3c117cc19d414f5bcf2fb85b8c5544300890x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d690x6bada8e084f8d3b62311f0b6eda10f2690e7542dab75a0de436a640036bccf94
공격자의 주소 중 하나: 0x1d371CF00038421d6e57CFc31EEff7A09d4B8760
공격받은 계약 중 하나: 0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3
공격받은 FTX 핫월렛 주소: 0xC098B2a3Aa256D2140208C3de6543aAEf5A94444
2. 공격 흐름
예를 들어 하나의 특정 공격 트랜잭션에 초점을 맞출 것입니다.
첫 번째 단계에서 공격자는 체인에 악의적인 계약 주소를 배포했습니다(0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3).
두 번째 단계에서 해커는 FTX 핫 월렛 주소를 사용하여 소량의 자금을 악의적인 계약 주소(0xCba9...7FD3)로 이체한 다음 이 계약을 사용하여 일괄적으로 하위 계약을 생성했습니다.
전체 공격에서 많은 컨트랙트가 생성되고 하위 컨트랙트가 실행될 때마다 하위 컨트랙트가 자멸하게 되므로 아래 그림을 예시로 보여줍니다.
세 번째 단계에서 하위 계약의 fallback() 함수는 $XEN 계약에 대한 발행 요청을 시작합니다. claimRank() 함수는 채굴을 위한 기간(>= 1일)을 통과하며, 관련된 다른 비용 없이 호출 가스 요금만 지불하면 됩니다.
claimMintRewardAndShare()함수는 클레임을 위한 것으로, 기간 도달 여부만 판단하면(이 경우 해커가 1일로 설정) 아무 주소로 무조건 철회가 가능합니다. 하지만 이 호출 과정에서 트랜잭션 개시자는 FTX 핫월렛 주소이므로 전체 호출 과정의 가스는 FTX 핫월렛 주소로 지불되고 $XEN 민트 주소는 공격자의 주소입니다.
위의 세 단계는 한 주기로 계속 반복됩니다. 만료된 토큰을 인출하고 동시에 새로운 채굴 요청을 시작할 때마다.
3. 취약점 분석
이 공격은 주로 FTX가 수신자 계약 주소에 제한을 두지 않고 ETH의 가스 한도에 제한을 두지 않는다는 사실을 이용하여 해커가 이익을 위해 $XEN 토큰을 악용하고 발행할 수 있도록 합니다.
발행 당시 FTX 거래소는 총 81 ETH를 잃었고 해커는 $XEN 토큰을 DODO 및 Uniswap과 같은 분산형 거래소를 통해 ETH 전송으로 교환했습니다.
버신의 자금 이동 및 추적 차트