Back to Blog

#8: 스시스왑 사건: 어설픈 구조 시도가 연쇄 모방 공격으로 이어지다

Code Auditing
February 18, 2024
5 min read

2023년 4월 9일, SushiSwap은 검증되지 않은 외부 파라미터로 인한 익스플로잇의 표적이 되었습니다. 총 손실액은 약 330만 달러입니다.

상당한 사용자 기반을 보유한 이더리움의 선도적인 프로토콜로서, 이러한 최상위 프로토콜조차도 컨트랙트 업그레이드 중에 심각한 새로운 문제가 발생할 수 있습니다. 이는 보안이 항상 최우선 순위여야 한다는 것을 DeFi 커뮤니티에 상기시켜 줍니다. 더욱이, 이 보안 사고는 화이트햇 보안 연구자의 구조 시도로 인해 촉발되어 커뮤니티 내에서 상당한 논쟁을 불러일으켰으며, 우리는 이 사고를 2023년 10대 보안 사고 중 하나로 선정하여 간략하게 소개합니다.

배경

SushiSwap

저명한 DEX인 SushiSwap은 Uniswap을 대상으로 뱀파이어 공격을 감행하여 엄청난 성공을 거두었습니다. 최고조에 달했을 때 TVL은 80억 달러에 달했으며, 현재도 약 4억 달러를 유지하고 있습니다.

승인(Approval)

요약하자면: 특정 토큰을 지갑에서 접근하고 전송할 수 있도록 컨트랙트에 권한을 부여하는 것입니다.

편의를 위해 많은 컨트랙트는 기본적으로 무제한 승인을 요청합니다. 보안 위험을 우려하는 많은 사용자들은 다양한 프로토콜에 소액만 예치합니다. 그러나 이러한 사용자들은 프로토콜에 무제한 자금 승인을 부여하며, 프로토콜이 침해될 경우 계정에서 승인된 모든 토큰이 손실될 수 있습니다.

취약점

검증되지 않은 외부 파라미터

RouteProcessor2 컨트랙트의 processRoute()는 사용자가 호출 흐름(파라미터 route)을 완전히 제어할 수 있도록 허용합니다. 그리고 uniswapV3SwapCallback()에서 safeTransferFrom()의 파라미터 from은 사용자가 제공한 route에서 디코딩됩니다. 결과적으로, RouteProcessor2 컨트랙트를 승인한 사용자들은 자산을 잃었습니다.

공격 과정

이 사고에는 여러 공격 트랜잭션이 포함되었지만, 첫 번째 공격 트랜잭션을 예시로 사용하겠습니다. 트랜잭션: 0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9

  1. 공격자는 신중하게 구성된 긴 인수 route를 사용하여 취약한 RouteProcessor2 컨트랙트의 processRoute()를 호출했습니다.
  2. processRouteInternal()은 사용자가 제공한 route를 기반으로 InputStream을 생성합니다.
  3. 트랜잭션은 공격자의 route를 따라 swapUniV3()에 도달했습니다. poolstream에서 디코딩된다는 점에 주목하세요. 이는 공격자가 swap()pool을 제어하여 이를 lastCalledPool로 설정했음을 의미합니다.
  4. 이로 인해 공격자가 배포한 악성 컨트랙트가 호출되었으며, 공격자는 단순히 악성 calldata를 전달하여 RouteProcessor2의 uniswapV3SwapCallback()을 콜백했습니다.
  5. uniswapV3SwapCallback()은 msg.sender 검사를 요구하지만, lastCalledPool이 이미 악성 컨트랙트로 설정되어 있었기 때문에 해커는 이 검사를 우회했습니다. 중요한 것은, safeTransferFrom()의 파라미터 from이 공격자가 구성한 calldata에서 디코딩되었다는 점입니다.
  6. 피해자의 자산이 공격자가 배포한 악성 컨트랙트로 전송됩니다.

논란이 된 화이트햇 구조 시도

@trust__90이라는 사용자명의 화이트햇이 이 문제를 발견하고 자금 구조를 시도했지만, 이 구조 시도는 오히려 재앙을 초래했다는 점을 언급할 필요가 있습니다.

  • 비공개 RPC 대신 멤풀을 통해 트랜잭션을 브로드캐스트했습니다.
  • 위험에 처한 모든 자금 대신 100 이더만 구조하려 했습니다.

