피드로 돌아가기
Dev.toSecurity
원문 읽기
무제한 Approval 설계를 악용한 fToken 공격으로 7.5M$ 탈취
JaredFromSubway's bot lost $7.5M to fake tokens. We had already flagged them.
AI 요약
Context
가스비 절감을 위해 type(uint256).max 값을 이용한 무제한 Approval 방식을 채택한 MEV Bot의 아키텍처적 허점 노출. 외부 컨트랙트에 대한 영구적 권한 부여로 인해 공격자가 적절한 시점에 자산을 인출할 수 있는 Standing Allowance 구조의 한계점 발생.
Technical Solution
- 가짜 Wrapper Token(fWETH, fUSDC, fUSDT) 및 가짜 Pool 배치를 통한 Arbitrage 기회 위장
- 봇의 자동화 로직이 공격자 제어 Helper Contract에 대해 무제한
approve()를 호출하도록 유도 - 초기 트랜잭션에서 소액의 이익을 제공하여 봇의 탐지 알람을 무력화하는 신뢰 구축 단계 수행
- 소비되지 않은 잔여 Allowance를 누적시킨 후
transferFrom()을 통해 Bot의 실제 자산을 일괄 인출 - EIP-7702 Delegated Account를 활용하여 다수의 승인 권한을 일괄 수확하는 Batch Routine 실행
실천 포인트
1. `type(uint256).max` 무제한 승인 지양 및 정확한 거래 금액만큼만 Approve 설정
2. Permit2와 같은 Scoped/Expiring Approval 메커니즘 도입 검토
3. 신규 토큰 상호작용 전 Name Mimics 및 Scam Bytecode 여부를 확인하는 검증 단계 추가
4. 사용하지 않는 Approval 권한의 정기적인 Revoke 프로세스 자동화