토르체인(THORChain) - REKT 2



토르체인이 망치질을 당했습니다.

프로토콜은 최근에 500만 달러의 공격을 당했습니다.

두 번째 공격은 800만 달러의 손실을 야기했습니다.

해커는 토르체인에게 분명한 메시지를 남겼지만, 토르체인이 처음에 화이트 해커에게 80만 달러만 잃은 것으로 착각했던 것으로 보아, 메시지가 충분히 분명하지 않았던 것으로 보입니다.

tx 데이터는 다르게 말하고 있습니다:

Source

토르체인은 공식 트위터 계정에서 항상 일상적인 대화 어조로 소통하였는데, 이는 공격을 당한 이후에도 마찬가지였습니다.

만약 당신이 10일 동안 1000만 달러가 넘는 사용자들의 자산을 도난당했다면, 팔로워가 늘었다는 사실을 축하하는 것은 좋은 생각이 아닌 것 같습니다.

새로운 팔로워들은 피를 흘리는 모습이 궁금했던 것이지, 성공을 나타내는 지표가 아닙니다.

토르체인 커뮤니티는 아직도 열정적이지만, 그들이 고통받는 지금은 열정이 조금 다르게 나타납니다.

다음의 메시지는 RUNE 보유자가 공격자에게 보낸 트랜잭션에서 확인된 것입니다.

“흉악한 놈”

이러한 분노는 어디서 생겨난 것일까요?

Credit: Halborn Security

공격은 22.07.2021 - 21:42 GMT에 시작되었습니다.

공격자는 ETH 라우터 컨트랙트를 통해 토르체인 바이프로스트 부분을 목표로 하여 공격하였습니다.

트랜잭션이 일어날 동안, 다음의 주소들이 트랜잭션에서 발견되었습니다.

라우터: 0xc145990e84155416144c532e31f89b840ca8c2ce

볼트: 0xf56cba49337a624e94042e325ad6bc864436e370

공격 컨트랙트: 0x700196e226283671a3de6704ebcdb37a76658805

공격 지갑 (토네이도 캐시에서 생성됨): 0x8c1944fac705ef172f21f905b5523ae260f76d62

아래에서 간단한 공격과정을 확인하실 수 있습니다.

공격자는 가짜 라우터를 만들었고 (컨트랙트 주소), 공격자가 ETH을 보내자 입금 이벤트가 발생하였습니다.

공격자는 적은 양의 ETH로 returnVaultAssets()를 전달했고, 라우터는 아스가르드 볼트로 정의되었었습니다.

토르체인 라우터는 가짜 아스가르드로 ETH를 포워딩하였습니다.

이는 악의적인 메모와 함께 가짜 입금 이벤트를 만들어냈습니다.

토르체인 바이프로스트는 정상적인 입금으로 착각하여 메모 정의가 잘못되었으므로 자산을 공격자에게 되돌려주었습니다.

컨트랙트 주소

트랜잭션 1

트랜잭션 2

트랜잭션 3

트랜잭션 4

트랜잭션 5

트랜잭션 6

공격자의 마지막 트랜잭션

토르체인에 대한 트랜잭션은 사용자 입력을 포함하는 체인의 MEMO 필드를 통해 사용자 의도(user-intent)를 전달합니다.

토르체인은 트랜잭션의 처리를 위해서 트랜잭션 오브젝트와 함께 MEMO를 검사하기 때문에, 트랜잭션과 MEMO 모두 유효한지를 확인해야 합니다. 만약 유효하지 않다면, 토르체인은 자동으로 환불을 진행합니다. (Reference.)

해커는 환불 로직을 목표로 공격하였습니다. 이 공격은 다중 이벤트 처리 능력의 부족으로 명명될 수 있겠습니다.

받은 충격 (~800만 달러)

966.62 ALCX

20,866,664.53 XRUNE

1,672,794.010 USDC

56,104 SUSHI

6.91 YFI

990,137.46 USDT

RUNE의 가격은 25% 하락했으나, 보유자들은 더 많은 안 좋은 뉴스를 보게 될 예정입니다.

이전 공격과 비슷하게, 취약점은 RUNE 토큰 컨트랙트 코드내에서 개발자들이 결정한 것들 때문에 발생하게 되었습니다.

공격 이후 몇 시간 뒤, 여러 주소로 알 수 없는 토큰들이 보내졌습니다; UniH.

이 토큰을 매도하려고 했던 사람들은, 허가를 하지 않았음에도 본인들의 모든 RUNE 잔고가 빠져나가는 일을 겪었습니다.

RUNE의 transferTo 기능은 msg.sender대신에 tx.origin를 사용하였는데, 이는 솔리디티 문서에서도 나와 있듯이 보유자의 RUNE을 이동시킬 수 있는 악의적인 컨트랙트가 작동하도록 만들 수 있기 때문에 사용하면 안 된다고 확실하게 적혀있는 내용이었습니다.

이번 사건은 이 예시와 같이, 프로토콜이 UniH를 사용할 수 있게 허가를 내어줌으로써 지갑 내의 모든 RUNE을 가져갈 수 있게 만들었습니다.

코드의 코멘트에서도 나와 있듯이 이 취약점은 이미 팀이 인지하던 부분이었고, "비표준"이라고 인정된 부분이었습니다.

토르체인 개발자가 해커들을 위해 설명을 남긴 또 다른 사례입니다.

Credit: Mudit Gupta

토르체인은 또다시 rekt되었고, 그들은 본인들 외에는 비난할 사람도 없습니다.

DeFi의 "블루칩"까지는 아니었지만, 토르체인은 자리를 확실히 잡았던 플레이어였고, 많은 사람은 토르체인이 이렇게 빨리 무너지는 것을 보며 매우 실망했을 것입니다.

왜 지금, 그리고 왜 이렇게 연쇄적으로 짧은 시간 간격으로 사건이 발생했을까요?

토르체인 팀 내부에서 무언가 바뀌었을까요? 아니면 누군가를 실망하게 해 그들이 토르체인을 공격하고 싶은 동기를 제공하였을까요?

800만 달러의 수익은 그 누구에게도 충분한 동기였을 것이나, 이 익명의 안티히어로는 대부분의 전리품을 남기고 떠났습니다…

이것은 부를 위함이 아니었고, 힘을 보여주려 한 것입니다.

연속적인 중대한 실수 이후에 토르체인과 그들의 열렬한 지지자들은 어떤 행보를 보일까요?


기사 공유하기

REKT는 익명 작성자들에 의한 공공 플랫폼이며, REKT에 작성된 관점이나 내용에 대해서 그 어떤 책임도 지지 않습니다.

기부 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

disclaimer:

REKT는 당사 웹 사이트의 익명의 작성자 또는 REKT에 의해 게시되거나 관련된 서비스에서 게시되는 콘텐츠에 대해 어떠한 책임도 지지 않습니다. 당사는 익명 작성자들의 행동 및 게시물에 대한 규칙을 제공하지만, 익명의 작성자가 웹 사이트 또는 서비스에 게시, 전송 혹은 공유한 내용을 통제하거나 책임지지 않으며, 귀하가 웹 사이트 또는 서비스에서 직면할 수 있는 불쾌함, 부적절함, 음란함, 불법 또는 기타 해로운 콘텐츠에 대해서도 책임을 지지 않습니다. REKT는 당사 웹 사이트 또는 서비스 사용자의 온라인 또는 오프라인 행위에 대한 책임을 지지 않습니다.