CertiK: Bybit 사건의 기술적 분석

avatar
CertiK
1개월 전
이 글은 약 3185자,전문을 읽는 데 약 4분이 걸린다
Radiant Capital과 WazirX2가 수천만 달러를 잃은 데 이어 Bybit은 Web3.0 역사상 가장 큰 도난 피해를 입었습니다.

CertiK: Bybit 사건의 기술적 분석

이벤트 개요

2025년 2월 21일 오후 2시 16분 11초 UTC에 Bybit의 Ethereum 콜드 지갑(0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4[ 1 ])이 악의적인 계약 업그레이드로 인해 도난당했습니다. Bybit CEO Ben Zhou[2]의 성명에 따르면 공격자는 피싱 공격을 사용하여 콜드 월렛 서명자를 속여 실수로 악성 거래에 서명하도록 했습니다. 그는 해당 거래가 합법적인 작업으로 위장되었다고 언급했습니다. Safe{Wallet} 인터페이스는 정상적인 거래를 표시했지만 실제로 Ledger 장치로 전송된 데이터는 악성 콘텐츠로 인해 변조되었습니다. 공격자는 3개의 유효한 서명을 성공적으로 획득하고 Safe 다중 서명 지갑의 구현 계약을 악성 계약으로 바꿔서 자금을 훔쳤습니다. 이 취약점으로 인해 약 14억 6천만 달러의 손실이 발생하면서 Web3.0 역사상 가장 큰 보안 사고가 되었습니다.

공격 거래 기록

안전한 지갑 구현 계약을 악성 계약으로 업그레이드:

https://etherscan.io/tx/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882

Bybit 콜드 월렛에서 자금을 이체하기 위한 여러 거래:

  • 401,346 이더리움[ 3 ]

  • 15,000cmETH[4]

  • 8,000 mETH[ 5 ]

  • 90,375 stETH[ 6 ]

  • 90 USDT[ 7 ]

메인 주소

  • Bybit 멀티시그니처 콜드월렛(피해자) [8]

  • 공격자의 첫 번째 공격작전 주소[9]

  • 악의적인 계약 구현[10]

  • Safe delegate call 프로세스에서 사용되는 공격 계약[11]

공격 프로세스

1. 공격자는 공격 3일 전(2025년 2월 18일 UTC 시간)에 악성 계약 2개를 배포했습니다.

  • 이러한 계약에는 자금을 이체하기 위한 백도어 기능이 포함되어 있습니다.[12]

  • 그리고 계약 업그레이드를 가능하게 하기 위해 저장 슬롯을 수정하기 위한 코드[13]

2. 2025년 2월 21일, 공격자는 3개의 다중 서명 지갑 소유자(서명자)를 속여 악성 거래에 서명하게 했고, 이를 통해 안전 구현 계약을 백도어가 포함된 이전에 배포된 악성 계약으로 업그레이드했습니다[14]: https://etherscan.io/tx/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882

3. 공격 트랜잭션의 operation 필드 값은 1로, GnosisSafe 계약에 delegatecall을 실행하도록 지시하는 반면, 0은 Call을 나타냅니다.

CertiK: Bybit 사건의 기술적 분석

4. 트랜잭션은 공격자가 배포한 다른 계약에 대한 대리자 호출을 실행했습니다(0x96221423681a6d52e184d440a8efcebb105c7242[ 15 ]). 이 호출에는 호출 시 계약의 첫 번째 저장 슬롯인 uint 256 _transfer를 수정하는 transfer() 함수가 포함되어 있었습니다.

CertiK: Bybit 사건의 기술적 분석

GnosisSafe 계약에서 첫 번째 저장 슬롯에는 GnosisSafe 계약의 구현 계약 주소인 masterCopy 주소가 포함됩니다.

CertiK: Bybit 사건의 기술적 분석

CertiK: Bybit 사건의 기술적 분석

공격자는 Gnosis Safe 계약의 첫 번째 저장 슬롯을 수정하여 구현 계약 주소(즉, masterCopy 주소)를 변경할 수 있었습니다.

CertiK: Bybit 사건의 기술적 분석

CertiK: Bybit 사건의 기술적 분석

거래 세부 정보에서 공격자가 masterCopy 주소를 0x bDd 077 f 651 EBe 7 f 7 b3 cE 16 fe 5 F 2b 025 BE 2969516으로 설정했으며, 여기에는 아래에 설명된 sweepETH() 및 sweepERC 20() 함수가 포함되어 있음을 알 수 있습니다. CertiK: Bybit 사건의 기술적 분석

