사기 & 미스터리약 6분Ethereum (ETH)

노마드의 복사 공격: 무너진 메시지 검증과 길어진 자금 회수

2022년 8월 1일, 노마드의 메시지 인증 결함으로 위조된 브릿지 메시지가 통과했습니다. 다른 참여자들은 공개된 트랜잭션의 수신 주소를 바꿔 공격을 따라 했습니다. 당시 유출 추정액은 약 1억 9,000만 달러였으며, 회수에는 자금 추적·반환과 분배 구조 재설계가 필요했습니다.

노마드의 복사 공격: 무너진 메시지 검증과 길어진 자금 회수

핵심 요약

  • 공식 분석에 따르면 운영 환경 업그레이드는 2022년 6월 21일 이루어졌습니다. 메시지 매핑의 기본값과 제로 루트 승인이 결합해 결함이 발생했습니다.
  • 수신 주소를 바꾸면 다른 메시지가 되어 같은 결함을 악용할 수 있었습니다. 이미 처리된 동일 메시지를 무한히 다시 지급하는 구조는 아니었습니다.
  • 8월 5일 보상은 조건을 충족한 반환에 최대 10%를 제공하는 내용이었습니다. 12월 20일 업데이트는 회수 자금 분배를 위한 재개를 알렸으며 전액 상환 완료를 뜻하지 않았습니다.

사건의 흐름 한눈에 보기

2022-06-21운영 환경 업그레이드

노마드 공식 분석이 문제가 된 운영 환경 업그레이드 날짜로 명시한 날입니다.

2022-08-01위조 메시지로 자금 유출

메시지 인증 결함을 악용한 뒤, 다른 참여자들이 공개된 호출의 수신 주소를 바꿔 공격을 따라 했습니다.

2022-08-05조건부 보상과 원인 분석 공개

노마드는 분석과 함께 90% 이상 반환 시 최대 10% 보상 및 한정된 법적 조치 약속을 발표했습니다.

2022-08-17진행 중인 회수

노마드는 약 20%인 3,700만 달러 이상을 회수했다고 보고하고 분배를 위한 재개 계획을 제시했습니다.

2022-12-20회수 목적의 재개 발표

12월 7일 안내의 업데이트가 비례 회수 청구를 위한 자산 반환 절차 재개를 알렸습니다.

1. 검증하지 않은 메시지를 받아들인 브릿지

노마드는 블록체인 사이로 메시지를 전달해 네트워크를 연결했습니다. Replica 컨트랙트는 BridgeRouter가 메시지에 따라 동작하기 전에 수신 메시지를 인증하는 역할을 맡았습니다. 옵티미스틱 설계에서는 메시지가 머클 루트와 연결되고, 해당 루트의 대기 기간이 지나야 했습니다. 메시지·루트·확인 시각의 관계가 정상적인 브릿지 활동과 위조된 지시를 구분하도록 설계된 것입니다.[3]

노마드의 8월 5일 원인 분석은 운영 환경 업그레이드 날짜를 2022년 6월 21일로 명시합니다. 메시지 처리 방식의 변경은 기존 초기화 상태와 맞물렸습니다. 제로 루트의 확인 시각에는 1이 저장돼 있었고, 메시지 해시에 대응하는 항목이 메시지-루트 매핑에 없으면 기본값 0이 반환됐습니다. 바뀐 검사가 이 값을 사용하면서 루트를 승인 가능한 것으로 판단해 증명되지 않은 메시지가 통과했습니다.[3]

문제는 저장된 값을 해석하는 방식에 있었습니다. 빈 입력 데이터의 해시가 0이 될 필요는 없었습니다. Replica의 인증을 믿는 컨트랙트로 위조 지시가 전달됐습니다. 공식 분석은 Watcher가 개입하지 않은 이유도 설명합니다. Watcher는 Updater 키 침해를 감시했지만, 이 경로에는 위조된 Updater 서명이 필요하지 않았습니다. 특정 유형의 실패에 대비한 방어가 구현 결함을 포착하지 못한 것입니다.[3]

2. 다른 사람도 따라 할 수 있는 공격 패턴

공격은 8월 1일 발생했습니다. CertiK 분석은 이더리움 쪽에서 100 WBTC가 지급된 트랜잭션을 사례로 설명합니다. 이를 최초 공격의 정확한 발생 시각을 입증하는 기록으로 제시하지는 않습니다. 성공한 호출이 공개되자 다른 참여자들도 입력을 바꿔 별도의 수신 주소로 자금을 보낼 수 있었습니다.[1][2]

수신 주소를 바꾸면 제출하는 메시지도 달라집니다. 노마드의 공식 설명에 따르면 아직 처리되지 않은 메시지를 위조해 통과시킬 수 있었습니다. 이 결함은 브릿지 메시지 인증을 우회했지만, 일반적인 이더리움 트랜잭션 서명을 없애거나 이미 처리된 하나의 메시지로 무한 인출을 가능하게 하지는 않았습니다. 공격 패턴의 복제와 완료된 동일 메시지의 반복은 구분해야 합니다.[3]

당시 Rekt 보도에는 모방자와 자동화된 활동, 자금을 보호하려 했다고 주장하는 참여자가 함께 등장합니다. 공격 복제 방식을 설명한 문장은 주소를 바꾼다는 차이를 이렇게 표현했습니다:[2]

이전 공격자의 주소 대신 자신의 주소를 넣는 것이다.[2]
— Rekt News

