홈
AI AI
속보
심층
이벤트
Pro
더보기
자금 조달 정보
특집
온체인 생태계
용어
팟캐스트
데이터
OPRR
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
XRP
$2.25
2.07%
DOGE
$0.325
2.23%
USDC
$0.999
3.05%

난수가 더 이상 난수가 아닐 때: 12만 BTC 도난 사건의 진실

이 글을 읽으려면 30 분
Wintermute에서 Lubian까지: 암호화폐 역사상 가장 큰 난수 취약점 검토
원문 출처: Max He@Safeheron Lab


최근 암호화폐 커뮤니티에서 한 가지 소식이 폭넓게 논의되었습니다. 미국 법 집행 기관이 2020년에 미스터리하게 이체된 약 12만 개의 비트코인(최대 150억 달러 상당)의 개인 키를 획득한 것으로 의심됩니다. Elliptic 보고서[1]에 따르면, 이 자산은 원래 채굴 풀 Lubian.com과 관련이 있었으며, 이후 미국 법무부에 의해 공식적으로 압수되었습니다. 법 집행 기관이 지갑 생성 시 생성된 난수의 결함을 악용하여 개인 키를 재구성하거나 탈취했을 가능성이 널리 추측되고 있습니다. 일각에서는 이것이 미국 정부가 주도한 기술적 해킹 작전이었을 것이라고 추측하기도 합니다.


이 소식이 발표되자 암호화폐 업계 전체에 큰 충격을 주었고, 업계의 화제가 되었습니다. 이 사건은 기술 및 보안 측면에서 광범위한 논의를 촉발했을 뿐만 아니라, 투자자들에게 암호 자산의 신뢰성과 위험 방지에 대한 새로운 우려를 불러일으켰습니다. 본 글에서는 이 사건과 그 근본적인 보안 원인을 기술적 및 사실적 관점에서 체계적으로 살펴보고, 핵심적인 기술적 세부 사항을 심층 분석하고, 사건을 포괄적으로 검토하며, 잠재적으로 광범위한 영향을 미칠 수 있는 요소들을 탐구합니다. 난수와 개인 키 보안: 블록체인 세계의 생명선 블록체인 세계에서 난수는 암호 보안의 초석입니다. 모든 비트코인 또는 이더리움 지갑의 개인 키는 난수를 사용하여 생성됩니다. 이 난수의 "무작위성"이 부족하면 해커가 개인 키를 예측하여 디지털 자산을 훔칠 수 있습니다. 이러한 위험을 효과적으로 완화하기 위해 지갑은 암호학적으로 안전한 난수 생성기(CSPRNG)를 사용하여 생성된 난수가 실제로 예측 불가능하고 재현 불가능하도록 해야 합니다. 안전하지 않은 난수 알고리즘에 의존하는 지갑은 정상적으로 작동하는 것처럼 보일 수 있지만, 실제로는 숨겨진 위험을 안고 있습니다. 난수를 성공적으로 예측할 수 있다면 자산 손실은 돌이킬 수 없게 됩니다.


역사는 반복된다: 여러 주요 보안 사고의 교훈


2022년과 2023년 사이에 동일한 난수 취약점으로 인한 여러 주요 보안 사고가 잇따라 공개되면서 이 문제의 심각성과 광범위한 성격이 여실히 드러났습니다.


보안 사고 1: Wintermute, 1억 6천만 달러 손실이라는 뼈아픈 교훈


2022년 9월 20일, 유명 마켓메이커 Wintermute는 심각한 보안 사고를 겪었고, 약 1억 6천만 달러 상당의 디지털 자산이 도난당했습니다[2]. 공격자는 주소 생성 도구 Profanity의 취약점을 교묘하게 악용했습니다. 이 도구는 Mersenne Twister(MT19937)를 의사 난수 소스로 사용하여 일부 용도에서 "예쁜 주소"를 생성합니다.