5. 공격자가 사용하는 계약 업그레이드 방법은 기존과 다르며 공격 의도를 감지하지 못하도록 특별히 설계되었습니다. Bybit 서명자의 관점에서 볼 때, 서명된 데이터는 의심을 불러일으킬 수 있는 업그레이드 함수라기보다는 단순한 전송(주소, uint 256) 함수 호출처럼 보입니다.

6. 업그레이드된 악성 구현 계약[16]에는 백도어 함수 sweepETH() 및 sweepERC 20()이 포함되어 있었습니다. 공격자는 이러한 함수를 호출하여 콜드 월렛에 있는 모든 자산을 이전했고 궁극적으로 14억 달러 상당의 ETH를 도난당했습니다.

CertiK: Bybit 사건의 기술적 분석

취약성 분석

이 침해의 근본 원인은 피싱 공격의 성공이었습니다. 공격자는 지갑 서명자를 속여 악성 거래 데이터에 서명하게 하며, 이로 인해 결국 계약이 악의적으로 업그레이드됩니다. 업그레이드를 통해 공격자는 콜드 월렛을 장악하고 모든 자금을 이체할 수 있게 되었습니다. 현재로서는 피싱 공격의 구체적인 계획 및 실행 방법은 아직 불분명합니다.

취약점이 발생한 지 2시간 후, Bybit CEO 벤 저우가 X 플랫폼에서 생중계한 설명에 따르면, Bybit 팀은 사고 발생 당시 콜드 월렛에서 핫 월렛으로 정기적인 자산 이전 프로세스를 수행하고 있었으며, 그가 안전 다중 서명 거래의 마지막 서명자였다고 합니다. 그는 거래가 위장되었다는 점을 분명히 지적했습니다. Safe{Wallet} 인터페이스에서 모든 서명자가 보는 주소와 거래 데이터는 올바른 내용으로 표시되었고, URL은 Safe{Wallet}에서 공식적으로 검증되었습니다. 하지만 거래 데이터가 서명을 위해 Ledger 하드웨어 지갑으로 전송되었을 때 실제 내용이 변조되었습니다. 벤 저우는 또한 Ledger 장치 인터페이스에서 거래 세부 정보를 두 번 확인하지 않았다고 언급했습니다. 공격자가 Safe{Wallet} 인터페이스를 어떻게 조작했는지는 아직 불확실합니다. Arkham[17]이 공개한 정보에 따르면, 온체인 분석가 @zachxbt는 해당 공격이 LAZARUS 해커 그룹에 의해 계획되고 실행되었다는 것을 보여주는 확실한 증거를 제출했습니다.

얻은 교훈

이 사건은 2024년 10월 16일에 발생한 Radiant Capital 침해 사건(참조문헌 1[18], 참조문헌 2[19])과 유사하며, 이로 인해 약 5,000만 달러가 도난당했습니다. 당시 공격자는 개발자의 기기를 침입하여 Safe{Wallet} 프런트엔드 인터페이스를 변조하여 합법적인 거래 데이터를 표시하도록 만들었지만, 실제로 하드웨어 지갑으로 전송된 데이터는 악성 콘텐츠였습니다. 이러한 유형의 변조는 수동 인터페이스 검토나 Tenderly 시뮬레이션 테스트 중에 감지되지 않았습니다. 공격자는 처음에 신뢰할 수 있는 전직 계약자로 가장하고 압축된 PDF 파일에 맬웨어(macOS에 지속적인 백도어를 생성)를 포함한 악성 소프트웨어를 Telegram 메시지를 통해 대상에게 전송하여 기기에 접근했습니다.

Bybit 사건의 인터페이스 변조의 근본 원인은 아직 확인되지 않았지만, 장치 손상이 주요 요인일 수 있습니다(Radiant Capital 사건과 유사). 두 사건 모두 공격이 성공하기 위한 두 가지 주요 전제 조건, 즉 장치 손상과 블라인드 서명을 드러냈습니다. 이러한 공격의 빈도가 증가하고 있으므로 다음 두 가지 공격 방법과 완화 전략을 분석하는 데 중점을 두어야 합니다.

1. 장치가 해킹되었습니다:

사회 공학을 통해 악성 코드를 퍼뜨려 피해자의 기기를 침입하는 것은 여전히 Web3.0 분야에서 대규모 공격의 주요 수단입니다. 이 방법은 LAZARUS GROUP과 같은 국가 기반 해커 그룹이 초기 방어선을 뚫기 위해 자주 사용합니다. 장치 침해로 인해 보안 제어를 효과적으로 우회할 수 있습니다.

