Binance Smart Chain의 프로젝트인 iVest는 2024년 8월 12일에 익스플로잇을 당했으며, 이 글을 쓰는 시점에 약 172,000달러의 손실이 발생한 것으로 추정됩니다. 이 사건은 세금 및 기부금 과 같은 추가 기능을 제공하는 데 사용되는 ERC20 의 사용자 지정 전송 함수의 취약성을 강조합니다.
개요
공격자:
https://bscscan.com/address/0x4645863205b47a0A3344684489e8c446a437D66C
취약한 계약:
https://bscscan.com/address/0x786fcf76dc44b29845f284b81f5680b6c47302c6
거래 공격: https://bscscan.com/tx/0x12f27e81e54684146ec50973ea94881c535887c2e2f30911b3402a55d67d121d
익스플로잇 분석
공격은 iVest 토큰을 전송할 때 호출되는 __MakeDonation 함수에 집중했습니다. 이 함수는 특정 경우에 발신자로부터 추가 토큰을 소각하거나 기부합니다. 발신자로부터 보내는 금액보다 더 많은 토큰을 차감하면 공격자가 풀의 토큰 수를 줄이고 k 비율을 변경하며 가격 조작을 가능하게 하기 때문에 스왑 풀에 심각한 문제가 발생합니다.
얻은 교훈
간단한 ERC20 계약에 사소한 변경을 가한 경우이든 수십만 줄의 코드가 있는 복잡한 DeFi 프로토콜 이든 보안 감사를 실시 하는 것이 좋습니다.