DeFi Protocol Warp Finance "Oracle Machine" 공격 이벤트 분석
成都链安
2020-12-18 10:45
本文约1745字,阅读全文需要约7分钟
현재 해커들의 많은 공격 방법 중 "오라클 머신" 가격 피드 제어는 보이지 않는 "범인"입니다.

베이징 시간으로 12월 18일 6시경 DeFi 대출 계약인 Warp Finance가 해킹되어 거의 800만 달러의 자산 손실이 발생했습니다.

동시에 Warp Finance는 불법 대출을 조사하고 있으며 사건의 진실이 밝혀질 때까지 사용자들에게 스테이블코인 예치금을 중단할 것을 공식적으로 트윗했습니다.

블록체인 보안 상황 인식 플랫폼(Beosin-Eagle Eye)으로부터 경보를 받은 후 Chengdu Lianan 팀은 즉시 공격을 조사한 결과 다음과 같은 사실을 발견했습니다.

1. Warp Finance는 Uniswap 거래 쌍의 상대 가격을 오라클의 가격 피드 소스로 사용합니다.

2. 이 상황을 알게 된 공격자는 플래시론으로 얻은 막대한 자금으로 Uniswap 거래 쌍의 가격을 조작했습니다.

3. 공격자는 오라클 머신을 제어하여 가격 소스 정보를 제공함으로써 Warp Finance의 대출 가치 판단 기준을 파괴했습니다.

4. Warp Finance의 잘못된 데이터 환경에서 공격자는 담보 가치를 훨씬 초과하는 자산을 훔쳤습니다.

보조 제목

보조 제목

0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090

공격 프로세스 분석

공격자는 먼저 플래시론에 Uniswap을 사용했으며 모자이크(상환 전 연속 작업) 방식을 채택하여 각각 WBTC2, USDC3 및 USDT2 풀에서 WETH 대출을 수행했습니다. 다음 그림과 같습니다.

나중에 공격에 사용된 자금의 양을 늘리기 위해 공격자는 dYdX에 플래시 론을 만들었습니다. 아래 그림과 같이:

이때 대출된 자금의 규모는 미화 2억 달러에 육박했으며, 다음으로 공격자는 Uniswap의 DAI 2 거래 풀에 유동성을 주입하여 다음 그림과 같이 유동성 토큰 LP를 획득했습니다.

그런 다음 획득한 LP 토큰을 Warp Finance 컨트랙트에서 저당 거래 및 코드는 다음과 같습니다.

모기지를 완료한 후 공격자는 빌린 자금을 사용하여 아래 그림과 같이 Uniswap DAI 2 풀의 모든 DAI를 교환했습니다.

보조 제목

LP 토큰 가격 알고리즘

(A 토큰 가격 × A 토큰 풀 보유량 + B 토큰 가격 × B 토큰 풀 보유량) / LP 토큰 총량

그 중 A 토큰과 B 토큰의 가격은 Uniswap의 "해당 토큰과 안정적인 통화" 거래 쌍으로 계산됩니다.

따라서 위의 상황에서 토큰 A와 B의 가격은 정상 수준인 반면 거래 쌍에서 토큰 A와 B의 상대 가격은 비정상이 되었습니다. 이는 Uniswap이 A×B=K라는 일정한 제품 시장 조성자 메커니즘을 사용하기 때문입니다. 특정 토큰에 대한 교환량이 많으면 엄청난 슬리피지가 발생하여 가격 차이가 발생합니다.

가정: A=A 토큰 수량, B=B 토큰 수량, AP=A 토큰 가격, BP=B 토큰 가격

알려진: A×B=k(유동성이 추가되지 않은 경우 K는 일정함) 워프 가격=(AP×A+BP×B)/totalLP

이 이벤트에서 AP와 BP는 모두 일정하므로 AP=X1×BP로 설정하고 워프 가격=((X1×K)/B+B)×BP/totalLP로 단순화할 수 있습니다.

공격에서 X1×K, BP, totalLP는 모두 일정하며 B의 수가 증가할수록 LP의 가격이 상승한다고 결론지을 수 있습니다.

공격자는 이를 악용해 플래시론으로 얻은 막대한 자금을 이용해 트랜잭션 풀에 있는 토큰 중 하나의 유동성을 대폭 증가시켜 다른 토큰도 이에 따라 강제로 증가시켜 LP의 가격 불균형을 초래했다. LP의 가격이 조작되어 높은 수준이기 때문에 공격자는 평소보다 더 많은 자산을 빌려줄 수 있습니다.

이후 공격자는 다음 함수를 호출하여 대출을 합니다.

보조 제목

이벤트 요약

분명히 이것은 엄청난 플래시 대출에 의해 시작된 또 다른 전형적인 오라클 공격 사건입니다. Chengdu Lianan은 한때 현재 해커의 많은 공격 방법 중 "오라클 머신" 가격 공급 제어가 보이지 않는 "범인"이라고 지적한 기사를 쓴 적이 있습니다.

동시에 Chengdu Lianan은 또한 DeFi 개발자들에게 특히 프로젝트가 온라인으로 전환되기 전에 오라클 머신의 표적 테스트를 강화하고 가능한 한 다양한 가격 조작 공격 시나리오를 시뮬레이션하며 적시에 문제를 발견하고 해결책을 찾아야 한다고 엄숙하게 상기시킵니다. Oracle 공격에 저항하는 프로젝트의 능력을 효과적으로 향상시킵니다.

불과 한 달 후, 막대한 재산 손실은 블록체인 분야에서 보안 보호가 특히 중요하며 많은 시스템 보안 취약성이 보호하기 어렵다는 것을 다시 한 번 경고했습니다. 따라서 문제를 최대한 사전에 방지하기 위해 지속적이고 효과적인 보호 계획을 수립하기 위한 적극적인 조치를 취해야 합니다.

또한 DeFi 프로젝트 운영 중 보안에 기술적 문제가 발생할 경우 제3자 보안 기술 솔루션을 도입하는 것도 효과적인 방법입니다. 마지막으로 Chengdu Lianan은 이러한 사건이 다시 발생하지 않도록 프로젝트 오라클 시스템 및 기타 측면에 대한 정기적인 보안 테스트를 강화할 것을 다시 한 번 호소했습니다.

成都链安
作者文库