완화 전략:

기기 보안 강화: 엄격한 엔드포인트 보안 정책을 개발하고 CrowdStrike와 같은 EDR 솔루션을 배포하세요.

전용 서명 장치 : 격리된 환경에서 전용 장치를 사용하여 거래 서명을 수행하면 다목적 장치가 노출될 위험을 피할 수 있습니다.

임시 운영 체제: 중요한 작업(예: 다중 서명 거래)을 위해 비영구적 운영 체제(예: 임시 가상 머신)를 구성하여 깔끔한 운영 환경을 보장합니다.

피싱 시뮬레이션 훈련: 보안 인식을 강화하기 위해 고위험 역할(암호 자산 운영자 및 다중 서명자 등)에 대한 피싱 공격 시뮬레이션을 정기적으로 실시합니다.

레드팀 공격 및 방어 훈련: 공격자의 전술을 시뮬레이션하여 기존 보안 제어의 효과를 평가하고 그에 따라 강화합니다.

2. 블라인드 시그니처 취약점:

익명 서명이란 사용자가 거래 세부 정보를 완전히 검증하지 않고 거래에 서명하는 것을 의미하며, 이로 인해 악의적인 거래가 실수로 승인되는 경우가 발생합니다. 이런 안전하지 못한 작업은 DeFi 사용자들에게 흔히 발생하며, 특히 많은 양의 자산을 관리하는 Web3.0 기관에는 매우 위험합니다. 하드웨어 지갑 Ledger는 최근 이 문제를 논의했습니다(참조 1[20], 참조 2[21]). Bybit 사건에서 악성 인터페이스는 거래의 실제 의도를 숨겨 변조된 데이터가 Ledger 기기로 전송되게 했고, 서명자는 기기 측에서 세부 정보를 확인하지 않았기 때문에 결국 취약점이 발생했습니다.

완화 전략:

검증되지 않은 Dapps를 피하세요: 신뢰할 수 있는 플랫폼에서만 상호작용하세요. 북마크를 통해 공식 플랫폼에 접속하고 피싱 링크는 피하세요.

하드웨어 지갑의 두 번째 검증: Ledger나 다른 장치의 화면에서 거래 세부 정보(수신 주소, 금액, 함수 호출)를 항목별로 확인하여 기대 사항과 일치하는지 확인합니다.

거래 시뮬레이션: 서명하기 전에 거래를 시뮬레이션하여 결과를 관찰하고 정확성을 확인합니다.

비시각적 인터페이스 사용: 타사 그래픽 인터페이스에 대한 의존도를 줄이려면 명령줄 도구(CLI)를 선택하세요. CLI는 UI 조작의 위험을 줄이고 거래 데이터에 대한 보다 투명한 보기를 제공합니다.

비정상적인 종료: 거래의 어느 부분에든 비정상적인 사항이 발견되면 서명 절차가 즉시 종료되고 조사가 시작됩니다.

이중 장치 검증 메커니즘: 서명하기 전에 별도의 장치를 사용하여 거래 데이터를 독립적으로 검증합니다. 해당 장치는 하드웨어 지갑에 표시된 데이터와 일치하는 읽을 수 있는 서명된 확인 코드를 생성해야 합니다.

Radiant Capital과 WazirX 2의 수천만 달러 손실[22] 이후 Bybit은 Web3.0 역사상 가장 큰 도난의 희생자가 되었습니다. 이러한 공격의 빈도와 복잡성은 계속해서 증가하고 있으며, 이로 인해 업계의 운영 보안에 대한 주요 결함이 노출되고 있습니다. 공격자는 체계적으로 고가치 대상을 노리고 있습니다. 적대자가 더 유능해짐에 따라, 중앙 집중형 거래소(CEX)와 Web3.0 기관은 보안 보호 수준을 종합적으로 개선하고 외부 위협의 반복적 진화에 대해 경계해야 합니다.

창작 글, 작자:CertiK。전재 / 콘텐츠 제휴 / 기사 요청 연락처 report@odaily.email;违규정 전재 법률은 반드시 추궁해야 한다.

ODAILY는 많은 독자들이 정확한 화폐 관념과 투자 이념을 수립하고 블록체인을 이성적으로 바라보며 위험 의식을 확실하게 제고해 달라고 당부했다.발견된 위법 범죄 단서에 대해서는 관련 부서에 적극적으로 고발하여 반영할 수 있다.

추천 독서
편집자의 선택