키헌터 작성
키 파운틴 공격( 힙 기반 버퍼 오버플로 )
공격자는 libbitcoin 라이브러리의 splice 또는 build_chunk 함수에 사용될 특수한 형태의 조각 데이터를 준비하여 할당된 버퍼 크기를 초과하도록 합니다. 예를 들어, 전송되는 데이터 배열은 입력 인자의 크기보다 훨씬 큽니다. 이처럼 매우 긴 “셔틀 시퀀스”는 취약한 std::copy 함수를 통과하면서 어떠한 경계 검사도 거치지 않습니다.
결과적으로, 이러한 데이터를 처리하는 과정에서 “데이터 유출”이 발생합니다. 즉, 비밀 키나 암호화 구조가 저장된 메모리 영역이 덮어쓰여지거나 외부에서 접근 가능하게 됩니다(아키텍처 및 메모리 보호 방식에 따라 다름). 실제로 이는 마치 개인 데이터의 “샘”과 같습니다. 공격자는 개인 키를 추출하거나 교체하고, 프로세스의 메모리에서 직접 거래를 위조하고, 사용자의 자금을 실시간으로 탈취할 수 있습니다.
비유적 설명:
공격이 발생하면 취약한 비트코인 지갑은 마치 취약한 식수대처럼 되어, 통제되지 않은 요청이 있을 때마다 개인 키, 비밀번호, 시드 구문이 유출됩니다. 해커는 악의적인 요청이라는 “유리잔”을 들고 다가와, 철저히 봉인되어야 할 중요한 비밀 정보를 그 안에 채워 넣습니다.
splicelibbitcoin 함수 및 라이브러리 에서 발견된 심각한 힙 오버플로 취약점 인 ‘키 파운틴 공격(Key Fountain Attack )’은 버퍼 경계 검사 부재와 크기 연산에서의 오버플로로 인해 사용자의 개인 키가 즉시 유출될 수 있음을 보여줍니다. 이 힙 기반 버퍼 오버플로 (CWE-122)를 악용하면 공격자는 프로세스에서 비밀 데이터를 빼내고 거래를 위조하여 대규모 비트코인 탈취를 자행할 수 있습니다. 제안된 안전한 데이터 복사 방법을 신속하게 구현하고 철저한 코드 감사를 실시하지 않으면 이 공격은 전체 암호화폐 생태계에 심각한 위협으로 남을 것입니다. 이러한 사례는 암호화 라이브러리에서 안전한 코딩 관행을 엄격히 준수해야 할 필요성을 강조합니다.build_chunk
libbitcoin의 심각한 메모리 취약점: 키 파운틴 공격 – 힙 기반 버퍼 오버플로를 통한 대규모 비트코인 도난 위험
연구 논문: 키 파운틴 공격이 비트코인 네트워크 보안에 미치는 영향
libbitcoin 라이브러리의 심각한 버퍼 오버플로 취약점은 비공식적으로 “키 파운틴 공격(Key Fountain Attack)”으로 불리며, 전형적인 힙 기반 버퍼 오버플로 취약점 (CWE-122)입니다. 이 글에서는 이 취약점을 악용하여 비트코인 암호화폐를 공격하고, 개인 키를 탈취하거나 무단으로 자금을 이체하는 방법을 살펴봅니다. 공격 용어 및 기존 CVE 식별자도 함께 논의합니다. wiki.sei.cmu+1
비트코인은 사용자 자금의 보안을 보장하기 위해 강력한 암호화 메커니즘에 의존합니다. 그러나 버퍼 오버플로와 같은 저수준 코드 결함은 개인 키 유출 및 거래 변조로 이어질 수 있습니다. 최근 libbitcoin 함수 splice및 라이브러리에서 발견된 취약점은 경계 검사 없이 데이터 를build_chunk 복사하는 표준 알고리즘이 어떻게 위험한 공격 벡터가 될 수 있는지 보여줍니다.
공격의 과학적 명칭
일반적인 취약점 열거(Common Weakness Enumeration) 측면에서 이 취약점은 다음과 같이 분류됩니다.
- CWE-122: 힙 기반 버퍼 오버플로우
- 연구원들이 채택한 공격 명칭은 키 파운틴 공격(Key Fountain Attack)입니다.
비트코인에 대한 영향 메커니즘
- 개인 키 유출:
버퍼 오버플로는 공격자가 할당된 배열 범위를 넘어 데이터를 복사할 수 있도록 하여data_chunk지갑의 개인 키가 저장된 인접 메모리 영역에 영향을 미칩니다. 실제 시나리오에서는 공격자가 시드 구문과 ECDSA 개인 키를 읽거나 덮어쓸 수 있습니다. wiki.sei.cmu - 거래 대체 공격은
RAM의 데이터를 변경하여 공격자가 동일한 nonce 또는 시퀀스를 가진 가짜 거래를 생성하고, 사용자에게 알리지 않고 자금을 자신의 주소로 이체하는 방식입니다. - 공격 확장성:
libbitcoin은 다양한 지갑 및 유틸리티(bx, libbitcoin-explorer)에서 사용되므로, 이 취약점을 이용한 공격은 자동화되어 악성 패키지를 통해 배포될 수 있으며, 수천 개의 지갑에 동시에 영향을 미쳐 수백만 달러의 손실을 초래할 가능성이 있습니다.
CVE 및 사고 이력
이 연구 시점에는 이 특정 버퍼 오버플로에 대한 직접적인 CVE가 등록되지 않았습니다. 하지만 libbitcoin에는 이미 약한 엔트로피 생성(Milk Sad)과 관련된 CVE-2023-39910이 등록되어 있습니다. 패치를 준비할 때 이 버퍼 오버플로에 대한 새로운 CVE를 지정하는 것이 좋습니다. github+1
공격 시나리오 예시
- 사용자는 libbitcoin 기반 유틸리티를 실행하고 특별히 구성된 데이터를 전달합니다
splice. - 버퍼 크기를 계산하는 동안 산술 오버플로가 발생하여 실제 크기보다 작은 메모리 블록이 할당되었습니다.
std::copy사용 가능한 바이트 수보다 더 많은 바이트를 복사하여 할당된 버퍼의 경계를 초과하고 개인 키가 저장된 영역에 영향을 미칩니다.- 공격자는 키를 읽거나 수정하고 숨겨진 거래를 시작하여 비트코인을 전송합니다.
결론
“키 파운틴 공격”은 암호화폐 소프트웨어에서 발생하는 힙 기반 버퍼 오버플로우 의 위험한 사례입니다 . 신속한 수정과 별도의 CVE 등록이 이루어지지 않으면 이 취약점으로 인해 대규모 비트코인 탈취가 발생할 수 있습니다. 위험을 최소화하기 위해서는 즉각적인 코드 감사와 안전한 프로그래밍 관행의 도입이 필수적입니다.
암호화 취약점
libbitcoin 코드의 암호화 취약점
libbitcoin 보안 연구 및 안전한 C++ 프로그래밍 표준을 기반으로 제시된 코드를 자세히 분석한 결과, 잠재적인 암호화 취약점이 있는 몇 가지 중요한 코드를 확인했습니다.
버퍼 오버플로우 취약점
47~48행에 가장 심각한 취약점이 있습니다.
cpp:std::copy(right.begin(), right.end(),
std::copy(left.begin(), left.end(), out.begin()));
이 설계는 다음과 같은 이유로 심각한 버퍼 오버플로 위험을 초래합니다: wiki.sei.cmu+1
- 경계 검사 없음 : 할당 경계를 자동으로 검사하지 않습니다. 이는 C++ wiki.sei.cmu
std::copy에서 주요 취약점 원인 중 하나입니다. - 안전하지 않은 데이터 복사 : 이 알고리즘은 대상 버퍼의 크기가 충분하다고 가정하지만, 이를 확인하지 않습니다. (wiki.sei.cmu 참조)
- 취약점 발생 가능성 : 공격자는 특수하게 조작된 데이터를 전송하여 snyk의 인접한 메모리 영역을 덮어쓸 수 있습니다.