MT19937의 출력은 충분한 엔트로피 주입이 없는 상황에서도 예측 가능하기 때문에 공격자는 주소/개인 키 생성 프로세스의 일부를 재생성하여 해당 개인 키를 성공적으로 계산하고 자금을 이체할 수 있었습니다. 이 사례는 난수 오용으로 인해 기관 지갑이 침해된 암호화폐 역사상 최초의 사례로, 난수 문제가 단순한 개발자 부주의에서 시스템적 보안 위험으로 발전했음을 시사합니다. Safeheron은 공격의 기술적 세부 사항을 분석하고 공격 프로세스를 재현하는 게시물을 게시했습니다. [3]


보안 사고 2: Trust Wallet 난수 취약점으로 인한 신뢰 위기


2023년 4월, 보안 연구원들은 Trust Wallet 브라우저 확장 프로그램(버전 0.0.172–0.0.182)이 지갑 니모닉을 생성할 때 암호학적으로 안전하지 않은 난수 함수[4]를 사용한다는 것을 발견했습니다. 그 기반 계층은 또한 메르센 트위스터(MT19937) 의사 난수 알고리즘(아래 그림 참조)을 사용했습니다. 난수 공간의 가능성은 약 2^32개에 불과하며, 이는 철저한 공격을 방어하기에는 턱없이 부족합니다.


공격자는 제한된 시간 안에 가능한 모든 니모닉 조합을 계산하여 개인 키를 재구성하고 사용자 자산을 탈취할 수 있습니다. 트러스트 월렛(Trust Wallet) 관계자는 이후 공식 발표를 통해 취약점의 존재를 공식적으로 확인하고, 영향을 받은 사용자들에게 적시에 자산을 이전할 것을 긴급히 당부했습니다. 프로젝트 커뮤니티 포럼의 공식 성명에 따르면, 이 취약점으로 인해 공격자가 이 취약점을 악용하여 표적 공격을 감행했을 가능성이 있어 약 17만 달러의 잠재적 손실이 발생할 수 있습니다.



이 사건은 일반 지갑 단말기 사용자에게 영향을 미치는 난수 취약점의 첫 번째 사례가 되었으며, "난수 보안" 문제가 처음으로 대중의 큰 관심을 끌게 되었습니다.


보안 사건 3: Libbitcoin Explorer(bx seed) 취약 난수 사건


2023년 8월, 보안 연구팀 Distrust는 명령줄 도구 Libbitcoin Explorer(bx) 3.x 버전[5]에서 심각한 난수 취약점을 발견했다고 발표했습니다. bx seed 명령을 실행하여 지갑 시드를 생성할 때, 이 도구는 내부적으로 Mersenne Twister(MT19937) 의사 난수 생성기를 사용하고 시스템 시간만 시드 소스로 사용하여 매우 낮은 난수성과 예측 가능한 출력을 생성합니다. 공격자는 제한된 시간 내에 모든 시드 값을 열거하여 지갑 개인 키를 재구성하고 자산을 직접 훔칠 수 있습니다.



이 취약점은 Libbitcoin Explorer 3.x를 사용하여 지갑을 생성하는 모든 사용자와 libbitcoin-system 3.6 라이브러리를 사용하는 관련 애플리케이션에 영향을 미칩니다. 2023년 8월 현재, 이 취약점으로 인해 90만 달러 이상의 암호화폐 자산이 도난당했습니다[6]. 이 취약점이 공개된 후, 공식적으로 CVE-2023-39910으로 등록되었습니다.


Libbitcoin-explorer는 적절한 보안 패치를 제때 적용했지만, 문제는 아직 끝나지 않았습니다.


드러난 거대한 빙산


Libbitcoin Explorer 3.x 보안 사고가 공개된 후, Distrust 팀이 이끄는 화이트햇 연구원들은 해당 취약점의 영향을 지속적으로 추적하고 커뮤니티의 대응을 장려하기 위해 MilkSad 프로젝트를 설립했습니다.


2024년까지 연구원들은 이러한 "취약한 지갑"의 생성 메커니즘, 지갑 유형 및 의사 난수 생성기(PRNG) 구성을 처음으로 체계적으로 정리했습니다[7]. 또한 비트코인 채굴 풀 Lubian.com과의 잠재적 연관성과 관련 자금의 분포 특성을 밝혀냈습니다.


