크림 파이낸스(Cream Finance) - REKT
조사관 rekt가 다시 돌아왔습니다.
1880만 달러가 은밀한 킬러에게 도난당했고, 이번에는 초창기 DeFi 프로토콜이 당했습니다.
크림 파이낸스(Cream Finance) 는 Trail of Bits로부터 2021년 1월 28일에 오딧(audit)을 받았습니다(저희의 leaderboard에 없는 몇 안되는 오딧(audit)업체 입니다)
그러나, 가장 강력한 오딧(audit)도 프로토콜이 바뀌어 버리면 아무 의미가 없어집니다.
2021년 2월 10일에, 크림 프로포절(Cream proposal)은 AMP 토큰을 담보 수단으로 추가했고, 허점이 발생했습니다.
Credit: @peckshield
418,311,571 AMP 토큰과 1,308.09 ETH 가 크림 파이낸스(Cream Finance)의 AMP 토큰 컨트랙트에서 도난당했습니다.
AMP 토큰 컨트랙트는 ERC77-베이스의 ERC1820을 도입하였고, 이는 _callPreTransferHooks 라는 기능을 재진입(reentrancy)을 위해 사용하는 것이었습니다.
AMP 토큰 컨트랙트의 재진입(reentrancy) 취약성은 해커들이 기존 borrow() 기능이 업데이트되기 전에, 두 번째 borrow() 기능을 token transfer() 기능 안에 추가할 수 있게 만들었습니다:
해킹당한 예시 트랜잭션 (17개 중 한 개)
위의 예시를 보면, 해커는:
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
크림(Cream)은 좋은 평판을 가졌던 적이 없습니다. 아마도 이것이 많은 사람이 이번 해킹이 첫 번째가 아니고 두 번째나 세 번째일 것으로 믿는 이유일 것입니다
그들이 알파 파이낸스(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만 달러를 잃어버렸습니다. 백엔드 공격, 프론트엔드 공격, 대체 공격의 끝은 언제일까요?