CertiK: Yearn.finance 새 프로젝트 Eminence 공격 취약점 분석
CertiK
2020-09-30 05:46
本文约1942字,阅读全文需要约8分钟
CertiK 보안 연구팀은 Yearn.finance의 신규 프로젝트인 Eminence.finance에서 비정상적인 거래를 발견하고, 이에 대한 공격 취약점 분석을 진행했습니다.

보조 제목

기술적 세부사항 분석

다음 분석:

https://etherscan.io/tx/0x3503253131644dd9f52802d071de74e456570374d586ddd640159cf6fb9b8ad8예를 들어 거래 흐름도는 다음과 같습니다.

이번 거래에서 공격자는 먼저 Uniswap의 Flash Loan 서비스를 통해 1,500만 DAI를 빌린 후 모든 EMN 토큰을 구매하여 총 약 1,383,650,487개의 EMN 토큰을 구매했습니다.

EMN의 절반인 총 약 691,825,243개의 EMN 토큰은 OP0 단계를 통해 eAAVE 토큰을 구매하는 데 사용되었으며 총 약 572,431개의 eAAVE 토큰을 획득했습니다.

현재까지 공격자는 총 1,383,650,487-691,825,243 = 691,825,244 EMN 및 572,431 eAAVE 토큰을 보유하고 있습니다.

다음으로 공격자의 스크립트는 계속해서 OP0, OP1, OP2, OP3, OP4 등 5개의 내부 트랜잭션(Internal Transactions)을 실행하였으며, 이 5개의 내부 트랜잭션이 미치는 영향은 다음과 같다.

텍스트

그러나 아래 그림의 _burn 함수 정의에서 EMN 토큰의 수만 소각되고 해당 DAI의 수는 변경되지 않은 것을 확인할 수 있습니다. 이는 EMN 대 DAI의 비율이 EMN 수의 감소로 인해 DAI의 상대적 가격을 낮추기 때문에 동일한 양의 EMN을 사용하여 DAI를 구매하면 더 많은 DAI를 얻을 수 있습니다.

따라서 OP0이 완료되면 EMN의 수와 DAI의 수의 비율이 감소한다. 공격자는 OP1을 통해 나머지 일반 EMN을 DAI로 전환하는데, 이때 DAI의 상대가격이 낮기 때문에 구매한 DAI의 양이 평소보다 많다.

공격자는 OP1 완료 후 OP2, OP3을 거쳐 유보된 eAAVE를 EMN으로 변환한 후 DAI로 변환한다. 마지막으로 OP4 이전에는 공격자가 보유한 DAI의 양이 Uniswap에서 빌린 금액보다 높을 것입니다.

지금까지 공격자는 취약점을 통해 수익을 완성했습니다.

공격자는 동일한 트랜잭션에서 취약점을 세 번 악용했습니다. OP4에 도달할 때마다 이익 후 총 DAI가 다시 공격을 수행하는 데 사용됩니다. 세 번 모두 완료한 후 공격자는 Uniswap 대출금을 상환하고 거래 수익을 자신의 주소로 보냈습니다.

0x223034edbe95823c1160c16f26e3000315171ca9

공격자는 총 3개의 트랜잭션을 실행했으며 트랜잭션 주소는 다음과 같습니다.

첫 번째:

0x3503253131644dd9f52802d071de74e456570374d586ddd640159cf6fb9b8ad8

두 번째:

0x045b60411af18114f1986957a41296ba2a97ccff75a9b38af818800ea9da0b2a

보조 제목

0x4f0f495dbcb58b452f268b9149a418524e43b13b55e780673c10b3b755340317

분석 요약

이 사건은 로직 설계와 실제 스마트 계약 코드 구현 간의 불일치로 인해 발생하는 보안 침해의 전형적인 사례입니다. 그리고 프로젝트가 온라인 상태가 되기 전에 아직 보안 감사를 통과하지 못했습니다. 이러한 유형의 취약점의 경우 기존 테스트 방법 및 테스트 도구는 이러한 종류의 논리 취약점을 감지할 수 없습니다.

따라서 CertiK는 다음을 제안합니다.

DeFi 프로젝트의 현재 호황은 계속되고 있으며 핫스팟과 기회를 포착하기 위해 많은 프로젝트가 엄격한 테스트 및 감사 없이 온라인으로 돌진했습니다. 이러한 프로젝트에서 대부분의 취약점은 일반적인 테스트 방법 및 도구로 찾을 수 없습니다. 엄격한 수학적 모델 증명을 수행할 전문 감사 전문가를 찾는 경우에만 이 취약성을 발견할 수 있습니다.

보안 감사는 이제 고품질 DeFi 프로젝트의 표준입니다. 프로젝트가 감사를 받지 않은 경우 사용자 입장에서는 투자 행동에 각별한 주의를 기울여야 하며, 프로젝트 당사자 입장에서는 감사를 위해 전문적이고 평판이 좋은 감사 회사를 찾아야 합니다. 프로젝트가 감사를 받은 경우 감사 회사의 배경과 감사 보고서의 지표를 이해하려고 노력해야 합니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 보안 감사의 범위, 방법 및 결론

  • 계약에 허점이나 보안 위험이 있습니까? 그렇다면 이러한 문제의 심각성과 가능한 영향을 이해해야 합니다.

  • 계약의 전반적인 코드 품질

  • 감사법인의 전문성과 독립성

CertiK
作者文库