2025년, 익명의 화이트햇 연구원이 제공한 핵심 단서 덕분에 오랫동안 정체되었던 분석 작업이 돌파구를 마련했습니다. MilkSad 팀은 영향을 받은 소프트웨어가 개인 키를 생성할 때 PRNG 오프셋(offset)이라는 새로운 매개변수를 도입한다는 사실을 발견했습니다. 이 발견을 통해 연구진은 이전에 분산되었던 지갑 그룹을 재연관시키고 그 이면에 있는 통합된 난수 생성 패턴을 밝혀낼 수 있었습니다. 이 발견은 전체 "약한 지갑" 사건의 원인을 이해하는 데 중요한 열쇠가 되었습니다[8].


연구팀의 심층 분석에 따르면, 2023년에 처음 발견된 2,630개의 문제 지갑은 빙산의 일각에 불과했습니다. 연구진은 PRNG 출력의 여러 섹션을 검색하여 227,200개 이상의 고유 지갑(아래 그림 참조)을 성공적으로 재구성하고 식별했습니다. 이 지갑들은 모두 메인넷에서 활발하게 사용된 이력을 가지고 있으며, 현재까지 가장 큰 규모의 "약한 난수 지갑" 클러스터를 형성합니다. 온체인 데이터에 따르면 난수 결함으로 생성된 이러한 지갑에는 총 약 137,000개의 비트코인(BTC)이 보관되어 있었습니다. 2020년 12월 28일, 단 두 시간 만에 이 지갑들은 모두 비워졌고, 잔액은 13만 7천 개에서 200개 미만으로 급감했습니다. 약 9,500 BTC가 루비안 채굴 풀에 속한 지불 주소로 유입되었고, 나머지 약 12만 BTC는 공격자가 관리하는 지갑으로 이체된 것으로 추정됩니다. 모든 의심스러운 거래는 동일한 수수료를 사용했으며, 이는 자동화된 일괄 이체의 명확한 징후를 보여줍니다.


이후, 새로운 중요한 단서들이 발견되어 이 대규모 도난 사건의 존재를 더욱 확증했습니다[9]. 연구원들은 비트코인 메인넷에서 일부 피해자 지갑에서 2022년 7월 3일과 2024년 7월 25일에 비정상적인 거래 활동이 여전히 발생했음을 발견했습니다. 이러한 거래에는 OP_RETURN 메커니즘을 통해 정확히 동일한 정보가 포함되어 있었습니다.


"LB에서 보낸 메시지입니다. 자산을 보호해 주는 화이트햇에게 1228btc@gmail.com으로 연락하여 자산 반환 및 보상에 대해 논의하세요."


연구원들은 "LB"가 Lubian.com을 의미하고, "자산 보호"는 2020년 12월 28일에 발생한 대규모 자금 이체 사건을 지칭할 가능성이 있다고 추측했습니다. 이러한 메시지는 여러 주소로 여러 차례 발송되었으며, 이는 루비안이 자산을 관리하는 "화이트햇"과 접촉하여 자산 반환 및 보상에 대해 논의하려는 공개적인 시도로 보입니다.


그러나 이 지갑들의 개인 키는 오래전에 유출되었기 때문에 이론적으로는 누구나 이 주소에서 거래를 시작하거나 메시지를 작성할 수 있습니다. 따라서 이 정보가 루비안 팀에서 나온 것인지, 아니면 오해의 소지가 있거나 장난스러운 작전인지 확실히 확인할 수는 없습니다.


이 시점에서 빙산의 일각이 마침내 수면 위로 떠올랐습니다. 난수 결함으로 인한 이 시스템적 취약점은 비트코인 역사상 가장 크고 광범위한 보안 사고 중 하나로 발전했습니다.


기술적 세부 정보: 22만 BTC 지갑에 대한 무차별 대입 공격의 전체 과정


그렇다면 이 22만 BTC의 취약한 무작위 지갑은 어떻게 생성될까요? 구체적인 기술 검색 프로세스를 자세히 소개합니다[8]


