느린 안개: Cetus 도난 사건 분석, 1개의 토큰으로 2.3억 달러를 탈취, SUI 재단이 1.62억 달러 동결 지원

슬로우미스트
2025-05-27 11:23:16
수집
Cetus는 스마트 계약 오버플로우 취약점으로 인해 공격자에게 극소 비용으로 막대한 유동성을 교환당해 2억 3천만 달러 이상의 손실을 입었으며, 일부 자산은 동결되었고, 취약점은 수정되었습니다.

원문 제목:《느린 안개: Cetus 2.3억 달러 도난 사건 분석》

원문 저자: Victory, Lisa, 느린 안개 기술

배경

5월 22일, 커뮤니티 소식에 따르면 SUI 생태계의 유동성 제공자 Cetus가 공격을 받은 것으로 보이며, 유동성 풀의 깊이가 크게 감소하고 Cetus의 여러 토큰 거래 쌍에서 하락세가 나타났으며, 예상 손실 금액은 2.3억 달러를 초과할 것으로 보입니다. 이후 Cetus는 "우리 프로토콜에서 사건이 감지되었으며, 안전을 위해 스마트 계약이 일시 중지되었습니다. 현재 팀이 해당 사건에 대한 조사를 진행 중입니다. 곧 추가 조사 성명을 발표할 것입니다."라고 발표했습니다.

사건 발생 후, 느린 안개 보안 팀은 즉시 분석에 착수하고 보안 경고를 발표했습니다. 다음은 공격 방식 및 자금 이동 상황에 대한 자세한 분석입니다.

관련 정보

이번 사건의 핵심은 공격자가 정교하게 구성된 매개변수를 통해 오버플로우가 발생하게 하여 탐지를 우회하고, 결국 극소량의 토큰으로 막대한 유동성 자산을 교환할 수 있게 만든 것입니다. 다음은 구체적인 단계 분석입니다:

(공격 시퀀스 다이어그램)

  1. 공격자는 먼저 플래시 론을 통해 10,024,321.28개의 haSUI를 빌려와서 풀의 가격을 18,956,530,795,606,879,104에서 18,425,720,184762886으로 급락시켰으며, 가격 하락 폭은 99.90%에 달했습니다.

  1. 공격자는 매우 좁은 가격 범위에서 유동성 포지션을 개설했습니다:

하한: 300000(가격: 60,257,519,765,924,248,467,716,150)

상한: 300200(가격: 60,863,087,478,126,617,965,993,239)

가격 범위 폭: 단 1.00496621%

  1. 이어서 이번 공격의 핵심인 공격자는 10,365,647,984,364,446,732,462,244,378,333,008 단위의 막대한 유동성을 추가하겠다고 선언했지만, 시스템의 취약점으로 인해 단 1개의 토큰 A만 수수료로 부과되었습니다.

우리가 분석해보면 공격자가 1개의 토큰으로 막대한 유동성을 교환할 수 있었던 이유는 getdeltaa 함수 내의 checked_shlw에 오버플로우 탐지 우회 취약점이 존재했기 때문입니다. 공격자는 이를 이용하여 시스템이 실제로 얼마나 많은 haSUI를 추가해야 하는지를 심각하게 잘못 계산하게 만들었습니다. 오버플로우가 탐지되지 않으므로 시스템은 필요한 haSUI의 수량을 잘못 판단하여 공격자가 극소량의 토큰으로도 막대한 유동성 자산을 교환할 수 있게 되었습니다.

시스템이 이렇게 막대한 유동성을 추가하기 위해 필요한 haSUI의 양을 계산할 때:

여기서 핵심은 checked_shlw 함수의 구현에 심각한 결함이 있다는 것입니다. 실제로 0xffffffffffffffff << 192보다 작은 입력 값은 모두 오버플로우 탐지를 우회합니다. 그러나 이러한 값이 64비트 왼쪽으로 이동하면 결과가 u256의 표현 범위를 초과하게 되어, 고위 데이터가 잘리게 되어 이론값보다 훨씬 작은 결과를 얻게 됩니다. 이로 인해 시스템은 후속 계산에서 필요한 haSUI의 수량을 과소 평가하게 됩니다.

· 잘못된 마스크: 0xffffffffffffffff << 192 = 매우 큰 수치 (약 2^256-2^192)

· 거의 모든 입력이 이 마스크보다 작아 오버플로우 탐지를 우회함

· 진짜 문제: n >= 2^192일 때, n << 64는 u256 범위를 초과하여 잘리게 됨

공격자가 구성한 중간값 liquidity * sqrtpricediff = 6277101735386680763835789423207666908085499738337898853712:

· 잘못된 마스크보다 작아 오버플로우 탐지를 우회함

· 그러나 64비트 왼쪽으로 이동하면 u256 최대값을 초과하여 초과된 부분이 잘리게 됨

· 최종 계산 결과가 약 1보다 작아지지만, 올림 처리로 인해 quotient는 1이 됨

  1. 마지막으로 공격자는 유동성을 제거하고 막대한 토큰 수익을 얻습니다:

· 첫 번째 제거: 10,024,321.28개의 haSUI 획득

· 두 번째 제거: 1개의 haSUI 획득

· 세 번째 제거: 10,024,321.28개의 haSUI 획득

  1. 공격자는 플래시 론을 상환하고 약 10,024,321.28개의 haSUI와 5,765,124.79개의 SUI를 순이익으로 얻어 공격을 완료합니다.

프로젝트 측 수정 상황

공격 발생 후, Cetus는 수정 패치를 발표했습니다. 구체적인 수정 코드는 다음을 참조하십시오: https://github.com/CetusProtocol/integer-mate/pull/7/files#diff-c04eb6ebebbabb80342cd953bc63925e1c1cdc7ae1fb572f4aad240288a69409.

수정된 checked_shlw 함수는 다음과 같습니다:

수정 설명: 잘못된 마스크 0xffffffffffffffff << 192를 올바른 임계값 1 << 192로 수정하고, 판단 조건을 n > mask에서 n >= mask로 수정하여 64비트 왼쪽 이동이 오버플로우를 초래할 수 있을 때 올바르게 탐지하고 오버플로우 플래그를 반환하도록 보장합니다.

MistTrack 분석

분석에 따르면, 공격자 0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06은 약 2.3억 달러를 획득했으며, SUI, vSUI, USDC 등 다양한 자산을 포함합니다.

우리는 공격자가 이틀 전에 이미 가스 요금을 준비했으며, 공격 전에 한 번 시도했지만 실패했다는 것을 발견했습니다:

수익을 얻은 후, 공격자는 일부 자금을 USDC, SOL, suiETH와 같은 자산을 Sui Bridge, Circle, Wormhole, Mayan과 같은 크로스 체인 브리지를 통해 EVM 주소 0x89012a55cd6b88e407c9d4ae9b3425f55924919b로 이동했습니다:

그 중 5.2341 WBNB가 BSC 주소 0x89012a55cd6b88e407c9d4ae9b3425f55924919b로 크로스 체인되었습니다:

이후 공격자는 1,000만 달러 상당의 자산을 Suilend에 예치했습니다:

공격자는 또한 24,022,896 SUI를 새 주소 0xcd8962dad278d8b50fa0f9eb0186bfa4cbdecc6d59377214로 전송했으며, 현재까지 전송되지 않았습니다:

다행히도, Cetus에 따르면 SUI 재단 및 기타 생태계 구성원과의 협력으로 현재 SUI에서 1.62억 달러의 도난 자금을 성공적으로 동결했습니다.

(https://x.com/CetusProtocol/status/1925567348586815622)

다음으로, 우리는 체인 상 반자금 세탁 및 추적 도구인 MistTrack을 사용하여 EVM에서 크로스 체인 자금을 수신하는 주소 0x89012a55cd6b88e407c9d4ae9b3425f55924919b를 분석합니다. 해당 주소는 BSC에서 5.2319 BNB를 수신했으며, 아직 전송되지 않았습니다:

해당 주소는 Ethereum에서 3,000개의 USDT, 4,088만 개의 USDC, 1,771개의 SOL 및 8,130.4개의 ETH를 수신했습니다. 이 중 USDT, USDC 및 SOL은 coW Swap, Para Swap 등을 통해 ETH로 교환되었습니다:

이후 해당 주소는 20,000 ETH를 주소 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16으로 전송했으며, 아직 전송되지 않았습니다:

현재 해당 주소의 Ethereum 잔액은 3,244 ETH입니다:

MistTrack은 위의 관련 주소를 악성 주소 데이터베이스에 추가했으며, 우리는 지속적으로 주소 잔액을 모니터링할 것입니다.

요약

이번 공격은 수학적 오버플로우 취약점의 위력을 보여주었습니다. 공격자는 정밀한 계산을 통해 특정 매개변수를 선택하고 checked_shlw 함수의 결함을 이용하여 1개의 토큰 비용으로 수십억 가치의 유동성을 획득했습니다. 이는 매우 정교한 수학적 공격으로, 느린 안개 보안 팀은 개발자들이 스마트 계약 개발 시 모든 수학 함수의 경계 조건을 엄격히 검증할 것을 권장합니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축