iVest 토큰 취약점: 공격자가 기부 기능을 사용하여 가격을 조작한 방법

이 기사는 기계로 번역되었습니다
원문 표시

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 비율을 변경하며 가격 조작을 가능하게 하기 때문에 스왑 풀에 심각한 문제가 발생합니다.

공격자는 먼저 WBNB를 플래시론으로 대출하고 iVest 토큰으로 교환합니다. 그런 다음 일정량의 iVest 토큰을 WBNB / iVest 쌍으로 이체 하고 토큰을 훑어내어 (토큰을 이체하여 잔액이 준비금과 일치하도록 강제) address(0) 로 이동하면 __MakeDonation이 풀의 준비금에서 더 많은 토큰을 소각합니다. 그런 다음 동기화 를 수행하여 k 비율을 조작합니다. iVest 토큰의 가격은 이제 처음보다 훨씬 높아져 공격자가 나머지 iVest 토큰을 다시 WBNB 로 교환하고 가격 상승으로 이익을 얻을 수 있습니다.

얻은 교훈

ERC20 계약은 생태계 내의 모든 자금을 관리하기 때문에 매우 중요합니다. 따라서 개발자는 계약을 만들 때 극도 로 주의해야 합니다. 가능하면 ERC20 계약 내의 로직을 사용자 정의하지 마십시오. 자동화된 마켓 마이커(AMM) 풀에서 토큰 간 스왑을 수행할 때는 전송 함수에 대한 사용자 정의 로직을 극도로 신중하게 처리해야 합니다.

간단한 ERC20 계약에 사소한 변경을 가한 경우이든 수십만 줄의 코드가 있는 복잡한 DeFi 프로토콜 이든 보안 감사를 실시 하는 것이 좋습니다.

섹터:
출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트