1단계: 난수를 생성할 동일한 의사난수 생성기(PRNG) MT19937을 선택합니다. 이 PRNG는 암호화 보안 기능이 전혀 없습니다.


2단계: 매우 낮은 엔트로피 시드(0~2^32-1)를 사용하여 MT19937을 초기화합니다. 낮은 엔트로피 시드가 이러한 BTC 지갑 개인 키의 빠른 도출의 주요 원인입니다.


3단계: MT19937은 라운드당 32비트 정수를 출력하지만, 모두 사용되는 것은 아닙니다. 상위 8비트만 선택되므로 MT19937은 라운드당 1바이트를 생성합니다.


4단계: 개인 키 범위를 확장하기 위해 OFFSET 기능을 도입합니다. BTC의 개인 키 시드는 32바이트(니모닉 24개 또는 256비트에 해당)입니다. 이 32바이트는 BTC 개인 키 시드를 생성하기 위해 (32 * OFFSET)부터 (32 * OFFSET + 31)까지의 라운드를 통해 얻어집니다. BTC의 개인 키 시드는 32바이트입니다. 구체적으로는 다음과 같습니다.


(1) 0에서 31까지 라운드하여 32바이트 개인 키를 출력합니다.


(2) 32에서 63까지 라운드하여 32바이트 개인 키를 출력합니다.


(3) 32 * 2에서 95까지 라운드하여 32바이트 개인 키를 출력합니다.


(4) 마찬가지로 OFFSET의 최대값은 3232가 될 수 있습니다.


5단계: 개인 키 시드를 기반으로 공개 BIP32 지갑 파생 알고리즘과 파생 경로 m/49'/0'/0'/0/0을 사용하여 자식 공개-개인 키 쌍을 파생합니다.


6단계: 자식 공개 키를 기반으로 접두사 3을 가진 P2WPKH-nested-in-P2SH 유형 지갑 주소를 생성합니다.


7단계: 생성된 주소에 체인에 사용 기록이 있는 경우 약한 난수 지갑이 성공적으로 발견되었음을 의미합니다. 지갑 주소와 해당 개인 키를 기록합니다. 위에서 설명한 전체 검색 프로세스는 결정적입니다. 유일한 변수는 낮은 엔트로피 시드를 선택하는 데 있으며, 이는 총 2^32개의 가능성을 가지며, 이는 2^256 BTC 표준 개인 키 공간보다 훨씬 적습니다. 따라서 무차별 대입 검색을 통해 220,000개의 약한 난수 지갑과 해당 개인 키를 모두 얻을 수 있습니다. 전체 스토리: 전체 스토리를 살펴보겠습니다. 몇 년 전(2018년 초), 여러 디지털 자산 프로젝트가 암호학적으로 안전하지 않은 의사 난수 생성기(PRNG)를 개발 프로세스에 실수로 통합하여 지갑 개인 키를 생성하는 매우 민감한 프로세스에 사용했습니다. 당시 개발자의 암호 보안에 대한 이해 부족으로 인해 이 오류는 감지되지 않았고, 이는 이후 대규모 취약점의 토대가 되었습니다. 안타깝게도 시간이 지남에 따라 이 문제는 해커에 의해 점차 발견되어 악용되었습니다. Wintermute 도난, Trust Wallet 난수 취약점 사건, Libbitcoin 약한 지갑 사건을 포함하여 다양한 공격 그룹이 동일한 원칙에 기반한 수많은 유명 공격을 시작했습니다. 이러한 공격으로 인해 수억 달러의 자산 손실이 발생했으며, 이전에는 간과되었던 기술적 세부 사항인 난수 보안이 업계의 주요 관심사가 되었습니다.연구원들이 이 사건들의 공통점을 분석했을 때, 영향을 받은 모든 지갑에서 유사한 무작위성 결함을 발견했으며, 이는 이전 루비안 채굴 풀 도난 사건과 연관성이 있음을 시사했습니다. 추가 조사 결과, 루비안에서 사용한 지갑 역시 안전하지 않은 난수 생성 메커니즘을 사용하여 "약한 지갑" 그룹에 속한다는 사실이 확인되었습니다. 이후 체계적인 분석 결과, 더욱 놀라운 사실이 드러났습니다. 네트워크 전체에서 약 22만 개의 취약한 난수 지갑이 발견되었고, 총 12만 BTC가 보관되어 있었으며, 이는 현재까지 가장 규모가 크고 광범위한 난수 보안 사고였습니다. 미국 법무부가 루비안닷컴 도난 사건의 배후에 있다는 소문은 주로 미묘한 사실에서 비롯되었습니다. 법무부가 관련 자산 처리에 공식적으로 관여하는 동안, 루비안과 관련된 이전에 휴면 상태였던 비트코인 주소에서 대규모 자금 이체가 갑자기 발생했습니다. 당시 중복된 온체인 주소 간의 이러한 직접적인 상관관계로 인해 많은 전문가들은 정부가 관련 개인 키를 복구하기 위해 무차별 대입 공격을 감행했을 가능성을 의심했습니다. 또 다른 가능성은 미국 정부가 개인 키를 직접 무차별 대입 공격(brute force attack)하지 않고, 개인 키를 보유한 개인이나 단체를 통제하여 자금 이체를 용이하게 했다는 것입니다.


