Fire Token 사고 분석

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

2024년 10월 1일, Fire Token이 해킹되어 당시 약 20,000 달러의 손실이 발생했습니다. 이번 공격이 어떻게 이루어졌는지 자세히 살펴보겠습니다.

공격자 : https://etherscan.io/address/0x81f48a87ec44208c691f870b9d400d9c13111e2e

공격 계약 : https://etherscan.io/address/0x9776c0abe8ae3c9ca958875128f1ae1d5afafcb8

취약한 계약 : https://etherscan.io/address/0x18775475f50557b96C63E8bbf7D75bFeB412082D

공격 트랜잭션 : https://etherscan.io/tx/0xd20b3b31a682322eb0698ecd67a6d8a040ccea653ba429ec73e3584fa176ff2b

취약점 분석

Fire TokenERC20 토큰입니다. Fire Token의 특징은 유니스왑 v2의 토큰 스왑 기능이 통합되어 있다는 것입니다. 또한 _transfer() 함수가 해당 기능을 사용하도록 수정되었습니다.

그러나 문제는 _transfer() 함수가 유니스왑 쌍으로 토큰을 전송할 때 취약점이 있다는 것입니다. 사용자가 유니스왑 쌍으로 토큰을 전송하면 유니스왑 쌍의 잔액이 자동으로 감소하고 바로 sync() 함수가 호출됩니다. 이는 시스템이 전송 금액과 세금 금액을 기반으로 판매 금액을 계산하고 그 금액을 소각 주소로 전송하기 때문에 발생할 수 있습니다.

Transfer funtion

어떤 사용자든 여러 개의 Fire 토큰을 유니스왑 쌍으로 전송할 수 있습니다. _transfer()의 이 조건으로 인해 유니스왑 쌍의 금액이 감소하여 예비 가치가 줄어듭니다. 이 흐름에 따라 공격자는 먼저 20 이더리움(ETH)Fire로 교환했고, 받은 토큰을 모두 유니스왑 쌍으로 전송했습니다. Fire 일부가 소각 주소로 전송되면서 Fire의 예비 가치도 줄어들었습니다.

Transfer funtion

그 후 공격자는 유니스왑 쌍swap()을 사용하여 예비 가치의 차이로 더 많은 토큰을 얻었습니다. 이 행동을 반복하여 예비 가치가 최소 값까지 떨어뜨렸습니다.

Transfer funtion
Transfer funtion

이 취약점 공격으로 공격자는 약 8.45 이더리움(ETH)(약 20,000 달러)을 얻었습니다.

결론

Fire Token 취약점 공격 사례를 공유함으로써 철저한 보안 감사와 견고한 스마트 계약 설계의 중요성을 강조하고자 합니다. 특히 탈중앙거래소(DEX)에서는 조작을 방지하기 위한 효과적인 위험 관리 전략이 필요합니다. 작은 결함으로도 사용자 자금에 큰 손실을 초래할 수 있기 때문입니다.

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