바이낸스 스마트 체인의 분산형 금융(DeFi) 프로젝트인 캐터필러 코인(Caterpillar Coin)은 2024년 9월 10일에 악용되어 약 140만 달러의 손실이 발생한 것으로 추산됩니다.
악용자는 세 가지 거래로 프로젝트에 대한 공격을 실행했습니다.
https://bscscan.com/tx/0x6262c0f15c88aed6f646ed1996eb6aae9ccc5d5704d5faccd1e1397dd047bc8a
https://bscscan.com/tx/0xce6e474dc9555ef971473fee19f87716f38ba01a0df39e78207b71eda134c420
https://bscscan.com/tx/0x2c123d08ca3d50c4b875c0b5de1b5c85d0bf9979dffbf87c48526e3a67396827
개요
분석을 위해 우리는 가장 큰 손실을 초래한 공격, 즉 세 번째 공격에 초점을 맞출 것입니다.
https://bscscan.com/tx/0x2c123d08ca3d50c4b875c0b5de1b5c85d0bf9979dffbf87c48526e3a67396827
공격자:
https://bscscan.com/address/0x560a77bc06dcc77eee687acb65d46b580a63eb45
취약한 계약:
https://bscscan.com/address/0x7057f3b0f4d0649b428f0d8378a8a0e7d21d36a7
익스플로잇 분석
공격은 간단한 패턴을 따른 것으로 보입니다. 공격자는 플래시론 사용하여 USDT-WBNB 쌍에서 테더 USDT(USDT) 빌린 다음, 생성자에서 실행되는 주요 공격 로직을 사용하여 여러 계약을 생성하기 위해 루프를 실행했습니다. 각 계약을 생성하기 전에 익스플로잇러는 생성자의 로직이 활용할 수 있도록 대량의 테더 USDT(USDT) 전송했습니다.
생성되기 전에 계약에 테더 USDT(USDT) 보내면, 새로운 계약은 그 일부를 CUT 토큰으로 스왑합니다.
그런 다음 공격자는 CAKE- 유동성 공급 토큰(LP) 소각합니다. 이 동작은 풀에서 제공된 유동성을 제거하여 기본 자산의 해당 지분을 인출할 수 있게 합니다.
더욱이 공격자는 계약 생성 프로세스를 반복하여 해당 악용을 여러 번 반복하여 페어 계약 내의 테더 USDT(USDT) 준비금을 상당 부분 고갈시킨 것으로 보입니다.
CUT 토큰 코드의 addLiquidity 및 removeLiquidity 단계를 자세히 살펴보고 소각 작업의 실수를 명확히 하세요.
검증되지 않은 코드 계약이에요. 우리는 디컴파일된 소스 코드를 분석할 거예요.
valuePreservationByRmoveLP 함수는 0x70f88861 함수 내에서 디컴파일됩니다.
근본 원인
공격 과정을 분석한 결과, 해당 계약의 주요 결함은 해당 프로젝트에서 보상을 계산하는 데 실시간 가격을 사용한다는 점에 있다는 것을 알 수 있었습니다.