이러한 지갑은 해킹이 가능한 취약한 무작위 지갑이지만, 이론적으로는 기술적 수단을 통해 개인 키를 복제할 수 있습니다. 하지만 현재로서는 미국 정부가 해당 개인 키에 대한 "무차별 대입 공격"을 주도했다는 공개적이고 검증 가능한 증거가 없습니다. 관련 기관이 기술적 개입 사실을 공식 인정하지 않는 한, 전체 사건의 진상은 여전히 미스터리에 싸여 있을 것입니다.


암호학적으로 안전한 난수를 얻는 방법은 무엇일까요?


이제 안전한 난수의 중요성을 인식했으니, 실제 개발 및 응용 분야에서 어떻게 안전하게 난수를 얻을 수 있을까요? 다음 원칙을 따라야 합니다.


(1) 운영 체제에서 제공하는 보안 인터페이스를 사용하는 것을 우선시하고 시스템 엔트로피 풀을 기반으로 난수를 생성합니다.


(2) Intel SGX CPU의 하드웨어 난수 명령어와 같이 조건이 허락하는 경우 안전한 하드웨어 엔트로피 소스를 사용합니다.


(3) MPC 시나리오에서 여러 엔트로피 소스를 통합하여 전반적인 보안을 개선할 수 있습니다. 예를 들어 Linux 시스템 엔트로피 풀을 Intel SGX CPU의 하드웨어 난수와 결합하여 단일 엔트로피 소스가 실패하거나 예측되는 위험을 방지할 수 있습니다.


(4) libsodium, BoringSSL, OpenSSL 등과 같이 널리 검증된 암호화 라이브러리에서 안전한 난수 생성 인터페이스를 사용합니다.


(5) 시드 엔트로피가 128~256비트 이상인지 확인하고 타임스탬프 및 프로세스 번호와 같은 낮은 엔트로피 소스를 시드로 사용하지 않도록 합니다.


(6) Mersenne Twister(MT19937), Math.random(), rand()와 같이 암호학적으로 안전하지 않은 의사 난수 생성기(비-CSPRNG)를 사용하는 것은 엄격히 금지됩니다.


MPC의 다중 소스 엔트로피 융합 이점


단방향 시스템과 비교하여 MPC는 자연스러운 엔트로피 융합 이점을 가지고 있습니다. 각 참여자는 독립적으로 임의의 엔트로피 소스를 제공할 수 있으며 최종 난수 결과는 모든 당사자에 의해 생성됩니다. 당사자 중 한 명이 정직한 한 전체 시스템의 난수성을 예측하거나 조작할 수 없습니다. 이러한 다중 소스 난수 구조는 시스템의 전반적인 보안 및 변조 방지 기능을 크게 향상시키며 MPC 프로토콜의 핵심 보안 이점 중 하나입니다.


