QR 코드를 스캔하여 다운로드하세요.
BTC $75,672.87 +1.25%
ETH $2,352.82 +0.50%
BNB $630.83 +1.34%
XRP $1.45 +2.59%
SOL $88.49 +3.75%
TRX $0.3249 -0.21%
DOGE $0.0988 +2.85%
ADA $0.2576 +3.10%
BCH $449.62 +2.20%
LINK $9.52 +2.36%
HYPE $44.04 -2.55%
AAVE $115.08 +8.61%
SUI $0.9959 +1.83%
XLM $0.1684 +4.46%
ZEC $335.43 -2.13%
BTC $75,672.87 +1.25%
ETH $2,352.82 +0.50%
BNB $630.83 +1.34%
XRP $1.45 +2.59%
SOL $88.49 +3.75%
TRX $0.3249 -0.21%
DOGE $0.0988 +2.85%
ADA $0.2576 +3.10%
BCH $449.62 +2.20%
LINK $9.52 +2.36%
HYPE $44.04 -2.55%
AAVE $115.08 +8.61%
SUI $0.9959 +1.83%
XLM $0.1684 +4.46%
ZEC $335.43 -2.13%

느린 안개: 오리온 프로토콜이 공격받은 것은 계약 교환 기능의 함수가 재진입 보호를 하지 않았기 때문입니다

2023-02-03 15:55:04
수집

ChainCatcher 메시지, 오늘 아침 Orion Protocol 프로젝트의 ETH 및 BSC 체인上的 계약이 공격을 받았으며, 공격자는 약 302.7만 달러를 획득했습니다. 이번 공격 과정과 원인에 대해 느슨한 보안 팀이 분석한 내용은 다음과 같습니다:

  1. 공격자는 먼저 ExchangeWithAtomic 계약의 depositAsset 함수를 호출하여 0.5개의 USDC 토큰을 예치하여 아래의 공격을 준비했습니다;

  2. 공격자는 284.47만 개의 USDT 토큰을 플래시 론으로 대출한 후, ExchangeWithAtomic 계약의 doSwapThroughOrionPool 함수를 호출하여 토큰을 교환했습니다. 교환 경로는 [USDC -> ATK(공격자가 생성한 악성 토큰) -> USDT]입니다;

  3. 교환 결과는 교환 후 ExchangeWithAtomic 계약의 USDT 토큰 잔액에서 교환 전 해당 계약의 USDT 토큰 잔액(284.47만 개)을 뺀 값이지만, 문제는 USDC -> ATK를 교환한 후 ATK 토큰의 전송 함수를 호출하게 되며, 이 함수는 공격자가 악의적으로 구성하여 공격 계약을 통해 ExchangeWithAtomic 계약의 depositAsset 함수를 호출하여 플래시 론으로 대출받은 284.4만 USDT 토큰을 ExchangeWithAtomic 계약에 예치하게 됩니다. 이때 공격 계약의 ExchangeWithAtomic 계약 내 예치금이 284.47만 개로 성공적으로 기록되며, ExchangeWithAtomic 계약의 USDT 토큰 잔액은 568.9만 개가 되어 공격자가 교환한 USDT 토큰의 수량이 교환 후 568.9만에서 교환 전 284.47만을 뺀 값인 284.47만으로 계산됩니다;

  4. 이후 교환된 USDT 토큰은 라이브러리 함수 creditUserAssets를 호출하여 공격 계약이 ExchangeWithAtomic 계약에서 사용하는 장부를 업데이트하게 되어, 공격 계약의 ExchangeWithAtomic 계약 내 USDT 토큰 예치금이 568.9만 개로 기록됩니다;

  5. 마지막으로 공격자는 ExchangeWithAtomic 계약의 withdraw 함수를 호출하여 USDT를 인출하고 플래시 론을 상환한 후 남은 283.6만 개의 USDT 토큰을 WETH로 교환하여 이익을 얻습니다. 공격자는 동일한 방법으로 BSC 체인에서도 공격을 감행하여 19.1만 달러를 획득했습니다;

이번 공격의 근본 원인은 계약의 교환 기능 함수에 재진입 보호가 없으며, 교환 후 다시 장부의 예치금 수치를 업데이트하는 것이 교환 전후 계약 내 토큰 잔액 차이에 따라 계산되기 때문에 공격자가 가짜 토큰을 이용해 예치 함수에 재진입하여 예상보다 많은 토큰을 획득하게 된 것입니다.

관련 태그
관련 태그
app_icon
ChainCatcher Building the Web3 world with innovations.