2024년 3월 14일 SlowMist MistEye 보안 모니터링 시스템의 조기 경보에 따르면 Optimism 체인의 분산형 대출 프로토콜 MOBOX가 공격을 받아 약 US$750,000의 손실을 입었습니다. SlowMist 보안팀은 공격 사건을 분석하고 결과를 다음과 같이 공유했습니다. 공격자 주소:
0x4e2c6096985e0b2825d06c16f1c8cdc559c1d6f80x96f004c81d2c7b907f92c45922d38ab870a53945
0xae7b6514af26bcb2332fea53 b8dd57bc13a7838e
공격한 거래:
0x4ec3061724ca9 f0b8 d400866dd83b92647ad8c943a1c0ae9ae6c9bd1ef789417
핵심 공격
이 공격의 핵심은 두 가지인데, 하나는 공격자가 이 함수를 호출할 때마다 추천인의 주소에 대한 보상 분배가 시작된다는 것입니다. 보상 계산은 전송된 토큰 수를 기반으로 하므로 공격자는 추천자에게 보상을 다시 공격한 계약으로 다시 전송하여 다음 차용 금액을 늘릴 수 있습니다. 두 번째는 Borrow() 함수가 호출될 때마다 풀에 있는 MO 토큰의 일부가 소각되므로 MO 토큰의 가격이 지속적으로 상승하게 되어 결국 공격자는 계속해서 차입을 하여 수익을 얻을 수 있다는 것입니다. 보상을 중첩합니다.
트랜잭션 분석
전체 공격 과정은 주로 허점이 있는 Borrow() 함수를 호출한 후 즉시 상환을 위해Redee()를 호출하고 추천자에게 토큰을 할당하는 루프를 통해 이루어짐을 알 수 있습니다. 공격 계약으로 다시 전환합니다.
그러나 대출된 USDT의 양은 풀에 있는 MO 토큰의 가격을 기준으로 계산됩니다. 소각으로 인해 MO 토큰의 가격이 계속 상승하기 때문에 결국 공격자는 소량의 MO 토큰으로 빌릴 수 있습니다. USDT 토큰이 발행되었습니다.
또한, 추천인 주소는 각 대출에 대한 배당금으로 보상되며, 전달된 MO 토큰의 양을 기준으로 함수가 계산됩니다.
하지만 리퍼러 주소도 공격자(0x96f004c81d2c7b907f92c45922d38ab870a53945)에 의해 제어되기 때문에 공격자는 대출 작업 완료 후 보상 중 이 부분을 다시 전송하여 다음 대출 금액과 배당금을 중첩할 수 있습니다. 보상 .
위의 사이클 작업 이후 공격자는 MO 토큰의 가격을 인상했고, 마침내 아주 적은 수의 MO 토큰을 사용하여 계약에서 대량의 USDT를 빌려줄 수 있었고 직접적인 불균형을 초래했습니다. USDT가 풀에서 빠져나와 이익을 남깁니다.
이 공격의 핵심은 공격자가 Borrow() 함수를 사용하여 풀에 있는 토큰의 일부를 소각하고, 지속적으로 자산을 빌려 풀에 있는 토큰의 가격을 높이는 것이며, 사람들은 사람들에게 보상을 주고 토큰을 다시 전송하고 다시 빌려줌으로써 지속적으로 보상을 추가하고 가격을 조작합니다. SlowMist 보안 팀은 유사한 사건이 다시 발생하지 않도록 프로젝트 당사자가 유사한 기능에 잠금 시간 제한을 추가하고 대출 가격 모델을 설계할 때 여러 요소를 고려할 것을 권장합니다.
위 내용은 검토: MOBOX 해킹 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!