Safeheron은 MPC 및 TEE 기술을 기반으로 디지털 자산 보안 보관 프로토콜을 구축했습니다. 이 솔루션에서 MPC 프로토콜의 각 참여자는 Linux 시스템 엔트로피 풀과 TEE 하드웨어 엔트로피 소스(예: Intel SGX 하드웨어 난수 명령어)를 포함한 여러 개의 독립적인 보안 엔트로피 소스를 활용합니다. 이러한 다중 소스 엔트로피 융합 메커니즘은 시스템의 보안 경계를 강화할 뿐만 아니라 신뢰할 수 있는 실행 환경(TEE) 및 분산 서명 시스템 구축을 위한 더 높은 보안 기준을 확립합니다.


결론


겉보기에 수수께끼처럼 보이는 "12만 비트코인 도난" 사건은 특정 알고리즘이 손상된 것이 아니라, 초기 개발자들이 개인 키 생성 과정에서 암호학적으로 안전하지 않은 난수 알고리즘을 오용하여 전체 시스템의 보안을 근본적으로 약화시켰음을 보여줍니다.


암호 자산의 보안은 궁극적으로 암호화 구현의 엄격성에 달려 있습니다. 미묘한 엔지니어링 실수라도 해커에 의해 악용되어 궁극적으로 디지털 자산의 소유권을 결정할 수 있습니다. 신뢰할 수 있는 엔트로피 소스와 검증된 암호화 라이브러리를 사용하여 소스에서 난수 보안을 보장해야만 "무작위성"을 예측 불가능하고 변조 불가능한 본래의 의미로 복원할 수 있습니다.


Safeheron Lab 소개


Safeheron의 수석 과학자인 Max He가 이끄는 Safeheron Lab 팀은 블록체인 보안 및 신뢰 컴퓨팅과 같은 최첨단 분야의 기초 연구에 중점을 두고 암호화 및 보안 분야의 국제적인 전문가들로 구성되어 있습니다. Safeheron Lab은 튜링 AI 연구소(Turing AI Research Institute)와 같은 파트너와 협력하여 연구 결과 및 산업 응용 분야의 상용화를 촉진하고 디지털 자산 보안을 위한 혁신적인 솔루션을 제공합니다.


참고문헌


[1] 미국이 압수한 150억 달러는 이란/중국 비트코인 채굴자 "도난"에서 유래했습니다.

[2] 암호화폐 거래 회사 Wintermute가 1억 6천만 달러의 해킹을 당한 경위


[3] 암호화 팀의 핵심 분석: Wintermute가 해킹으로 1억 6천만 달러의 손실을 입은 데 사용된 암호화 기술에 대한 자세한 설명


[3] href="https://safeheron.com/blog/how-profanity-caused-wintermute-to-lose-160m/" target="">Wintermute가 욕설로 인해 1억 6천만 달러를 손실한 이유에 대한 심층 분석


[4] Trust Wallet: CVE-2023-31290 세부 정보


[5] Libbitcoin Explorer: CVE-2023-39910 세부 정보


[6] CZ: Trust Wallet과 Binance Wallet은 Libbitcoin Explorer를 사용하여 니모닉을 생성하지 않습니다.


[7] 업데이트 #7 - 10억 달러 규모의 지갑, 이제 비어 있음


[8] 업데이트 #13 - 224,000개 이상의 새로운 지갑 발견


[9] 업데이트 #14 - Lubian.com 해킹 의심 사건에 대한 추가 정보


이 기사는 제출된 자료에서 발췌한 것이며 BlockBeats의 관점을 대변하지 않습니다.


BlockBeats 공식 커뮤니티에 참여하세요:

Telegram 구독 그룹:https://t.me/theblockbeats

Telegram 토론 그룹:https://t.me/BlockBeats_App

Twitter 공식 계정:https://twitter.com/BlockBeatsAsia

24H인기 기사
BlockBeats 다운로드
home-down-code
문고 선택
새 문고 추가
취소
완료
새 문고 추가
자신만 보기
공개
저장
오류 신고/제보
제출