Cobo 보안 팀: WazirX 도난 코인 사건 분석

CoboGlobal
2024-08-01 18:58:40
수집
Cobo 보안 팀은 최근 인도 암호화폐 거래소 WazirX가 공격받은 사건에 대해 자세한 분석을 진행했습니다.

1 사건 개요

2024년 7월 18일, 인도 암호화폐 거래소 WazirX의 다중 서명 지갑이 2억 3천만 달러 이상이 도난당했습니다. 해당 다중 서명 지갑은 Safe{Wallet} 스마트 계약 지갑입니다. 공격자는 다중 서명자에게 계약 업그레이드 거래에 서명하도록 유도하였고, 공격자는 업그레이드된 계약을 통해 지갑 내 자산을 직접 전송하여 최종적으로 약 2억 3천만 달러의 자산을 모두 빼냈습니다.

2 공격 과정 분석

주: 아래 분석은 WazirX와 Liminal의 사후 보고서, 체인 상 데이터, 인터넷 공개 정보를 기반으로 하며, 정보가 불완전하거나 오류가 있을 수 있어 분석 결론에 차이가 있을 수 있습니다. 분석 결과는 참고용이며, 구체적인 사항은 당사자의 후속 조사 결과에 따릅니다.

원문 링크:

  • WazirX 블로그 : https://wazirx.com/blog/wazirx-cyber-attack-key-insights-and-learnings/

  • Liminal Custody 블로그 : https://www.liminalcustody.com/blog/update-on-wazirx-incident/

2.1 다중 서명 지갑 구성 및 공격 과정

양측이 공개한 정보에 따르면, WazirX는 Safe(구 Gnosis Safe)를 사용하여 자금을 관리하고 Liminal을 통해 협력 관리합니다. 해당 Safe 지갑은 4/6 서명 방식을 채택하고 있으며, 5개의 개인 키는 WazirX 구성원이 하드웨어 지갑으로 관리하고, 1개의 개인 키는 Liminal이 HSM을 통해 관리합니다.

정상적인 프로세스에서 WazirX는 Liminal 플랫폼의 웹페이지를 통해 거래 이체를 시작하며, 이체 주소는 Liminal 플랫폼에서 유지하는 주소 화이트리스트에 의해 제한됩니다. WazirX의 5명의 서명자 중 3명이 거래가 정확하다고 확인한 후 하드웨어 지갑으로 서명합니다. Liminal 플랫폼은 3개의 서명을 수집한 후 HSM을 사용하여 마지막 서명을 추가하고 거래를 블록체인에 기록합니다. 체인 상 공격 거래를 보면, 공격 거래에는 실제로 3개의 유효한 서명이 포함되어 있으며, 4번째 서명은 거래를 시작한 자(즉, Liminal)로, 공개된 지갑 관리 구조와 일치합니다.

Liminal과 WazirX 양측의 보고서를 종합하면, 이 악의적인 다중 서명 거래가 시작된 과정은 다음과 같습니다:

  1. 공격자는 어떤 알려지지 않은 수단(0-day 네트워크 공격, 사회 공학 공격 등 포함)으로 WazirX 서명 거래를 유도합니다.

  2. WazirX의 3명 구성원은 각각 북마크 등을 통해 Liminal 플랫폼에 로그인하고 Google 인증 및 MFA 인증을 통과한 후, 서명 대기 중인 거래가 2건의 GALA와 1건의 USDT 이체 거래임을 확인하고 하드웨어 지갑으로 서명합니다. 그러나 실제 피해자가 서명한 내용은 토큰 이체 거래가 아니라 다중 서명 지갑의 계약 업그레이드 거래입니다. 실제 거래 내용과 주장된 이체 거래가 일치하지 않아 Liminal 플랫폼은 3건의 거래를 각각 거부했습니다.

  3. 이로써 공격자는 계약 업그레이드 거래에 대한 3명의 구성원의 서명을 수집하고, 다시 Liminal 플랫폼에 악의적인 계약 업그레이드 거래를 제출하며 3개의 올바른 서명을 첨부합니다.

  4. Liminal 플랫폼은 서명이 정확하다고 확인한 후, 4번째 서명자로 거래를 시작하고 거래가 블록체인에 기록된 후, 지갑 계약이 업그레이드되어 제어권이 공격자에게 이전됩니다.

WazirX의 설명에 따르면, 서명자는 하드웨어 지갑으로 개인 키를 보관합니다. 공격자는 또한 위조된 이체 거래 방법으로 3명의 서명자의 서명을 수집했습니다. 따라서 3명의 WazirX 관리자가 개인 키 유출 상황에 없었다고 추론할 수 있습니다. 마찬가지로 Liminal도 개인 키 유출 상황이 없으며, 그렇지 않았다면 공격자는 Liminal 플랫폼을 통해 마지막 거래를 시작할 필요가 없었을 것입니다.

한편, WazirX의 설명에 따르면, 서명자는 북마크를 통해 올바른 Liminal 플랫폼에 접근하고 Google 및 MFA 인증을 수행했습니다. Liminal 플랫폼은 또한 3건의 이상 거래 로그를 기록했으므로 WazirX가 가짜 Liminal 플랫폼 피싱 페이지에 로그인하여 서명이 수집된 가능성을 배제할 수 있습니다. 또한 WazirX가 공개한 장비의 초기 증거 결과에 따르면, WazirX의 3명의 서명자의 장비는 공격을 받지 않았다고 판단됩니다.

종합적으로 볼 때, 가능한 공격 수단 중 하나는 공격자가 중간자 공격, XSS 공격 또는 기타 제로데이 공격 등의 수단으로 WazirX 피해자의 브라우저 프론트 페이지를 탈취하여 WazirX 피해자에게 합법적인 거래 내용을 위조하여 보여준 것입니다. 공격자는 3명의 WazirX 피해자의 서명을 수집한 후, 기존 세션을 통해 Liminal 플랫폼에 최종 계약 업그레이드 공격 거래를 제출하고 Liminal 플랫폼의 리스크 관리를 통해 성공적으로 블록체인에 기록했습니다.

2.2 공격 사건이 드러낸 문제점

앞서 분석한 바에 따르면, WazirX와 Liminal 양측 모두 사건에서 일정 문제를 드러냈습니다.

Liminal 플랫폼 리스크 관리가 엄격하지 않음:

  • 최종 블록체인 상의 공격 거래에서 볼 수 있듯이, Liminal 플랫폼은 계약 업그레이드 거래에 서명하고 블록체인에 기록했습니다. 플랫폼의 화이트리스트 이체 리스크 관리 전략이 제대로 작동하지 않았습니다.

  • Liminal 플랫폼이 공개한 로그에서 플랫폼은 이미 3건의 의심 거래를 발견하고 거부했지만, 즉시 사용자에게 경고하거나 지갑 이체 거래를 동결하지 않았습니다.

WazirX가 하드웨어 지갑 서명 내용을 면밀히 확인하지 않음:

  • 하드웨어 지갑에 표시된 내용이 실제 서명 대기 중인 거래 내용입니다. WazirX 서명자는 다중 서명 거래를 서명할 때 Liminal 페이지에 표시된 거래를 신뢰하고, 하드웨어 지갑의 서명 대기 내용과 Liminal 페이지에 표시된 거래가 일치하는지 면밀히 확인하지 않고 직접 서명하여 공격자가 필요로 하는 계약 업그레이드 거래의 서명을 제공했습니다.
체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축