- 코인스펙트(Coinspect)가 명명한 Ill Bloom 결함은 일부 지갑이 복구 구문 생성 시 난수성(randomness)이 약한 알고리즘을 사용해 시드를 역추적할 수 있게 만드는 문제로 분석된다.
- 해당 결함으로 5월 coordinated sweep(조율된 일제 인출)이 발생해 약 310만 달러 규모의 자금이 실제로 유출된 것으로 보고되었다.
- 시드 단어가 지갑 자산에 대한 단독 통제 권한을 가지므로, 시드 자체가 한 번 노출되면 해당 지갑이 보유한 자금 전액의 즉시 손실이 가능하다.
Ill Bloom은 단발성 해킹이 아니라 BIP-39 구현 단계의 구조적 결함이라는 점에서 지갑 공급망 전반의 점검을 요구한다.
암호화폐 지갑을 지키는 마지막 한 줄은 결국 12개 혹은 24개의 니모닉 단어로 요약된다. 그 단어가 만들어지는 순간에 난수성이 충분치 않다면, 공격자는 지갑이 잠긴 뒤에도 자금을 가져갈 수 있다. 보안 연구 기업 코인스펙트가 Ill Bloom(일 블룸)이라 명명한 이번 결함은 바로 그 지점에서 발생했으며, 단순한 해킹 사고가 아닌 구현 단계의 구조적 위협으로 분류된다.
Ill Bloom 취약점이란 무엇인가
Ill Bloom은 일부 암호화폐 지갑 소프트웨어가 BIP-39 명세를 따라 니모닉 복구 구문을 생성할 때, 시스템의 일반 난수 생성기를 충분히 강하게 호출하지 않아 엔트로피 풀이 예측 가능한 수준에 머무는 결함이다. 코인스펙트의 분석에 따르면 해당 결함을 갖는 지갑은 사용자가 새로 발급받은 시드조차도 사실상 공격자가 brute force로 계산할 수 있는 좁은 공간 안에 놓이게 된다. 시드 자체가 유출된 것이 아니라 시드가 만들어진 자리가 비효율적으로 설계된 것이 핵심 차이다.
이 명명은 '아름답지만 결국 시들어버리는 꽃'이라는 수사적 의미를 갖는데, 겉으로는 정상적인 지갑처럼 보이지만 특정 조건에서 체계적으로 무너지기 시작하는 현상을 가리킨다. 보안 실무자 사이에서는 공급망 공격(supply chain risk)의 한 형태로 다루고 있다.
310만 달러 피해 사건의 자금 흐름과 공격 타임라인
코인스펙트와 The Hacker News의 보도를 종합하면, 이번 사건의 공격 시점은 2026년 5월로 거슬러 올라간다. 공격자는 Ill Bloom 영향을 받는 것으로 추정되는 지갑 다수를 자동으로 식별한 뒤, 단일 시점에 여러 지갑에서 자금을 한꺼번에 이동시키는 coordinated sweep을 실행했다. 온체인 분석 결과 최종 피해액은 약 310만 달러 규모로 확인되었으며, 인출된 자산은 이후 여러 익명화 서비스를 거치며 흔적이 분산되었다.
| 구분 | 내용 |
|---|---|
| 취약점 명칭 | Ill Bloom |
| 연구 기업 | 코인스펙트(Coinspect) |
| 공격 발생 시점 | 2026년 5월 |
| 공격 유형 | Coordinated sweep (조율된 일제 인출) |
| 누적 피해 규모 | 약 310만 달러 |
| 주요 표적 | BIP-39 복구 구문 생성 단계의 약한 난수성 |
약한 난수성이 만든 구조적 위협의 기술적 원리
BIP-39는 128비트에서 256비트 사이의 엔트로피를 입력받아 단어열을 만드는 표준이다. 표준 자체는 안전하지만, 각 지갑 구현체는 이 엔트로피를 어디서 뽑느냐에 따라 보안 수준이 갈린다. 운영체제의 기본 random() 함수, 자바스크립트의 Math.random(), 시계 기반 시드, 사용자 입력 기반 시드를 보정 없이 사용하는 구현이 Ill Bloom 결함의 대표적 사례로 분류된다. 코인스펙트는 영향 지갑 목록을 비공개로 유지하고 있지만, 결함의 메커니즘은 공개 자료에서 동일하게 제시된다.
즉, 사용자가 아무리 강력한 비밀번호와 2차 인증을 사용하더라도 시드 생성 시점이 약하면 모든 후속 보안이 의미 없어진다. 이는 키 파생의 단방향성보다도 한 단계 앞선, 신뢰의 출발점을 다시 설계해야 함을 의미한다.
BIP-39 구현 과정에서 발생하는 전형적인 함정
지갑 개발사들이 흔히 빠지는 패턴은 다음 네 가지로 요약된다. 첫째, 라이브러리 디폴트 시드를 그대로 신뢰하는 경우, 둘째, 동일 프로세스 내에서스 내 RNG 엔트로피 풀을 재사용하는 경우, 셋째, 엔트로피 축소(entropy reduction) 로직을 자체 정의하면서 검증을 생략하는 경우, 넷째, 디바이스의 secure element나 TRNG를 우회하고 호스트 CPU에서만 시드를 만드는 경우다. Ill Bloom은 이 중 한 가지 이상이 결합될 때 발생한다.
대응 권고 및 완화 방안
난수성 라이브러리 교체
가장 시급한 조치는 BIP-39 엔트로피 입력단을 OS 차원의 CSPRNG(예: /dev/urandom, BCryptGenRandom 등)로 명시적으로 교체하고, secure element가 있는 하드웨어는 그쪽 우선으로 라우팅하는 것이다. 동시에 시드 생성 시점의 시스템 시각, 사용자 식별 정보, 디바이스 UID를 추가 시드 소스로 섞는 mix-in 함수를 적용하면 단일 RNG 오작동의 영향을 줄일 수 있다.
사용자가 즉시 취해야 할 행동
1) 사용 중인 지갑이 Ill Bloom 영향 목록에 포함되는지 코인스펙트 공개 자료를 통해 확인한다. 2) 영향 지갑에 자금이 보관되어 있다면 즉시 신규 시드를 발급받은 뒤 자산을 새 지갑으로 이동시킨다. 3) 이후에는 하드웨어 지갑과 같은 TRNG 기반 구현체를 우선 사용한다. 4) 출처가 불분명한 데스크톱/모바일 지갑은 사용을 중단하고, 시드 문구 사진이나 클라우드 백업을 모두 삭제한다.
정리: Ill Bloom은 단순 버그가 아니라 '키가 만들어지는 방식'에 대한 신뢰 붕괴를 의미한다. 310만 달러 사건은 사용자가 아닌 구현 단계의 책임을 부각시켰으며, 지갑 개발사들은 향후 공급망 보안 점검에서 엔트로피 출처 항목을 1순위로 다룰 필요가 있다.
참고 자료: The Hacker News 본문, Coinspect 공개 자료