기술 분석

Beosin:FTX 가스 도난 공격 사건 기술 분석

ChainCatcher 메시지, Beosin 보안 팀은 FTX가 Gas 도난 공격 사건에 대해 분석한 결과, 그 중 하나의 공격 거래를 예로 들었습니다 (0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69). 공격자는 먼저 체인에 공격 계약을 배포했습니다 (0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3).FTX 핫 월렛 주소는 공격 계약 주소로 소액의 자금을 이체하고, 공격 계약 (0xCba9...7FD3)을 이용해 대량의 서브 계약을 생성합니다. 전체 공격 과정에서 많은 계약이 생성되었고, 서브 계약이 실행된 후에는 자가 파괴됩니다.다음으로 서브 계약의 fallback() 함수가 Xen 계약에 대해 발행 요청을 시작합니다. 아래 함수에서 claimRank() 함수는 시간 제한(최소 1일)을 입력하여 발행을 진행하며, 발행 조건은 호출 gas 비용만 지불하면 되고, 다른 비용은 없습니다. claimMintReward() 함수는 인출 함수로, 이 함수는 시간 제한이 도달했는지를 판단합니다(이번 해커가 설정한 시간 제한은 최소 1일)면 무조건 인출할 수 있습니다. 그러나 이번 호출 과정에서 거래 발신자는 FTX 핫 월렛 주소이므로, 전체 호출 과정의 Gas는 FTX 핫 월렛 주소가 지불하고, Xen 발행 주소는 공격자 주소입니다.앞의 세 단계는 여러 번 반복되며, 매번 반복 과정에서 만료된 토큰을 인출하고 동시에 새로운 발행 요청을 시작합니다.게시 시점까지 Beosin Trace를 통해 추적한 결과, FTX 거래소는 81ETH를 잃었고, 해커는 DODO와 Uniswap을 통해 XEN Token을 ETH로 교환하여 이전했습니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축