갈라체인에서 약 300만달러(약 41억원) 규모의 자산이 탈취됐다. 갈라체인은 공격자가 개인키를 훔쳤다는 증거는 확인되지 않았으며, 공격자는 최대 55일 전 실패한 거래에서 수집한 서명 74개를 재사용해 9개 지갑의 자산을 빼냈다고 밝혔다.
갈라체인은 9월 14일 공개한 사후 분석 보고서에서 약 20억 GALA와 37종 안팎의 토큰이 유출됐다고 밝혔다. 가장 큰 단일 거래에서는 1억6398만 GALA가 한 번에 빠져나갔다.
취약점은 실패한 거래 처리와 서명 검증 방식이 맞물리며 발생했다. 거래가 실패해도 서명된 거래 내용은 공개 원장에 남았지만, 중복 제출을 막는 고유 키는 소비되지 않아 같은 서명을 다시 제출할 수 있었다.
서명 검증 범위도 문제였다. 당시 SDK는 실제 호출된 작업에서 서명 형식을 도출하지 않고 요청에 포함된 형식 정의를 검증에 사용했다. 공격자는 한 작업에 대해 서명된 데이터를 다른 작업으로 실행하면서 서명에 포함되지 않은 수신 주소와 수량 등의 정보를 추가할 수 있었다.
갈라체인은 공격자가 8월 18일 1066건의 거래를 제출했으며 거래 간격의 중앙값은 4.5초였다고 밝혔다. 이 가운데 73.9%는 정확히 한 블록 간격으로 처리됐다.
첫 무단 전송은 8월 18일 오전 11시 21분 54초 한국시간에 발생했다. 갈라체인은 같은 날 오후 2시 9분 19초 브리지를 중단했고, 오후 3시 27분 수정 사항을 배포했다.
공격에 사용된 거래에는 유효한 서명이 포함돼 있었다. 갈라체인은 피해 지갑의 개인키·시드 구문·비밀번호가 탈취됐다는 증거는 확인되지 않았다고 밝혔지만, 이 설명은 회사 내부 기록에 근거한 주장으로 관련 자료가 모두 공개된 것은 아니다.
이번 사건은 외부 보안 검토를 거친 코드에서도 서명 검증 범위와 실제 실행 범위가 다르면 문제가 발생할 수 있음을 보여준다. 갈라체인은 2025년 11~12월 CertiK 권한 검토와 2026년 1월 Hashlock SDK 검토에서 해당 문제가 발견되지 않았다고 밝혔다.
각 보안 검토의 감사보고서는 공개되지 않았다. 이에 따라 검토 범위와 테스트 수준은 확인되지 않았다.
갈라체인은 이후 서명 형식을 실제 호출된 작업에서 직접 도출하도록 바꿨다. 서명에 작업·채널·계약 정보를 연결하고 만료 시간을 추가했으며, 실패한 거래에서도 고유 키가 유지되도록 수정했다.
고유 키는 동일한 거래가 반복 제출되는 것을 막는 장치다. 실패한 거래에서도 이 값이 유지되면 이미 제출된 요청을 다시 실행하는 재사용 공격을 어렵게 만들 수 있다.
갈라체인은 고액 계정의 이상 거래 감시와 신원별 요청 속도 제한도 도입했다. 일정 규모를 넘는 브리지 출금에는 수동 검토를 적용하기로 했다.
이 조치는 자동화된 공격을 늦출 수 있지만 정상적인 출금이 지연되거나 운영자 판단에 따른 오탐이 발생할 가능성은 남긴다. 브리지는 서로 다른 블록체인 사이에서 자산을 이동시키는 통로인 만큼, 출금 검증과 거래 승인 절차가 공격의 주요 지점이 될 수 있다.
갈라체인은 사건을 FBI 인터넷범죄신고센터에 신고하고 관련 플랫폼에 자산 보존과 동결을 요청했다. 자금 추적과 조사는 진행 중이며 회수 규모는 공개되지 않았다.
이번 사건의 핵심은 개인키 탈취 여부와 별개로 공개 원장에 남은 실패 거래와 서명 검증의 빈틈이 결합할 수 있었다는 점이다. 갈라체인은 수정된 SDK와 추가 감시 체계를 적용한 뒤 자금 추적과 수사를 이어갈 예정이다.

최윤서 기자
댓글0
첫 댓글을 남겨 보세요.