17일(현지 시간) 이더리움 기반 탈중앙화 금융(DeFi) 프로젝트 OUSD가 플래시 론 공격에 피해를 입었다. 블록체인 보안 전문 업체 슬로우미스트가 분석한 이번 플래시 론 공격은 다음과 같다.
1. 공격자는 dydx 플래시 론을 통해 70,000 ETH를 대출 받았다. 이후 해당 ETH를 유니스왑을 통해 USDT와 DAI로 환전했다.
2. 공격자는 OUSD 볼트의 mint함수를 호출했다. 볼트는 한 차례 rebase를 통해 적립된 보상에 대한 배분을 진행했다. 이어서 750만 USDT가 공격자의 컨트랙트에서 OUSD 볼트로 옮겨졌다. 그후 OUSD 컨트랙트는 같은 양의 750만 USDT를 발행해 공격자의 컨트랙트로 이체했으며, 최종적으로 allocate를 통해 당시 수익을 결산했다.
3. 공격자가 750만 USDT를 입금하기 전 OUSD 볼트의 가치는 약 7,018,138 달러였으며, 공격자의 750만 USDT를 입금해 볼트 총 가치의 절반 이상을 점유했다.
4. 공격 컨트랙트는 mintMultiple 함수를 악용해 DAI 컨트랙트 주소와 공격 컨트랙트 주소를 옮겨왔다. 이후 이전과 같은 방법으로 rebase가 진행됐고, transferFrom을 통해 공격 컨트랙트에 있던 2,050 DAI를 볼트에 예치했다. 공격컨트랙트의 transferFrom 함수를 호출해 공격 컨트랙트 중 볼트 컨트랙트의 mint 함수를 변경하는 식으로 부당 이득을 챙겼다.
슬로우미스트는 "이번 플래시 론 공격의 핵심은 외부 컨트랙트 호출해 볼트의 rebase 수익 분배 메커니즘을 공략했다는 것이다. 공격자는 컨트랙트 결함을 통해 무에서 유를 창조해 부당 이득을 챙겼다. 해당 공격을 막을 수 있는 가장 유효한 대처는 자산이 유입됐을 때 해당 자산에 대한 출처 검사를 진행한 후, 화이트리스트에 올라와 있지 않은 자산을 롤백시키는 것"이라고 강조했다.
Provided by 코인니스