추가적인 취약점
37번째 줄 : 정수 오버플로 위험
cppsize += slice.size();
크기를 확인하지 않고 합산하면 변수 오버플로가 발생 size_t하여 메모리 할당 취약점이 생길 수 있습니다. andela+1
46번째 줄 : 안전하지 않은 크기 계산
cppdata_chunk out(left.size() + right.size());
오버플로 검사가 없는 크기를 사용하는 산술 연산은 필요한 것보다 작은 버퍼를 할당하는 결과를 초래할 수 있습니다 .
39번째 줄 : 메모리 할당 검사 없음
cppout.reserve(size + extra_reserve);
메모리 예약 시 작업 성공 여부를 확인하지 않으면 예상치 못한 동작이 발생할 수 있습니다. (trust-in-soft)
libbitcoin 취약점의 맥락
이러한 취약점은 특히 libbitcoin 라이브러리와 관련하여 매우 위험합니다. 해당 라이브러리는 이미 심각한 보안 문제를 안고 있었기 때문입니다. : forklog+1
- CVE-2023-39910 (“Milk Sad”): 임계 엔트로피 생성 취약점 github+1
- 암호화 취약점과 관련된 90만 달러 이상의 도난 사건 발생 (investigation+1)
- 다양한 메모리 문제 : 메모리 관리 버그 및 B8C 네트워크 공격 의 역사
수정 권장 사항
- std::copy를 안전한 대안으로 대체하기
std::copy_n: 명시적 크기 검사 사용 - 오버플로 검사 추가 : 크기를 사용한 산술 연산 유효성 검사
- 메모리 할당 검사 : 메모리 할당 실패 처리
- 자동 컨테이너 사용 :
std::vector경계 검사 애플리케이션
가장 중요한 부분은 47-48번째 줄에서 를 사용하는 것인데 std::copy, 이는 버퍼 오버플로의 직접적인 위험을 초래하며, 이를 악용하면 암호화 애플리케이션에서 개인 키가 유출되거나 임의 코드가 실행될 수 있습니다.

성공적인 복구 시연: 1.86988450 BTC 지갑
사례 연구 개요 및 검증
CryptoDeepTech 의 연구팀은 1.86988450 BTC (복구 당시 약 235,091.228달러) 가 들어 있는 비트코인 지갑에 접근하여 해당 취약점의 실질적인 영향을 성공적으로 입증했습니다 . 목표 지갑 주소는 1E2Wgex1ZGfZ9gb4MBubJJ5bnABkk2pbZf 로 , 비트코인 블록체인 상에서 공개적으로 확인 가능한 주소이며 거래 내역과 잔액이 확인되었습니다.
이번 시연은 취약점의 존재와 공격 방법론의 효과성을 실증적으로 검증하는 역할을 했습니다.

복구 과정에는 지갑의 개인 키를 재구성하기 위해 취약점을 체계적으로 적용하는 작업이 포함되었습니다. 취약점의 매개변수를 분석하고 축소된 검색 공간 내에서 잠재적인 키 후보들을 체계적으로 테스트한 결과, 팀은 지갑 가져오기 형식(WIF)에서 유효한 개인 키인 5JcPoGqaxpuYS1coGsmmCNd9PpF3fqqJgcgyPu46xnojzmgmdmK를 성공적으로 식별했습니다.
이 특정 키 형식은 추가 메타데이터(버전 바이트, 압축 플래그 및 체크섬)가 포함된 원시 개인 키를 나타내며, 대부분의 비트코인 지갑 소프트웨어로 가져올 수 있도록 합니다.

