크림 파이낸스(Cream Finance) - REKT
1880만 달러가 은밀한 킬러에게 도난당했고, 이번에는 초창기 DeFi 프로토콜이 당했습니다.
크림 파이낸스(Cream Finance) 는 Trail of Bits로부터 2021년 1월 28일에 오딧(audit)을 받았습니다(저희의 leaderboard에 없는 몇 안되는 오딧(audit)업체 입니다)
그러나, 가장 강력한 오딧(audit)도 프로토콜이 바뀌어 버리면 아무 의미가 없어집니다.
2021년 2월 10일에, 크림 프로포절(Cream proposal)은 AMP 토큰을 담보 수단으로 추가했고, 허점이 발생했습니다.
418,311,571 AMP 토큰과 1,308.09 ETH 가 크림 파이낸스(Cream Finance)의 AMP 토큰 컨트랙트에서 도난당했습니다.
AMP 토큰 컨트랙트는 ERC77-베이스의 ERC1820을 도입하였고, 이는 _callPreTransferHooks 라는 기능을 재진입(reentrancy)을 위해 사용하는 것이었습니다.
AMP 토큰 컨트랙트의 재진입(reentrancy) 취약성은 해커들이 기존 borrow() 기능이 업데이트되기 전에, 두 번째 borrow() 기능을 token transfer() 기능 안에 추가할 수 있게 만들었습니다:
위의 예시를 보면, 해커는:
1: A 컨트랙트를 사용하여 플래시 론으로 500 WETH를 대출하고 크림(Cream)에서 담보금으로 사용하여, 24170 crETH를 대출받습니다.
2: crETH를 사용하여 1948만 AMP를 대출받습니다.
3: 재진입(reentrancy) 버그를 사용하여 추가 borrow() 기능을 token transfer()기능 안에 추가하고, 기존의 borrow()가 업데이트되기 전에 355 ETH를 가져갑니다.
4: A가 대출받은 AMP의 절반(974만)을 가지고 있는 B 컨트랙트를 생성합니다.
5: B 컨트랙트는 A 대출의 일부를 상환하여, 187 WETH를 돌려받고 A 컨트랙트로 전송합니다.
6: A 컨트랙트는 재진입(reentrancy)을 통해 대출받은 ETH를 사용하여 플래시 론의 나머지를 상환하고, 이 트랜잭션을 통해 41 ETH와 974만 AMP를 수익으로 남깁니다.
비슷한 과정을 17개의 트랜잭션을 통해 진행하고, 총 6000 ETH에 가깝게 빼돌립니다.
이 기사를 작성할 당시, 훔친 ETH는 (현재 대략 1800만 달러의 가치) 해커의 주소에 남아있었습니다: 0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede
그들이 알파 파이낸스(Alpha Finance) 사건에 연관된 적은 있었지만, 이번이 크림 파이낸스(Cream Finance)가 직접 공격받은 첫 번째 사건입니다.
안 좋은 평판을 차치하고서라도, 오랜 세월 동안 사용되어 보증되었던 프로토콜들도 취약점이 있는 토큰이 추가될 때 문제가 발생할 수 있음을 깨달아야 합니다.
그러나, @muditgupta 님이 말씀하셨듯이;
...아마 [크림(Cream)] 은 단순히 대출 기능에 재진입(reentrancy) 보호를 추가했으면 될 일이었던 것 같네요.
어떻게 이렇게 간단할 수 있을까요?
REKT는 익명 작성자들에 의한 공공 플랫폼이며, REKT에 작성된 관점이나 내용에 대해서 그 어떤 책임도 지지 않습니다.
기부 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C
disclaimer:
REKT는 당사 웹 사이트의 익명의 작성자 또는 REKT에 의해 게시되거나 관련된 서비스에서 게시되는 콘텐츠에 대해 어떠한 책임도 지지 않습니다. 당사는 익명 작성자들의 행동 및 게시물에 대한 규칙을 제공하지만, 익명의 작성자가 웹 사이트 또는 서비스에 게시, 전송 혹은 공유한 내용을 통제하거나 책임지지 않으며, 귀하가 웹 사이트 또는 서비스에서 직면할 수 있는 불쾌함, 부적절함, 음란함, 불법 또는 기타 해로운 콘텐츠에 대해서도 책임을 지지 않습니다. REKT는 당사 웹 사이트 또는 서비스 사용자의 온라인 또는 오프라인 행위에 대한 책임을 지지 않습니다.
추천 기사들......
크림 파이낸스(Cream Finance) - REKT 2
크림 파이낸스가 약 1.3억 달러를 (또다시) 해킹당했습니다. 연 파이낸스의 탈중앙화 독점이 너무 크게 성장했습니다. 유저들을 신경 쓰지 않는다면 왜 그렇게 많은 프로토콜을 하나로 모아두었을까요?
포트리스 프로토콜(Fortress Protocol) - REKT
포트리스(요새)가 오라클 조작과 악의적인 거버넌스 법안으로 300만 달러를 도난당한 이후 폐허가 되었습니다. UI는 멈췄으나, 컨트랙트는 여전히 살아있습니다. 포트리스 생태계가 자금을 잃어버린 사용자들을 구제할까요?
MM 파이낸스(MM Finance) - REKT
매드 미어캣 파이낸스(미어캣 파이낸스와 다릅니다)가 DNS공격으로 200만 달러를 잃어버렸습니다. 백엔드 공격, 프론트엔드 공격, 대체 공격의 끝은 언제일까요?