소개
2022년 6월 16일, Inverse Finance가 공격을 받아 100만 달러 이상의 손실이 발생했습니다. 공격 트랜잭션은 https://versatile.blocksecteam.com/tx/eth/0x958236266991bc3fe3b77feaacea120f172c0708ad01c7a715b255f218f9313c입니다. 근본적인 원인은 Inverse Finance가 사용하는 가격 오라클이 조작되었기 때문입니다.
공격 분석
공격자는 먼저 Aave에서 플래시론을 통해 27,000개의 WBTC를 빌렸습니다. 이후 그 중 225개를 Curve에 예치하여 5,375개의 crv3crypto를 발행했습니다. 공격자는 5,375개의 crv3crypto를 yvCurve-3Crypto에 예치하여 4,906개의 Yearn cToken을 받았으며, 이는 Inverse Finance에서 담보로 사용됩니다.

나머지 26,775개의 WBTC는 담보 가격을 조작하는 데 사용되었습니다. 공격자는 26,775개의 WBTC를 스왑하여 75,403,376 USDT를 받았습니다. 이 스왑으로 오라클 가격이 979에서 2,831로 상승했습니다.

borrowAllowed 함수에서 볼 수 있듯이, 사용자가 예치된 담보로 지정된 양의 토큰을 빌릴 수 있는지 여부를 확인합니다.

구체적으로, getHypotheticalAccountLiquidityInternal 함수는 차입 행위가 안전한지 확인하는 데 사용됩니다. 담보의 가격은 getUnderlyingPrice를 통해 얻습니다.

getUnderlyingPrice 함수는 결과를 얻기 위해 latestAnswer 함수를 호출합니다. 앞서 언급했듯이, 26,775개의 WBTC는 USDT로 스왑되어 담보 가격을 상승시키는 데 사용되었습니다.

이 경우, 공격자는 예치된 담보 가치를 초과하는 대량의 DOLA(즉, 10,133,949개)를 빌릴 수 있었습니다.

마지막으로, 공격자는 75,403,376 USDT를 다시 2,662,649 WBTC로 스왑하고, 빌린 10,133,949 DOLA를 9,881,355 3Crv로 스왑했으며, 이를 유동성 풀에서 제거하여 10,099,976 USDT를 획득했습니다.

그런 다음, 10,099,976 USDT 중 10,000,000 USDT를 다시 WBTC로 스왑하여 플래시론 상환에 사용했습니다. 이로써 공격이 완료되었습니다. 공격자는 이번 공격으로 99,976 USDT와 53.2 WBTC를 획득했습니다.

요약
이것은 전형적인 가격 조작 공격입니다. 오늘날에도 이러한 공격이 발생할 수 있다는 사실에 놀라움을 금할 수 없으며, 이번 사건은 DeFi 프로토콜이 보안 시스템을 강화해야 한다는 경각심을 불러일으킵니다.
BlockSec 소개
BlockSec은 전 세계적으로 著名한 보안 전문가 그룹이 2021년에 설립한 선도적인 블록체인 보안 회사입니다. 이 회사는 대중적인 채택을 촉진하기 위해 새롭게 부상하는 Web3 세계의 보안성과 사용성을 향상시키는 데 전념하고 있습니다. 이를 위해 BlockSec은 스마트 컨트랙트 및 EVM 체인 보안 감사 서비스, 보안 개발 및 위협을 사전에 차단하기 위한 Phalcon 플랫폼, 자금 추적 및 조사를 위한 MetaSleuth 플랫폼, 그리고 Web3 빌더들이 암호화폐 세계에서 효율적으로 활동할 수 있도록 지원하는 MetaDock 확장 프로그램을 제공합니다.
현재까지 MetaMask, Uniswap Foundation, Compound, Forta, PancakeSwap 등 300개 이상의 저명한 고객사에 서비스를 제공했으며, Matrix Partners, Vitalbridge Capital, Fenbushi Capital 등 탁월한 투자자들로부터 두 차례의 투자 라운드를 통해 수천만 달러를 조달했습니다.
공식 웹사이트: https://blocksec.com/
공식 트위터 계정: https://twitter.com/BlockSecTeam