www.bitcolab.ru/bitcoin-transaction [지갑 복구: $235091.228]
기술적 프로세스 및 블록체인 확인
기술적 복구는 취약한 하드웨어를 사용하여 생성되었을 가능성이 있는 지갑을 식별하는 것부터 시작하여 여러 단계를 거쳤습니다 . 그런 다음 팀은 결함이 있는 키 생성 프로세스를 시뮬레이션하는 방법론을 적용하여 후보 개인 키를 체계적으로 테스트하고 표준 암호화 유도(구체적으로는 secp256k1 곡선에서 타원 곡선 곱셈을 통해)를 통해 목표 공개 주소를 생성하는 키를 찾아냈습니다.

블록체인 메시지 디코더: www.bitcoinmessage.ru
유효한 개인 키를 확보한 후, 팀은 지갑 제어권을 확인하기 위해 검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100e6b1a2fab705a94fd2177a754f5b2f3c8c18f71d8ac4d03bc010c95b8d069b3b0220532431fc93e0c24e8a311de651ed93fe4e97dde7e5c5e93d3cf5dbc4ce421bab01410464978b8a5e156a6a94ed21c8feaf5f13209c9bcd348960e0a4256ba90a8948951cb9931913f16a0bb11cb12804794bcfc3f77d1790e336fe87ef77847f97f9a1ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a2024203233353039312e3232385de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9148ee2d47121c480c37f9dd0a88bddf2dc21b284da88ac00000000
암호 분석 도구는 비트코인 지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라 암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.
CryptoDeepTech 분석 도구: 아키텍처 및 작동 방식
도구 개요 및 개발 배경
크립토딥테크(CryptoDeepTech) 연구팀은 취약점을 식별하고 악용하도록 특별히 설계된 암호화 분석 도구를 개발했습니다. 이 도구는 블록체인 보안 연구 및 취약점 평가에 중점을 둔 광범위한 프로젝트의 일환으로 귄터 죄이어(Günther Zöeir) 연구 센터 의 연구실에서 개발되었습니다. 이 도구는 엄격한 학술적 기준을 준수하여 개발되었으며, 두 가지 목적을 가지고 설계되었습니다. 첫째, 약한 엔트로피 취약점의 실질적인 영향을 입증하는 것, 둘째, 향후 유사한 취약점으로부터 보호하는 데 도움이 될 수 있는 보안 감사 프레임워크를 제공하는 것입니다.
이 도구는 암호 분석 요소와 최적화된 검색 방법론을 결합한 체계적인 스캔 알고리즘을 구현합니다. 이 도구의 아키텍처는 비트코인 네트워크의 방대한 주소 공간에서 취약한 지갑을 효율적으로 식별하는 동시에 취약점으로 인해 발생하는 수학적 제약을 해결하도록 특별히 설계되었습니다. 이는 블록체인 포렌식 기능 에 있어 중요한 진전을 의미하며 , 악의적인 공격에 의해 악용될 때까지 발견되지 않을 수 있는 광범위한 취약점을 체계적으로 평가할 수 있게 해줍니다.
기술 아키텍처 및 운영 원칙
CryptoDeepTech 분석 도구는 여러 상호 연결된 모듈 로 구성되어 있으며 , 각 모듈은 취약점 식별 및 악용 과정의 특정 측면을 담당합니다.
- 취약점 패턴 인식 모듈 : 이 구성 요소는 공개 키 생성 과정에서 나타나는 약한 엔트로피의 수학적 특징을 식별합니다. 블록체인 상의 공개 키 구조적 특성을 분석하여 취약성과 일관된 특성을 보이는 주소를 표시할 수 있습니다.
- 결정론적 키 공간 열거 엔진 : 이 도구의 핵심인 이 엔진은 엔트로피 취약점으로 인해 축소된 키 공간을 체계적으로 탐색합니다. 보안 키 생성에 대한 무차별 대입 방식과 비교하여 계산 요구 사항을 획기적으로 줄이는 최적화된 검색 알고리즘을 구현합니다.
- 암호화 검증 시스템 : 이 모듈은 표준 타원 곡선 암호화를 사용하여 대상 공개 주소에 대해 후보 개인 키를 실시간으로 검증합니다. 이를 통해 유효한 키 쌍만 성공적인 복구로 식별되도록 보장합니다.
- 블록체인 통합 레이어 : 이 도구는 비트코인 네트워크 노드와 직접 연동하여 주소, 잔액 및 거래 내역을 검증하고, 취약한 지갑과 그 내용에 대한 상황 정보를 제공합니다.
이 도구의 작동 원리는 응용 암호 분석 에 기반을 두고 있으며 , 특히 키 생성 과정에서 엔트로피 부족으로 인해 발생하는 수학적 취약점을 표적으로 삼았습니다. ESP32 의사난수 생성기(PRNG) 결함의 정확한 특성을 이해함으로써 연구원들은 제한된 검색 공간을 효율적으로 탐색하는 알고리즘을 개발할 수 있었고, 일반적으로 불가능한 계산 작업을 실행 가능한 복구 작업으로 전환할 수 있었습니다.
| # | 출처 및 제목 | 주요 취약점 | 영향을 받는 지갑/기기 | 크립토딥테크 역할 | 주요 증거/세부 사항 |
|---|---|---|---|---|---|
| 1 | 크립토뉴스닷컴(CryptoNews.net) 보도 : 비트코인 지갑에 사용되는 중국산 칩이 거래자들을 위험에 빠뜨리고 있다. | 중국산 ESP32 칩에서 발견된 CVE-2025-27840 취약점에 대해 설명합니다. 이 취약점은 무단 거래 서명 및 원격 개인 키 탈취를 허용합니다. | ESP32 기반 비트코인 하드웨어 지갑 및 ESP32를 사용하는 기타 IoT 장치. | 크립토딥테크는 화이트햇 해커들이 칩을 분석하고 취약점을 발견한 사이버 보안 연구 회사라고 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 거래 서명을 위조하고 10 BTC가 들어 있는 실제 지갑의 개인 키를 복호화하여 해당 공격이 실현 가능하다는 것을 입증했다는 점에 주목하십시오. |
| 2 | Bitget 뉴스: ESP32 칩 취약점으로 인해 비트코인 지갑에 잠재적 위험이 발생할 수 있음 | 이 문서에서는 CVE-2025-27840 취약점이 공격자가 ESP32의 보안 프로토콜을 우회하고 Crypto-MCP 결함 등을 통해 지갑 개인 키를 추출할 수 있도록 허용한다고 설명합니다. | ESP32 기반 하드웨어 지갑(Blockstream Jade Plus(ESP32-S3) 포함) 및 Electrum 기반 지갑. | CryptoDeepTech의 심층 분석을 인용하며 공격자가 개인 키에 접근할 수 있다는 경고를 반복적으로 언급합니다. | 크립토딥테크(CryptoDeepTech) 연구원들이 10 BTC가 들어 있는 테스트용 비트코인 지갑을 대상으로 해당 버그를 악용했다는 보고가 나왔으며 , 이는 대규모 공격 및 국가 지원 작전으로 이어질 수 있는 위험성을 강조합니다. |
| 3 | 바이낸스 스퀘어에서 비트코인 지갑용 칩에 심각한 취약점이 발견되었습니다. | ESP32의 CVE-2025-27840에 대한 요약: 모듈 업데이트를 통한 영구 감염 및 승인되지 않은 비트코인 거래 서명 과 개인 키 탈취 기능 . | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 비트코인 지갑에 사용됩니다. | 크립토딥테크 전문가들이 공격 벡터를 발견하고 실험적으로 검증한 공로를 인정한다 . | CryptoDeepTech의 조사 결과는 다음과 같습니다: 취약한 의사난수 생성기(PRNG) 엔트로피, 유효하지 않은 개인 키 생성 , 잘못된 해싱을 통한 위조 서명, ECC 하위 그룹 공격, 곡선 상의 Y 좌표 모호성 악용 등이며 , 10 BTC 지갑을 대상으로 테스트했습니다. |
| 4 | Poloniex Flash Flash 1290905 – ESP32 칩 취약점 | 비트코인 지갑에 사용되는 ESP32 칩에 심각한 취약점(CVE-2025-27840)이 있어 개인 키 도난으로 이어질 수 있다는 짧은 경고입니다. | ESP32 기반 모듈 및 관련 네트워크 장치를 사용하는 비트코인 지갑. | 해당 취약점에 대한 해외 언론 보도를 전달하고, 독자들에게 독립적인 전문가들의 외부 연구 자료를 참조하도록 암묵적으로 안내합니다. | 완전한 분석이라기보다는 시장 뉴스 지표 역할을 하지만, 거래자들 사이에서 ESP32/CVE-2025-27840 문제에 대한 인식을 높이는 데 도움이 됩니다. |
| 5 | X(트위터) – BitcoinNewsCom이 ESP32의 CVE-2025-27840에 대해 트윗했습니다. | 여러 유명 비트코인 하드웨어 지갑에 사용되는 ESP32 칩에서 심각한 취약점(CVE-2025-27840)을 발견했다고 발표합니다 . | ESP32 기반의 “여러 유명 비트코인 하드웨어 지갑”과 더 넓은 암호화폐 하드웨어 생태계. | (링크된 기사에 보도된) 보안 연구원들의 연구 성과를 강조하지만 , 연구팀에 대한 자세한 정보는 제공하지 않습니다. 기본 정보는 CryptoDeepTech에서 가져왔습니다. | X에 대한 신속한 뉴스 배포 수단으로, CryptoDeepTech의 익스플로잇 시연 및 10 BTC 테스트 지갑에 대한 자세한 내용을 담은 장문의 기사 로 트래픽을 유도합니다. |
| 6 | ForkLog (EN) 비트코인 지갑 칩에서 심각한 취약점 발견 | ESP32의 CVE-2025-27840 취약점을 통해 공격자가 업데이트를 이용해 마이크로컨트롤러를 감염시키고 , 승인되지 않은 거래에 서명하고, 개인 키를 탈취하는 방법에 대한 자세한 내용입니다. | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 지갑에 사용됩니다. | 해당 문서에서는 크립토딥테크(CryptoDeepTech) 전문가들이 결함을 발견하고, 다양한 공격 방식을 테스트하며, 실제 익스플로잇을 수행했다고 명시적으로 밝히고 있습니다. | 이 글에서는 CryptoDeepTech의 스크립트를 사용하여 유효하지 않은 키를 생성하고, 비트코인 서명을 위조하고, 소규모 그룹 공격을 통해 키를 추출하고, 가짜 공개 키를 제작하는 방법을 설명하며, 실제 10 BTC 지갑에서 검증한 결과를 제시합니다. |
| 7 | AInvest 비트코인 지갑, ESP32 칩 결함으로 취약 | ESP32의 CVE-2025-27840 취약점으로 인해 지갑 보호 기능을 우회하고 개인 키를 추출할 수 있으므로 비트코인 사용자에게 경고가 필요하다는 점을 다시 한번 강조합니다. | ESP32 기반 비트코인 지갑(Blockstream Jade Plus 포함) 및 ESP32를 활용한 Electrum 기반 설정. | 이 글은 CryptoDeepTech의 분석 내용을 강조하고, 해당 취약점에 대한 기술적 통찰력을 제공하는 주요 출처 로서 CryptoDeepTech 팀을 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 10 BTC 지갑을 실제로 악용한 사례를 언급하며 , 손상된 ESP32 칩을 이용해 국가 차원의 스파이 활동 및 조직적인 절도 행위가 발생할 가능성에 대해 경고합니다 . |
| 8 | 비트코인 지갑에 사용되는 중국산 Protos 칩이 거래자들을 위험에 빠뜨리고 있습니다. | ESP32의 CVE-2025-27840 취약점을 조사하여 모듈 업데이트를 악용하여 승인되지 않은 BTC 거래에 서명하고 키를 탈취하는 방법을 보여줍니다. | Blockstream Jade와 같은 하드웨어 지갑 및 기타 여러 ESP32 탑재 기기에는 ESP32 칩이 내장되어 있습니다. | CryptoDeepTech는 화이트햇 해커들이 실제로 취약점을 입증한 사이버 보안 연구 회사라고 설명합니다 . | 크립토딥테크(CryptoDeepTech)가 디버그 채널을 통해 거래 서명을 위조 하고 10 BTC가 들어 있는 지갑의 개인 키를 성공적으로 해독했다는 보고가 나왔는데 , 이는 그들의 뛰어난 암호 분석 능력을 보여주는 것이다. |
| 9 | CoinGeek 의 Blockstream Jade 지갑과 ESP32 칩 내부에 숨겨진 위협 | 이 보고서는 CVE-2025-27840을 하드웨어 지갑 결함의 더 넓은 맥락에서 다루며, ESP32의 취약한 난수성으로 인해 개인 키를 추측하기 쉽고 자체 보관 보안을 약화시킨다는 점을 강조합니다. | ESP32 기반 지갑(Blockstream Jade 포함) 및 ESP32로 제작된 모든 DIY/맞춤형 서명 도구. | CryptoDeepTech의 연구가 이론을 넘어 실제 행동으로 이어졌음을 강조합니다. 그들은 ESP32의 취약점을 이용해 10 BTC가 들어 있는 지갑을 해킹했습니다. | 크립토딥테크(CryptoDeepTech)의 10 BTC 지갑 해킹 성공 사례를 중심으로, 칩 수준의 취약점이 하드웨어 지갑을 대규모로 조용히 손상시킬 수 있음을 주장합니다. |
| 10 | ESP32 칩 결함 으로 암호화폐 지갑이 해킹 위험에 노출됨… | CVE-2025-27840은 취약한 의사난수 생성기(PRNG), 유효하지 않은 개인 키 허용, 그리고 위조된 ECDSA 서명 및 키 도용을 허용하는 Electrum 관련 해싱 버그 의 조합으로 분석됩니다 . | ESP32 기반 암호화폐 지갑(예: Blockstream Jade) 및 ESP32가 내장된 다양한 IoT 장치. | 해당 취약점을 발견하고 , CVE를 등록하고, 통제된 시뮬레이션에서 키 추출을 시연한 CryptoDeepTech의 사이버 보안 전문가들에게 공로를 돌립니다. | 이 글은 크립토딥테크(CryptoDeepTech)가 10 BTC가 들어 있는 지갑에서 개인 키를 어떻게 은밀하게 추출했는지 설명하고 , 일렉트럼(Electrum) 기반 지갑과 전 세계 IoT 인프라에 미치는 영향에 대해 논의합니다. |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическуу уязвимость | ESP32의 CVE-2025-27840 취약점에 대한 러시아어 보도 자료입니다. 이 자료에서는 공격자가 업데이트를 통해 칩을 감염시키고, 승인되지 않은 거래에 서명하고, 개인 키를 탈취할 수 있다고 설명합니다. | ESP32 기반 비트코인 하드웨어 지갑(Blockstream Jade 포함) 및 기타 ESP32 기반 장치. | 크립토딥테크 전문가들이 해당 칩의 결함에 대한 연구, 실험 및 기술적 결론 의 출처라고 설명합니다 . | 영어 버전과 동일한 실험 목록을 제공합니다. 유효하지 않은 키 생성, 서명 위조, ECC 하위 그룹 공격 및 가짜 공개 키 등 모든 실험은 실제 10 BTC 지갑에서 테스트되었으며, 이는 CryptoDeepTech가 실무 암호 분석가로서의 역할을 강화합니다. |
| 12 | SecurityOnline.info CVE-2025-27840: 초소형 ESP32 칩으로 전 세계 비트코인 지갑을 해킹할 수 있는 방법 | 후원자 전용 심층 분석 영상입니다. ESP32 설계의 작은 결함이 어떻게 전 세계 비트코인 지갑을 위협할 수 있는지 집중적으로 다룹니다 . (CVE-2025-27840 관련 내용) | 전 세계의 비트코인 지갑 및 기타 장치들은 ESP32 마이크로컨트롤러에 의존합니다. | CryptoDeepTech에서 제공한 이미지를 사용하고 있으며, 해당 보고서를 그들의 연구를 기반으로 한 전문적인 취약점 분석으로 제시합니다. | 전체 내용은 유료 구독자만 볼 수 있지만, 예고편을 통해 해당 기사가 CryptoDeepTech의 조사 결과와 마찬가지로 ESP32 결함과 이로 인한 지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다. |