3. 시점에 따라 달랐던 피해 집계

자금이 빠져나가는 동안 조사 기관들은 계속 변하는 사건을 집계했습니다. CertiK는 약 1억 9,000만 달러의 유출을 추정했습니다. Elliptic은 1억 5,640만 달러 이상이라는 수치를 사용하고, 40명을 넘는 공격자와 공격 자동화에 쓰인 200개 이상의 컨트랙트를 식별했다고 밝혔습니다. 각 기관에 귀속되는 관측치이며, 하나로 대조가 끝난 원장이나 일반 투자자의 비율을 뜻하지 않습니다.[1][4]

유출 자산에는 WETH, WBTC와 스테이블코인이 포함됐습니다. Elliptic은 8월 2일 정오 이더리움 컨트랙트에 약 1만 5,000달러가 남았다고 설명했고, 8월 3일 업데이트에서는 1,600만 달러가 반환됐다고 전했습니다. 준비금 고갈은 브릿지 자산의 뒷받침에 영향을 주었습니다. 그러나 그것만으로 최종 회수액이나 모든 주소 소유자의 신원·동기를 확정할 수는 없었습니다.[4]

8월 17일 노마드의 후속 집계는 1억 8,600만 달러 이상의 피해, 참여 주소 300개 이상, 약 20%인 3,700만 달러 이상의 회수를 제시했습니다. 팀은 추적과 반환이 진행 중이라고 설명했습니다. 집계 시점과 범위의 차이가 중요합니다. 반올림한 초기 피해액에서 당시 반환액을 빼는 계산만으로 나머지를 영구 손실로 확정할 수는 없습니다.[6]

4. 반환 뒤에도 남은 분배 문제

8월 5일 노마드는 가져간 총자금의 90% 이상을 공식 회수 지갑에 반환한 참여자에게 최대 10%의 보상을 제시했습니다. FAQ는 조건을 충족한 화이트햇에게 노마드가 법적 조치를 취하지 않고 형사 기소를 하지 않도록 의견을 내겠다고 설명했습니다. 이는 프로젝트가 약속하고 요청할 수 있는 범위였으며 정부가 부여한 면책은 아니었습니다.[5]

회수 후에는 누구에게 어떤 자산을 돌려줄지도 결정해야 했습니다. 8월 17일 계획에는 처리 도중 대기 중인 정상 전송, 계속 거래되는 브릿지 토큰, 탈취한 것과 다른 토큰으로 이루어진 반환이 등장합니다. 노마드는 먼저 청구한 사람이 준비금을 모두 가져가는 상황을 피하고 회수 자산을 분배하기 위한 재개를 설계하고 있었습니다. 당시 재개는 아직 계획이었습니다.[6][7]

12월 7일 공개되고 12월 20일 업데이트된 재개 안내는 이후 자산을 되돌려 보내는 절차가 재개됐다고 알렸습니다. 안내에는 KYC/AML 확인과 회수 자산의 비례 지분을 기록하는 양도 불가 가 포함됐으며, 이후 추가 회수액이 생기면 이를 청구할 수 있는 구조도 설명했습니다. 해당 안내에서는 새로운 원본 자산 예치를 허용하지 않았습니다. 이 회수 구조가 모든 이용자의 전액 상환을 입증하는 것은 아닙니다. 배포 과정의 교훈과 복잡한 분배 문제가 함께 남은 사건입니다.[7]

이 사건이 남긴 핵심 교훈 (Key Takeaways)

기술 & 아키텍처

코드와 함께 상태 전환도 검증해야 한다

업그레이드로 기존 기본값의 의미가 위험하게 바뀔 수 있습니다. 배포 상태를 포함해 인증과 처리 완료 메시지의 동작을 검증해야 합니다.

시장 & 투자 인사이트

공개된 공격은 발견자 밖으로 퍼질 수 있다

공개된 호출로 노마드 공격 패턴을 바꿔 활용할 수 있었습니다. 주소 수와 초기 피해액에는 시점과 출처가 필요합니다.

철학 & 탈중앙화

버그 수정만으로 회수가 끝나지는 않는다

잘못된 메시지를 막아도 사라진 담보가 돌아오지는 않습니다. 반환·법 집행 협력·비례 분배는 각각 남은 과제였습니다.

다음 질문으로

이어서 읽을 이야기

같은 주제를 다른 사례와 배경에서 살펴보세요.

출처 및 참고 자료

  1. [1]출처 1: CertiK: 기술적 사고 분석CertiK · 2022-08-01확인 2026-09-06
  2. [2]출처 2: Rekt: 당시 모방 공격 보도Rekt News · 2022-08-02확인 2026-09-06
  3. [3]출처 3: 노마드: 8월 5일 공식 원인 분석Nomad · 2022-08-05확인 2026-09-06
  4. [4]출처 4: Elliptic: 공격 추적과 8월 3일 회수 업데이트; 페이지 표제 날짜 2023년 5월 9일Elliptic · 2023-05-09확인 2026-09-06
  5. [5]출처 5: 노마드: 8월 5일 보상과 법적 범위 FAQNomad · 2022-08-05확인 2026-09-06
  6. [6]출처 6: 노마드: 8월 17일 회수 계획Nomad · 2022-08-17확인 2026-09-06
  7. [7]출처 7: 노마드: 12월 7일 재개 안내; 12월 20일 업데이트Nomad · 2022-12-07확인 2026-09-06