배경

최근, 우리는 Mode Chain에서 Ionic Money 에 대한 일련의 공격을 감지했습니다.

https://explorer.mode.network/tx/0x37e53b15cb7f298bd8c45fcbbd914ba90feb3946f5511fc55bc986b7472956df

Ionic Money는 Base, Optimism, Bob, Fraxtal, Lisk, Mode에서 서비스를 제공하는 복합 포크 DeFi 프로젝트입니다. 이번에는 모드 체인을 공격한 세력이 공격을 받았고, 이 공격으로 인해 약 850만 달러의 손실이 발생했습니다.

공격 및 사고 분석

먼저, 공격자는 mint를 통해 60 LBTC를 사용하여 300 ionLBTC인 신뢰할 수 없는 자산을 상환했습니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

하지만 공격자의 60 LBTC의 출처를 살펴보니, 이 60 LBTC는 공격자가 직접 채굴한 것이었습니다. 공격자는 공격을 시작하기 전에 채굴을 통해 250 LBTC를 획득했습니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

그런 다음 LBTC 계약서를 확인한 결과 계약서의 Bascule이 다음과 같은 것을 발견했습니다.

0x0000000000000000000000000000000000000000000000 .

제로 아워 테크놀로지 || IonicMoney 공격 분석

LBTC를 구현하려면 mint가 Bascule을 통해 검증되어야 합니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

이 중 _confirmDeposit의 구현은 다음과 같습니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

LBTC 공식 문서에서는 Bascule을 다음과 같이 소개합니다. 주요 기능은 공격자의 공격을 방지하기 위한 온체인 계약과 오프체인 시스템입니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

이 LBTC의 Bascule에는 해당 계약이 없으므로 공격자는 임의로 Bascule을 생성할 수 있습니다. 이후 공격자는 LBTC를 주조하여 IonicMoney에 담보로 제공한 뒤 모든 풀에서 자금을 인출하여 공격을 완료했습니다. 따라서 이 공격의 근본 원인은 IonicMoney가 대출 풀을 생성할 때 LBTC가 공식적으로 생성된 계약인지 확인하지 않았기 때문에 대출 풀의 거짓 자산이 가짜 토큰이 되었다는 것입니다. 공격자는 마음대로 이를 주조하고 대출을 통해 모든 자금을 비웠습니다.

제로 아워 테크놀로지 || IonicMoney 공격 분석

요약하다

이 취약점의 주요 원인은 IonicMoney 프로젝트가 대출 풀을 생성할 때 자산에 해당하는 계약이 공식적으로 배포되었는지 확인하지 않았기 때문에 대출 풀의 삭제 취소 자산이 가짜 토큰이 되었다는 것입니다. 프로젝트 당사자는 경제 모델, 가격 계산 메커니즘 및 코드 작업 로직을 설계할 때 다자간 검증을 수행하는 것이 좋습니다. 온라인으로 전환하기 전에 계약을 감사할 때는 교차 감사를 위해 여러 감사 회사를 선택해 보세요. 마지막으로 온라인으로 전환하기 전에 배포할 때 해당 토큰이 공식적으로 배포되었는지 확인하세요.