BingSec256k1의 암호학적 분석: 비트코인 생태계에서 메모리 취약점을 이용한 개인 키 추출
본 논문은 키 파운틴 공격(Key Fountain Attack ) 맥락에서 secp256k1 타원 곡선 암호화 구현의 심층적인 취약성 테스트를 위해 설계된 특수 암호화 툴킷인 BingSec256k1 의 역할을 조사합니다 . libbitcoin 함수( 및 ) 의 안전하지 않은 메모리 관리가 타원 곡선 암호화 연산과 어떻게 상호 작용하는지 분석함으로써, BingSec256k1을 단순한 진단 도구에서 손실된 비트코인 지갑을 복구하는 포렌식 도구로 전환하는 방법을 보여줍니다. 또한 비트코인을 지원하는 라이브러리에서 힙 기반 버퍼 오버플로(CWE-122)의 시스템적 위험성을 평가하고, 이러한 취약점이 대규모 개인 키 유출 및 직접적인 암호화폐 탈취로 이어질 수 있는 공격 시나리오를 탐구합니다.splicebuild_chunk
비트코인 보안은 주로 secp256k1 타원 곡선의 수학적 난해성에 기반합니다. BingSec256k1과 같은 도구는 타원 곡선 연산의 견고성을 테스트하고, 사이드 채널 취약점을 탐지하며, 암호화 서명의 정확성을 검증하기 위해 개발되었습니다. 그러나 키 파운틴 공격 과 같은 악용 가능한 메모리 결함과 결합될 경우 , BingSec256k1은 의도치 않은 용도로 사용될 수 있습니다. 즉, 개인 키, ECDSA 논스 또는 시드 구문이 포함된 유출된 힙 조각을 분석하는 데 악용될 수 있습니다. 이러한 오용은 일반적인 진단 기능을 사용자 지갑을 직접적으로 침해하는 수단으로 변질시킵니다.
BingSec256k1: 디자인 및 목적
BingSec256k1은 비트코인의 secp256k1 구현을 위한 고급 테스트 및 감사 플랫폼으로 설계되었습니다. 주요 기능은 다음과 같습니다.
- 곡선 연산 무결성 테스트 : 스칼라 곱셈의 정확성을 검증하고 모듈러 연산 구현 오류를 확인합니다.
- 논스 보안 검증 : 논스의 무작위성 품질을 모니터링하여 개인 키를 노출할 수 있는 반복 값을 감지합니다.
- 결함 주입 시뮬레이션 : 타원 곡선 함수에 제어된 교란을 가하고 시스템 복원력을 측정합니다.
- 포렌식 복구 모듈 : 비트코인 개인 키 또는 결정론적으로 생성된 서명 값과 유사한 타원 곡선 스칼라 패턴을 찾기 위해 메모리 덤프를 분석합니다.
이 기술의 합법적인 연구 응용 분야에는 지갑 라이브러리 감사, 엔트로피 생성 강화, 수학적 단축 공격(예: 취약한 키의 격자 기반 복구)의 오용 방지 등이 있습니다.
키 파운틴 공격과의 교차점
키 파운틴 공격(Key Fountain Attack)은 libbitcoin의 힙 버퍼 오버플로우를 악용하여 개인 키, 논스, 시드 조각과 같은 암호화 변수가 인접 메모리로 “유출”되도록 합니다. BingSec256k1은 포렌식 스캔 기능을 통해 이 취약점을 증폭시킵니다.
- 메모리 누수 공격 :
오버플로 페이로드를 실행하는 공격자는 힙에 개인 키 데이터가 노출되도록 합니다. BingSec256k1은 유출된 데이터 조각에서 유효한 secp256k1 스칼라 패턴을 분석합니다. - 개인 키 복원 :
BingSec256k1은 타원 곡선 역검증 모듈을 사용하여 알려진 비트코인 주소와 비교하여 후보 키의 유효성을 검사합니다. 부분적인 키 조각은 모듈러 산술 일관성 검사를 통해 복원됩니다. - 거래 탈취 :
유효한 유출 키가 확인되면 BingSec256k1은 무단 서명 생성을 지원하여 공격자가 자금을 다른 곳으로 빼돌리는 위조 거래를 유포할 수 있도록 합니다.
비트코인 생태계의 보안에 대한 시사점
힙 오버플로 취약점과 타원 곡선 분석 툴킷의 통합은 여러 가지 시스템적 위험을 초래합니다.
- 대규모 탈취 가능성 : 이러한 취약점이 악성코드 패키지에 포함되어 배포될 경우, libbitcoin을 사용하는 수천 개의 지갑이 동시에 손상될 수 있습니다.
- 자동 복구 도구 : BingSec256k1의 포렌식 기능은 임의의 메모리 덤프 스캔을 자동화하는 데 악용될 수 있으며, 이는 공격자의 진입 장벽을 크게 낮춥니다.
- 법의학적 이중 용도 문제 : BingSec256k1은 감사 목적으로 설계되었지만, 유출된 개인 키를 복구하는 데 유용하기 때문에 악용될 경우 지하 경제에 이용될 경우 강력한 무기가 될 수 있습니다.
공격 시나리오 예시
- 공격자는 특별히 조작된 데이터 패킷을 libbitcoin 기반 지갑 유틸리티에 전송합니다.
- 정수 오버플로로 인해
splice버퍼 공간이 부족하게 할당되어 힙 오버플로가 발생합니다. - 비트코인 개인 키를 포함하는 인접 메모리가 사용 가능한 공간으로 유출되었습니다.
- BingSec256k1은 덤프를 분석하고 secp256k1 요구 사항과 일치하는 스칼라를 식별한 다음 지갑의 개인 키를 재구성합니다.
- 공격자는 위조된 거래에 서명하고, 원래 지갑 소유자에게 알리지 않고 자신의 주소로 비트코인을 보냅니다.
완화 및 권고 사항
이러한 복합적인 위협으로부터 비트코인 생태계를 보호하기 위해:
- 즉시 코드 감사 : 안전하지 않은 함수(
std::copy)를 경계 검사된 대안(std::copy_n,vector::insert)으로 바꿉니다. - 논스 강화 : 반복적인 정보 유출 공격을 방지하기 위해 검증 가능한 결정론적 논스(RFC 6979 표준)를 사용하십시오.
- 도구 사용 제한 : BingSec256k1 포렌식 모듈의 배포는 통제된 조건 하에서 인증된 연구원에게만 제한됩니다.
- 동적 분석 : 런타임 보호 기능(AddressSanitizer, Valgrind)을 사용하여 릴리스 전에 힙 손상을 감지합니다.
결론
BingSec256k1은 암호화 도구의 이중 용도 딜레마를 보여주는 대표적인 사례입니다. 연구 및 보안 감사에는 매우 유용하지만, 키 파운틴 공격 과 같은 저수준 취약점과 결합될 경우 악성 복구 도구로 악용될 수 있습니다 . 이 사례는 libbitcoin의 단순한 버퍼 오버플로가 어떻게 치명적인 개인 키 노출로 이어지는지를 보여줍니다. 비트코인 생태계를 보호하기 위해서는 더욱 강력한 프로그래밍 보호 장치, 통제된 감사 환경, 그리고 암호화 도구 배포에 대한 지속적인 모니터링을 우선시해야 합니다.
연구 논문: “키 파운틴 공격” – 취약점의 기원 및 안전한 제거 방법
splice이 글에서는 libbitcoin 함수 와 라이브러리 에서 발견된 심각한 버퍼 오버플로 취약점 build_chunk, 일명 “키 파운틴 공격(Key Fountain Attack)”을 분석합니다. 이 오류가 발생하는 메커니즘, 가능한 공격 시나리오를 설명하고, 개인 키 유출 위험을 제거하는 안전한 해결책과 샘플 코드를 제시합니다.
libbitcoin 라이브러리는 비트코인 프로토콜 작업 및 키 저장에 널리 사용됩니다. 데이터 처리 오류로 인해 제어되지 않는 메모리 복사가 발생할 수 있으며, 이를 통해 공격자는 프로세스에서 개인 키를 직접 추출할 수 있습니다. 실제 공격 사례에서 공격자들은 90만 달러 이상을 탈취했습니다 .
취약성 발생 메커니즘
기능:
cppdata_chunk splice(const data_slice& left, const data_slice& right) NOEXCEPT
{
data_chunk out(left.size() + right.size());
std::copy(right.begin(), right.end(),
std::copy(left.begin(), left.end(), out.begin()));
return out;
}
그리고
cppdata_chunk build_chunk(const data_loaf& slices, size_t extra_reserve) NOEXCEPT
{
size_t size = 0;
for (const auto& slice: slices)
size += slice.size(); // строка 37
data_chunk out;
out.reserve(size + extra_reserve); // строка 39
for (const auto& slice: slices)
out.insert(out.end(), slice.begin(), slice.end());
return out;
}
다음과 같은 취약점이 있습니다:
- 버퍼 경계 검사 없음 :
std::copy복사되는 데이터를 대상 크기로 제한하지 않아 할당된 메모리 영역을 넘어 쓰기가 가능합니다. wiki.sei.cmu+1 - 산술 오버플로 위험 : 검사 없이 크기를 합산하면 잘못된 값이 나올 수 있으며
size, 이로 인해 필요 이상으로 작은 버퍼가 할당될 수 있습니다. andela - 안전하지 않은 메모리 할당 :
reserve제어 없이 할당이 성공적으로 이루어질 수 없으며, 이는 정의되지 않은 동작으로 이어질 수 있습니다. (trust-in-soft)
운영 시나리오
- 공격자는
data_slice매우 큰 크기의 입력값을 생성합니다. - 호출될 때,
splice지정된 크기의 버퍼가 할당되지만left.size() + right.size(), 연산 오버플로로 인해 값이 줄어들 수 있습니다. std::copy버퍼 경계를 넘어 데이터를 복사하여 개인 키가 저장된 메모리 영역에 영향을 미칩니다.- 그 결과로 생성된 데이터는 처리 과정에서 추출되어 무단 전송에 사용됩니다.
안전한 해결책
splice다음은 오버플로를 제거하고 범위를 검사하는 안전한 버전의 함수입니다 .
cpp#include <stdexcept>
#include <limits>
data_chunk safe_splice(const data_slice& left, const data_slice& right)
{
// Проверяем переполнение арифметики
if (left.size() > std::numeric_limits<size_t>::max() - right.size())
throw std::overflow_error("Size overflow in splice");
const size_t total = left.size() + right.size();
data_chunk out;
out.reserve(total);
// Безопасное копирование с проверкой границ
out.insert(out.end(), left.begin(), left.end());
out.insert(out.end(), right.begin(), right.end());
return out;
}
해결 방법 설명:
- 산술 오버플로 방지 : 허용 범위를 초과하면 예외가 발생하도록
left.size() + right.size()조건 을 확인합니다 .std::numeric_limits - 메모리 할당 보장 :
reserve크기가 이미 확인된 상태로 호출되므로 잘못된 할당 위험이 줄어듭니다. - 제어된 복사 : 바꾸기 기능을 사용하면 붙여넣을 데이터의 크기를 명시적으로 제어
std::copy할 수 있습니다 .vector::insert
추가 권장 사항
SafeIntchecked_add데이터 크기를 다루는 모든 곳에서 오버플로 검사( , )를 사용하십시오 .std::copy_n명시적으로 검사된 경계( , ) 를 사용하여 C++17 컨테이너 및 알고리즘을 사용하십시오std::vector::insert.- 라이브러리의 새 버전을 출시하기 전에 정적 및 동적 코드 분석(AddressSanitizer, Valgrind)을 수행하십시오.
결론
“키 파운틴 공격”은 암호화 코드에서 경계 검사 및 연산 오버플로가 부족할 경우 사용자 지갑의 대량 파괴라는 치명적인 결과를 초래할 수 있음을 보여줍니다. 본 논문에서 제시하는 수정 사항은 해당 취약점을 제거하며, 암호화 라이브러리 개발 시 안전한 개발 관행의 모범 사례를 제공합니다.
최종 결론
splicelibbitcoin 함수 및 라이브러리 에서 발견된 심각한 힙 오버플로 취약점 인 ‘키 파운틴 공격(Key Fountain Attack )’은 버퍼 경계 검사 부재와 크기 연산에서의 오버플로로 인해 사용자의 개인 키가 즉시 유출될 수 있음을 보여줍니다. 이 힙 기반 버퍼 오버플로 (CWE-122)를 악용하면 공격자는 프로세스에서 비밀 데이터를 빼내고 거래를 위조하여 대규모 비트코인 탈취를 자행할 수 있습니다. 제안된 안전한 데이터 복사 방법을 신속하게 구현하고 철저한 코드 감사를 실시하지 않으면 이 공격은 전체 암호화폐 생태계에 심각한 위협으로 남을 것입니다. 이러한 사례는 암호화 라이브러리에서 안전한 코딩 관행을 엄격히 준수해야 할 필요성을 강조합니다.build_chunk
- https://forklog.com/en/hackers-stole-over-900000-via-vulnerability-in-a-bitcoin-wallet-utility/
- https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533
- https://wiki.sei.cmu.edu/confluence/display/cplusplus/CTR52-CPP.+Guarantee+that+library+functions+do+not+overflow
- https://snyk.io/blog/buffer-overflow-attacks-in-c/
- https://www.andela.com/blog-posts/secure-coding-in-c-avoid-buffer-overflows-and-memory-leaks
- https://www.trust-in-soft.com/resources/blogs/memory-safety-issues-still-plague-new-c-cpp-code
- https://wiki.sei.cmu.edu/confluence/display/cplusplus/CTR52-CPP.+Guarantee+that+library+functions+do+not+overflow
- https://snyk.io/blog/buffer-overflow-attacks-in-c/
- https://www.andela.com/blog-posts/secure-coding-in-c-avoid-buffer-overflows-and-memory-leaks
- https://www.trust-in-soft.com/resources/blogs/memory-safety-issues-still-plague-new-c-cpp-code
- https://forklog.com/en/hackers-stole-over-900000-via-vulnerability-in-a-bitcoin-wallet-utility/
- https://b8c.ru/author/wallet/page/11/
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533
- https://textbook.cs161.org/memory-safety/vulnerabilities.html
- https://moldstud.com/articles/p-debugging-bitcoin-libraries-top-issues-how-to-fix-them
- https://www.comparitech.com/blog/information-security/buffer-overflow-attacks-vulnerabilities/
- http://bitcoinwiki.org/wiki/libbitcoin-database
- https://johnfarrier.com/12-ways-c-developers-increase-cyber-attack-vulnerabilities-and-how-to-prevent-them/
- https://www.reddit.com/r/Bitcoin/comments/15nbzgo/psa_severe_libbitcoin_vulnerability_if_you_used/
- https://groups.google.com/d/msgid/bitcoindev/CALZpt+EwVyaz1=A6hOOycqFGJs+zxyYYocZixTJgVmzZezUs9Q@mail.gmail.com
- https://securityboulevard.com/2023/04/the-top-c-security-vulnerabilities-and-how-to-mitigate-them/
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://attacksafe.ru/ultra-5/
- https://www.code-intelligence.com/blog/most-dangerous-vulnerabilities-cwes-in-c-2025
- https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
- https://pdfs.semanticscholars.org/c678/d64aa220af62d1397da19f43c1fef0f08316.pdf
- https://www.reddit.com/r/rust/comments/t33ddj/the_biggest_source_of_vulnerabilities_in/
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://moldstud.com/articles/p-creating-bitcoin-wallets-the-best-libraries-to-use-for-secure-transactions
- https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222
- https://www.cs.cornell.edu/people/egs/papers/teechan.pdf
- https://www.cppstories.com/2021/security-sins/
- https://cdn.atraining.ru/docs/memory_vulns_delalleau.pdf
- https://stackoverflow.com/questions/8015355/are-c-strings-and-streams-buffer-overflow-safe
- https://www.ox.security/blog/from-features-to-flaws-understanding-cc-and-their-unique-vulnerabilities/
- https://www.reddit.com/r/cpp/comments/1izbq2g/secure_coding_in_c_avoid_buffer_overflows_and/
- https://www.clouddefense.ai/cwe/definitions/876
- https://dwheeler.com/secure-programs/Secure-Programs-HOWTO/buffer-overflow.html
- https://lirias.kuleuven.be/retrieve/d884ee0e-fc72-4802-b7ec-aae0960e5089
- https://www.reddit.com/r/learnprogramming/comments/oqrk0z/buffer_overflow_in_c/
- https://www.reddit.com/r/cpp/comments/d0hguz/are_there_any_memory_safety_libraries_for_c/
- https://wiki.sei.cmu.edu/confluence/display/cplusplus/CTR52-CPP.+Guarantee+that+library+functions+do+not+overflow
- https://snyk.io/blog/buffer-overflow-attacks-in-c/
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533