DSRV Report — BNB 브릿지 해킹 사건의 여파

Youngbin Park
DSRV
Published in
5 min readOct 14, 2022

Disclaimer: 이 글은 정보 전달을 위한 목적으로 작성되었으며, 특정 프로젝트에 대한 투자 권고, 법률적 자문 등 목적으로 하지 않습니다. 모든 투자의 책임은 개인에게 있으며, 이로 발생된 결과에 대해 어떤 부분에서도 DSRV는 책임을 지지 않습니다. 본문이 포괄하는 내용들은 특정 자산에 대한 투자를 추천하는 것이 아니며, 언제나 본문의 내용만을 통한 의사결정은 지양하시길 바랍니다.

BNB 브릿지 해킹 사태 : IAVL 증명 위조

2022년 10월 7일 한국시간으로 새벽 3시에서 6시경 BNB Beacon Chain과 BNB Smart Chain사이를 잇는 BNB 브릿지가 해킹되어 2백만개의 BNB가(약 5억 6천만 달러) 발행되는 사건이 발생하였습니다. 해커는 발행한 BNB 중 약 1억 달러 이상을 Ethereum, Fantom, Polygon, Avalanche 및 Arbitrum등 타 체인으로 전송하였습니다. 현재 BNB chain은 해커의 지갑에 남아있는 약 4억 달러의 BNB의 이동을 동결한 상태입니다.[1]

해커는 BNB 브릿지가 IAVL 증명을 검증하는 방식의 취약점을 이용하였습니다. 해커는 출금에 필요한 증명을 위조하였고, BNB 브릿지에 위조된 증명이 실린 트랜잭션을 전송하였습니다. BNB 브릿지는 해당 증명이 유효하다고 판단하였고, 두 차례에 걸친 공격으로 해커의 지갑 주소로 각각 1M의 BNB, 총 2M의 BNB를 발행하였습니다.[2]

패러다임(Paradigm)의 리서처인 samczsun은 해킹에 대해 분석하며, 임의의 트랜잭션을 추가하여 증명을 위조하는 것이 가능하였음을 공유하였습니다. [3] 문제가 있었던 것은 RangeProof라는 함수입니다. 이 함수에서 발생한 버그로 인해 해커가 루트 해시를 변경하지 않고 새로운 트랜잭션을 추가하여 IAVL 트리를 업데이트하고 증명을 생성하는 것이 가능했습니다. RangeProof는 이후 패치를 통해 수정되었습니다.[4]

BNB 브릿지 해킹 사건 분석, 출처: @samczsun 트위터

IBC는 안전한가? : 코스모스 체인에 대한 보안 조치

해킹사건에서 코스모스에서 관리하던 IAVL 증명의 버그가 악용되면서, BNB 브릿지만의 문제가 아닌 IBC를 지원하는 코스모스 체인들의 보안에 대한 우려 또한 발생하였습니다. 코스모스의 공동 창업자인 Ethan Buchman은 트위터를 통해 이는 RangeProof라는 함수에서 발생한 문제이며, IBC는 IAVL 증명을 사용하지만 현재 ICS23이라는 시스템을 사용하여 증명을 생성하고 검증하므로 RangeProof의 버그에 영향을 받지 않는다고 밝혔습니다. [5]

BNB 브릿지 해킹과 IBC의 연관성. 출처: @buchmanster 트위터

하지만 코스모스 측은 ICS23가 RangeProof를 사용하지 않더라도, 또 다른 버그가 존재할 위험을 예방하기 위하여 IBC 코드에 대한 대대적인 감사를 수행하였습니다. 이 감사를 통해 ICS23 코드에서 IBC를 지원하는 코스모스 체인들에 영향을 미칠 수 있는 심각한 보안 취약점이 발견되었습니다. 이를 해결하기 위하여 10월 10일경 코스모스 체인들에서는 긴급한 패치가 진행되었습니다. 해당 패치는 보안상의 이유로 체인 코어팀과 벨리데이터들을 통해서만 비공개적으로 진행되었습니다.

DSRV 또한 벨리데이터로 참여중인 Agoric, Axelar, Cosmos Hub, Certik, Crescent, Injective, Osmosis, Persistence, Tgrade등의 체인에서 빠르게 패치를 적용하였습니다.

보안상의 이유로 비공개적으로 진행된 이와 같은 조치는 10월 13일 경 코스모스 포럼(Forum)을 통해 공개적으로 공지되었습니다. [6] 공지는 추가적으로 10월 14일 경 CosmosSDK v0.45.9로 공개적인 새 패치가 발표될 것을 예고하며, 모든 체인과 벨리데이터들이 새 패치로 업그레이드 할 것을 권고하였습니다.

10월 14일 14:00 UTC CosmosSDK v0.45.9로 공개된 새로운 패치는 여기에서 확인하실 수 있습니다. 새로운 패치에서 어떤 업데이트가 이루어졌는지는 차차 업데이트 하도록 하겠습니다. 읽어주셔서 감사합니다.

Written by
Youngbin Park, DSRV Research Engineer of Validator Team (Twitter@bin0_0bin)

Reference

[1] https://www.theblock.co/post/176511/bnb-chain-executes-hard-fork-to-secure-network-after-100-million-hack
[2] 1st attack, 2nd attack
[3] https://twitter.com/samczsun/status/1578167198203289600
[4] https://github.com/cosmos/iavl/releases/tag/v0.19.3
[5] https://twitter.com/buchmanster/status/1578879188542849025
[6] https://forum.cosmos.network/t/ibc-security-advisory-dragonberry/7702

--

--