최근 발견된 비트코인(BTC) 관련 C++ 개발 라이브러리의 심각한 보안 취약점으로 인해 전 세계적으로 12만 개 이상의 외부 지갑이 해킹 위험에 처해 있다. 이번 사건은 특정 지갑의 무작위 숫자 생성(Random Number Generation, RNG) 방식의 결함을 악용해 공격자가 손쉽게 개인 키를 추출할 수 있도록 한다.
이 취약점의 원인은 Libbitcoin Explorer(bx) 3.x 버전에서 사용된 ‘메르센 트위스터-32’ 난수 생성 알고리즘에 있다. 이 알고리즘은 극히 제한된 시드 값(2³² 개)만을 활용하는데, 시스템 시간만을 시드로 사용하게 되어 무작위성이 크게 잃게 된다. 따라서 해커는 가능한 모든 시드 값을 단기간 내에 계산하고, 쉽게 일치하는 지갑을 찾을 수 있는 구조가 만들어졌다. 보안 연구팀의 설명에 따르면, 이러한 취약점 덕분에 고성능의 PC로는 며칠 사이에 모든 가능성을 시도해 매치되는 지갑을 찾아낼 수 있는 상황이다.
이러한 취약점은 2023년 11월에 알려진 ‘Milk Sad’ 사건을 통해 주목받기 시작했으나, 여전히 다수의 지갑 사용자들이 위험에 노출된 상태이다. 특히, 2017년부터 2023년 사이 bx 3.x 버전이나 이 기반의 트러스트 월렛에서 지갑을 생성한 사용자가 주요 위협 대상이 될 수 있다. 실제로 이 라이브러리를 사용해 생성된 지갑은 안전하게 무작위 숫자를 생성하지 않기 때문에 비트코인 자산이 손쉽게 탈취당할 위험에 놓여 있다.
이와 관련해 하드월렛 서비스인 ‘OneKey’는 자신의 하드웨어 및 소프트웨어 지갑이 이러한 라이브러리를 사용하지 않으며, 따라서 위험 상태에 포함되지 않는다고 발표하며 사용자들의 불안을 해소하고자 했다.
전문가들은 이와 같은 보안 위협에 대해 세 가지 대응 방안을 제시했다. 첫째, 구형 소프트웨어나 취약한 라이브러리 기반으로 생성된 비트코인 지갑은 즉시 암호학적 보안 무작위 생성기(CSPRNG) 기반의 지갑으로 자산을 이전할 것을 권장한다. 둘째, BIP39 표준을 준수하는 새로운 시드 구문 생성을 통해 보안을 강화할 수 있다고 강조했다. 마지막으로, 취약성이 의심되는 모든 페이퍼 월렛과 하드월렛의 보안 상태를 점검하고 최신 버전으로 업데이트해야 한다는 조언이 있다.
이번 사건은 블록체인의 기초인 ‘지갑 생성의 무결성’이 사소한 코드 오류로 인해 어떻게 붕괴될 수 있는지를 극명하게 보여주는 사례로 남게 되었다. 이러한 사태를 통해 사용자들뿐만 아니라 지갑 서비스 개발자들은 무작위성과 보안 모델 강화를 위해 더욱 노력해야 한다는 경각심을 일깨워야 할 것이다.