이로 인해 MEV 봇과 다른 공격자들이 여러 모방 트랜잭션을 실행할 수 있는 문이 열렸으며, 결과적으로 대부분의 자금이 유출되었습니다. 이러한 사건 이후, @trust__90은 비난을 받았으며 자신의 행동을 변호하려 했습니다.

BlockSec의 구조

이 공격에서 우리도 100 이더를 구조하여 피해자인 0xsifu에게 자금을 반환했습니다.

현재까지 우리는 실제 해킹 시도 20건 이상을 성공적으로 저지하고 1,400만 달러 이상의 자산을 구조했습니다.

보안 권고사항

업그레이드는 항상 감사를 받아야 합니다

이는 DeFi 커뮤니티에 보안이 항상 최우선 순위여야 한다는 것을 상기시켜 줍니다. 감사가 보안을 보장하지는 않지만, 감사의 부재는 분명히 안전을 보장하지 않습니다.

승인 문제에 대한 완화 방법

2023년에는 승인 공격과 관련된 수많은 사고가 발생했으며, 우리는 이 기회를 통해 승인 관리의 중요성을 다시 한번 강조합니다. 보안적 실천 방법은 필요한 금액만 승인하거나, 편의성이 우선시된다면 필요한 금액보다 약간 더 많은 금액을 승인하는 것입니다.

BlockSec의 MetaSuites는 편리한 승인 진단 기능을 제공합니다. 또한 Revoke Cash와 같은 도구를 사용하여 정기적으로 승인 상태를 확인할 수 있습니다.

모니터링 및 자동 대응 메커니즘 도입

이더리움은 어두운 숲이며, DeFi 커뮤니티의 모든 구성원은 보안 전문가조차도 다양한 위험과 도전에 직면합니다. 2023년에 우리는 공격을 모니터링하는 것뿐만 아니라 실시간으로 위협을 적극적으로 차단하도록 설계된 업계 최초의 자동화 대응 시스템인 Phalcon Security를 출시했습니다. Phalcon의 실전에서 검증된 역량은 실제 해킹 시도 20건 이상을 성공적으로 저지하고 1,400만 달러 이상의 자산을 구조함으로써 그 효과를 입증했습니다. 이 혁신은 모든 이해관계자들이 자신의 투자를 보호하기 위한 사전 예방 조치가 마련되어 있다는 것을 알고 더욱 안심하고 밤을 보낼 수 있도록 보장합니다.

이 시리즈의 다른 글 읽기:

Sign up for the latest updates
~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리
Security Insights

~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리

이 주간 블록체인 보안 리포트는 2026년 6월 22~28일 발생한 주요 사건 2건을 다루며, 이더리움과 카르다노에서 약 410만 달러의 피해가 확인됐습니다. Taiko 브릿지 공격은 노출된 SGX 서명 키와 디버그 엔클레이브를 거부하지 못한 증명 정책 결함을 이용해 악성 증명자를 등록하고 L2 상태 증명을 위조했습니다. SecondFi 지갑은 Ed25519 논스 도출 시 비밀 입력이 제거되는 결함으로 공개 트랜잭션 데이터만으로 개인 키 복구가 가능했습니다.

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리
Security Insights

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리

이 주간 블록체인 보안 보고서는 2026년 6월 15일~21일을 다루며, 이더리움과 BNB 체인에서 3건의 주요 사고가 발생해 약 $18.3M의 손실이 발생했습니다. jaredFromSubway 사건은 MEV 봇이 차익거래를 위해 신뢰할 수 없는 제3자 컨트랙트에 자산을 승인한 역방향 승인 공격으로, 가짜 래퍼 토큰과 스왑 풀을 이용해 약 $15M 손실이 발생했습니다. Aztec은 이스케이프 해치 ZK 회로의 제약 누락으로 공격자가 가짜 머클 트리로 온체인 검증을 통과했습니다.

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

BlockSec가 Web3 Companion을 오픈소스로 공개했습니다. 이 보안 중심의 에이전트 지갑은 자체 AI 에이전트를 신뢰하지 않는 방식으로 설계되었으며, 키 격리, 강력한 정책, Passkey를 활용해 온체인 자산을 보호합니다.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit