2024년 6월 10일, UwU Lend가 공격을 받아 프로젝트에서 약 1,930만 달러의 손실이 발생했습니다.
SharkTeam은 이 사건에 대해 즉시 기술적 분석을 수행하고 보안 예방 조치를 요약했습니다. 후속 프로젝트가 이로부터 교훈을 얻어 블록체인 산업을 위한 보안 방어선을 공동으로 구축할 수 있기를 바랍니다.
공격자: 0x841dDf093f5188989fA1524e7B893de64B421f47
공격자는 총 3개의 공격 트랜잭션을 시작했습니다.
공격 트랜잭션 1:
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
공격 트랜잭션 2:
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
공격 트랜잭션 3:
0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
분석을 위해 공격 트랜잭션 1을 예로 들어 보겠습니다.
공격 계약: 0x21c58d8f816578b1193aef4683e8c64405a4312e
대상 계약: 다음을 포함한 UwU Lend 재무 계약:
USUSDE: 0xf1293141fc6ab23b2a0143acc196e3429e0b67a6
uDAI: 0xb95bd0793bcc5524af358ffaae3e38c3903c7626
uUSDT: 0x24959f75d7bda1884f1ec9861f644821ce233c7d
공격 과정은 다음과 같습니다.
1. WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO를 포함한 다양한 플랫폼의 여러 토큰을 플래시 대출합니다.
토큰 수신 주소는 0x4fea76b66db8b548842349dc01c85278da3925da입니다.
1. WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO를 포함한 다양한 플랫폼의 여러 토큰을 플래시 대출합니다.
토큰 수신 주소는 0x4fea76b66db8b548842349dc01c85278da3925da입니다.
플래시론의 토큰 및 수량은 다음과 같습니다.
AaveV3에서 플래시 대출 159,053.16 WETH 및 14,800 WBTC
AaveV2에서 플래시 대출 40,000 WETH
Spark에서 플래시 대출 91,075.70 WETH 및 4,979.79 WBTC
Morpho에서 플래시 대출 301,738,880.01 sUSDe, 236,934,023.17 USDe 및 100,786,052.15 DAI
Uniswap V3: FRAX-USDC에서 60,000,000 FRAX 및 15,000,000 USDC의 플래시 대출
Balancer에서 플래시 대출 4,627,557.47 GHO 및 38,413.34 WETH
Maker로부터 플래시 대출 500,000,000 DAI
총 약 328,542.2 WETH, 19779.79 WBTC, 600786052.15 DAI, 301,738,880.01 sUSDe, 236,934,023.17 USDe, 4,627,557.47 GHO, 60,000,000 FRAX, 15,000, 000USDC
2. 공격에 대비하기 위해 플래시 대출 토큰을 컨트랙트 0xf19d66e82ffe8e203b30df9e81359f8a201517ad(약칭 0xf19d)로 전송합니다.
3. 토큰 교환을 통해 sUSDe 가격을 제어(가격 낮추기)
(1)USDecrvUSD.exchange
8,676,504.84 USDe를 8,730,453.49 crvUSD로 교환합니다. USDecrvUSD의 USDe 양은 증가하고 가격은 감소합니다.
(2) USDeDAI.exchange
46,452,158.05 USDe를 14,389,460.59 DAI로 교환하세요. USDeDAI의 USDe 양이 증가하고 가격이 감소하며 DAI 양이 감소하고 가격이 상승합니다.
(3)FRAXUSDDe.exchange
14,477,791.69 USDe를 46,309,490.86 FRAX로 교환합니다. USDeDAI의 USDe 양이 증가하고 가격이 감소합니다. FRAX 양이 감소하고 가격이 증가합니다.
(4)GHOUSDe.exchange
4,925,427.20 USDe를 4,825,479.07 GHO로 변환하면 USDeDAI의 USDe 양이 증가하고 가격이 감소하며 GHO 양이 감소하고 가격이 상승합니다.
(5) USDeUSDC.exchange
14,886,912.83 USDe를 14,711,447.94 USDC로 변환합니다. USDeDAI의 USDe 양은 증가하고 가격은 감소합니다. USDC 양은 감소하고 가격은 증가합니다.
위 교환 이후 5개 펀드 풀의 USDe 가격이 하락했습니다. 결국 sUSDe 가격은 폭락했습니다.
4. 지속적으로 대출 포지션을 생성합니다. 즉, 다른 자산(WETH, WBTC 및 DAI)을 LendingPool 계약에 입금한 후 sUSDe를 차용합니다. sUSDe 가격이 급락했기 때문에 sUSDe 대출 금액은 가격이 급락하기 전보다 훨씬 커졌습니다.
4. 지속적으로 대출 포지션을 생성합니다. 즉, 다른 자산(WETH, WBTC 및 DAI)을 LendingPool 계약에 입금한 후 sUSDe를 차용합니다. sUSDe 가격이 급락했기 때문에 sUSDe 대출 금액은 가격이 급락하기 전보다 훨씬 커졌습니다.
5. 3단계와 유사하게 반대 작업을 수행하면 sUSDe 가격이 상승합니다.
sUSDe가 풀업되면서 4단계에서 빌린 포지션의 가치가 담보 가치를 초과해 청산 기준에 도달하게 됩니다.
6. 대출 포지션을 일괄 청산하고 청산 보상을 획득합니다 uWETH
7. 대출금을 상환하고 기본 자산인 WETH, WBTC, DAI 및 sUSDe를 인출합니다.
8. sUSDe를 LendingPool에 다시 입금하세요. 이때 sUSDe의 가격이 상승하므로 DAI, USDT를 포함한 더 많은 자산을 대출할 수 있습니다.
9. 토큰을 교환하고 플래시론을 상환하세요. 최종 이익은 1,946.89 ETH였습니다.
9. 토큰을 교환하고 플래시론을 상환하세요. 최종 이익은 1,946.89 ETH였습니다.
위의 분석을 통해 공격 과정 전반에 걸쳐 다수의 플래시 대출과 sUSDe 가격 조작이 이루어지고 있음을 알 수 있습니다. 이는 대출 금리와 청산 계수(건강 요인)에 영향을 미칩니다.
공격자는 이를 이용하여 플래시 대출을 통해 sUSDe 가격을 낮추고, 다른 자산을 담보로 제공하고, sUSDe를 대량으로 빌려준 후 sUSDe 가격을 올리고, 모기지 자산을 청산하여 수익을 내고, 남은 sUSDe를 담보로 대출해 줍니다. 다른 자산을 아웃하고 마지막으로 플래시 대출금을 상환하면 공격이 완료됩니다.
위의 3단계에서 우리는 공격자가 Curve Finance의 5개 거래 풀(USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe 및 USDe/SDC)에서 USDe 가격을 제어하여 sUSDe 가격을 조작했음을 발견했습니다. 가격 읽기 기능은 다음과 같습니다.
이 중 sUSDe 가격은 11개 가격에서 계산되며, 처음 10개는 CurveFinance에서 읽어오고 마지막 하나는 UniswapV3에서 제공합니다.
CurveFinance에서 읽은 가격은 USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe 및 USD/SDC의 5개 거래 풀에서 제공되며, 이 역시 공격 거래에서 공격자가 조작하는 5개 거래 풀입니다.
CurveFinance에서 읽은 가격은 USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe 및 USD/SDC의 5개 거래 풀에서 제공되며, 이 역시 공격 거래에서 공격자가 조작하는 5개 거래 풀입니다.
반환된 가격은 CurveFinance 트레이딩 풀 계약의 uwuOracle, Price_oracle(0) 및 get_p(0)에서 읽은 가격에서 계산됩니다.
(1) 가격은 체인링크가 제공하는 가격이며 조작이 불가능합니다.
(2) 트레이딩 풀 매개변수
공격자는 트레이딩 풀에 있는 토큰 수를 조작하여 get_p(0)의 반환 값을 조작하여 가격을 조작합니다.
이 공격에 대응하여 개발 과정에서는 다음과 같은 예방 조치를 따라야 합니다.
(1) 가격 조작의 취약성을 해결하기 위해 오프체인 가격 오라클을 사용하여 가격 조작을 피할 수 있습니다.
(2) 프로젝트가 온라인으로 진행되기 전에 제3자 전문 감사 회사를 통해 스마트 계약 감사를 수행해야 합니다.
(1) 가격 조작의 취약성을 해결하기 위해 오프체인 가격 오라클을 사용하여 가격 조작을 피할 수 있습니다.
(2) 프로젝트가 온라인으로 진행되기 전에 제3자 전문 감사 회사를 통해 스마트 계약 감사를 수행해야 합니다.
SharkTeam의 비전은 Web3 세계를 보호하는 것입니다. 이 팀은 블록체인 및 스마트 계약의 기본 이론에 능숙한 전 세계의 숙련된 보안 전문가와 수석 연구원으로 구성되어 있습니다. 위험 식별 및 차단, 스마트 계약 감사, KYT/AML, 온체인 분석 등을 포함한 서비스를 제공하며 지능형 지속 위협(Advanced Persistant Threat, Advanced Persistant Threat)에 효과적으로 대처할 수 있는 온체인 지능형 위험 식별 및 차단 플랫폼 ChainAegis를 만들었습니다. 지속적인 위협), APT). Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, Collab.Land, TinTinLand 등 Web3 생태계의 다양한 분야의 주요 플레이어와 장기적인 협력 관계를 구축했습니다.
출처:https://www.sharkteam.org
트위터: https://twitter.com/sharkteamorg
텔레그램: https://t.me/sharkteamorg
디스코드: https://discord.gg/jGH9xXCjDZ
모든 댓글