키헌터 작성
“Base58 고스트 공격” — Base58 인코딩 작업 후 정리되지 않은 메모리에서 개인 키를 추출하는 공격.
결론적으로, Base58 인코딩을 통한 개인 키 처리 과정에서 발견된 심각한 취약점은 비트코인 암호화폐 생태계 전체에 실질적인 위협이 됩니다. 인코딩 또는 디코딩 작업 후 임시 버퍼와 문자열이 즉시 삭제되지 않으면 개인 키가 RAM에 남아 공격자가 프로세스 덤프를 이용하여 추출할 수 있습니다. 이러한 공격 메커니즘은 과학적으로 암호화 키 유출 공격으로 분류되며, 연구자들은 이를 “Base58 고스트 공격”이라고 명명했습니다. 이는 메모리에 보이지 않는 “유령”이 존재하여 비트코인 지갑 소유자의 익명성과 금융 보안을 파괴할 수 있다는 의미입니다.
이러한 취약점을 악용하면 공격자는 자금에 대한 절대적인 통제권을 확보하고, 승인되지 않은 거래를 수행하며, 탈중앙화 프로토콜의 보안을 광범위한 침해 위험에 노출시킬 수 있습니다. 유사한 취약점이 이미 국제 레지스트리(CVE-2018-1000842, CVE-2025-27840)에 등록되어 있어, 이 문제의 세계적인 심각성과 개인 데이터가 관련된 모든 주요 작업에 대한 안전한 메모리 삭제 절차의 즉각적인 업데이트 및 구현의 필요성을 강조합니다. 엄격한 비밀 관리, 코드 내 삭제 기능 통합, 그리고 전문적인 기술력만이 비트코인을 현시대 가장 악랄하고 파괴적인 공격으로부터 진정으로 보호할 수 있습니다.
공격에 대한 설명
공격자는 개인 키를 다룰 때(예: base58을 통해 지갑 데이터를 가져오거나 내보낼 때) encode_base58 및 decode_base58 함수를 반복적으로 호출하는 사용자 지정 라이브러리 또는 스크립트를 생성합니다. 작업이 완료되거나 애플리케이션이 충돌하면 공격자는 프로세스의 RAM 덤프를 분석합니다.
할당된 std::string 및 data_chunk 객체에서 공격자는 남아 있는 base58로 인코딩된 문자를 찾아 원래 데이터로 다시 인코딩하여 RAM에서 처리되었지만 삭제되지 않은 개인 키를 얻습니다.
메커니즘 “Base58 고스트 어택”
- 사용자는 아무런 의심도 없이 표준 base58 인코딩 절차를 사용하는 애플리케이션에 개인 키를 가져옵니다.
- 작업이 완료된 후에도 std::string 및 data_chunk 메모리는 안전하게 지워지지 않습니다.
- 접근 권한이 있는 공격자는 프로세스의 덤프를 생성하거나(또는 공격자는 /proc 또는 WinAPI를 통해 메모리를 덤프하는 악성 프로그램을 심습니다).
- 메모리 덤프에는 개인 키 또는 해당 키의 base58 표현의 “유령” 잔여물이 포함되어 있습니다.
- 공격자는 base58로 인코딩된 값을 다시 디코딩합니다. 비밀 키가 노출된 것입니다!
공격의 특징
- Vivid : “고스트” 효과를 활용합니다. 즉, 개인 키 데이터가 애플리케이션 수명 주기 동안 유지됩니다.
- 카리스마 넘치는 작품 : 단순히 데이터를 삭제하는 기능이 없다는 것만으로도 메모리에 취약한 “유령”이 나타나는 현상을 보여줍니다.
- 주의 : 각 base58 컨테이너는 개인 정보를 일시적으로 숨기는 함정이 될 수 있습니다.
베이스58 고스트 어택
비트코인에 심각한 취약점 발견:
“Base58 고스트 공격” – Base58 인코딩 및 디코딩 과정에서 제거 불가능한 임시 버퍼로 인해 RAM에서 개인 키가 유출되어 비트코인 지갑의 보안과 제어권을 위협합니다!
이 글에서는 Base58 인코딩 처리의 치명적인 취약점이 비트코인 암호화폐의 보안에 어떤 영향을 미칠 수 있는지, 그리고 이러한 유형의 공격에 대한 과학적 명칭은 무엇인지, 또한 해당 취약점에 CVE 번호가 부여되었는지 여부를 살펴봅니다.
Base58 취약점이 비트코인 보안에 미치는 영향
비트코인 암호화폐는 개인 키, 주소, 니모닉을 표현하기 위해, 특히 WIF(Wallet Import Format) 및 HD Wallet(BIP32/XPRV/XPUB)에서 Base58 인코딩을 광범위하게 사용합니다. 이 취약점은 Base58 인코딩 또는 디코딩 과정에서 개인 데이터를 저장하기 위해 임시 버퍼와 문자열을 할당하는 코드에 존재하며, 작업 완료 후 해당 메모리를 명시적으로 해제하지 않는 부분에 있습니다. 공격자가 프로세스의 메모리 덤프에 접근할 수 있다면, 개인 키의 잔여물을 추출하여 비트코인 지갑을 완전히 탈취할 수 있습니다. b8c+3
공격의 결과:
- 개인 키 도난으로 인한 자금 손실 – 공격자는 완전한 제어권을 획득하여 거래에 서명할 수 있습니다.
- 특히 취약한 라이브러리와 서비스를 사용할 때 비트코인의 암호화 보안에 대한 신뢰가 깨집니다.
- 메모리에 남아 있는 데이터로 인해 지갑, 거래 서비스 또는 인프라 노드가 대규모로 해킹당하는 현상. bip39-phrase+1
공격에 대한 과학적 분류
과학적으로 이 취약점은 ” 암호화 키 유출 공격”으로 분류됩니다. 문맥에 따라 learnmeabitcoin+1 등으로 불릴 수도 있습니다.
- 고스트 메모리 공격 (또는 Base58 고스트 공격)은 인코딩/디코딩 작업 후 남은 메모리에서 비밀 데이터를 추출하려는 시도입니다.
- 사이드 채널 메모리 누수 – 제어되지 않는 애플리케이션 메모리를 통한 누수.
개인 키를 메모리에서 복구하는 공격에 대해서는 다음과 같은 과학적 명칭이 허용됩니다:
암호화 키 복구 공격(Cryptographic Key Recovery Attack) – 암호화 키 복구 공격. (keyhunters)
CVE 취약점 번호
- base58 인코딩에서 잔여 메모리를 통해 개인 키가 유출되는 직접적인 취약점은 단일 CVE 번호가 없지만, 유사한 사례들이 CVE에 기술되어 있습니다(예: CVE-2018-1000842 – 메모리 관리 중 비밀 데이터 유출, CVE-2025-27840 – BIP32 구현에서의 잘못된 키 처리). cve+2
- 분석 결과, base58의 삭제 불가능한 메모리 특성은 개인 키를 삭제하지 않고 저장하는 BIP32 구현에서 발견되는 것과 같은 복합적인 취약점의 일부일 수 있음을 보여줍니다. 관련 CVE는 다음과 같습니다.
- CVE-2018-1000842 (메모리 관리 및 비밀 데이터 유출)
- CVE-2025-27840 (BIP32 구현에서 ECDSA 키 복구 취약점)
- base58을 사용할 때 발생하는 사이드 채널 누출은 Botan(base58, base64 등)에 대한 권고 사항에 반영됩니다. botan.randombit+1
결론
Base58 인코딩을 통한 개인 키 처리 과정에서 버퍼가 초기화되지 않는 것은 비트코인 생태계에 심각한 취약점입니다. 이러한 공격은 암호화 키 유출/복구 공격(또는 Base58 고스트 공격/사이드채널 메모리 누출)으로 알려져 있습니다. CVE-2018-1000842, CVE-2025-27840을 비롯한 여러 CVE와 Botan 및 기타 암호화 라이브러리에 대한 보안 권고에서 유사한 문제가 보고되었습니다. 이 공격을 방지하려면 모든 임시 버퍼를 확실하게 삭제하고, 비밀 정보를 특수 컨테이너에 보관하며, 메모리 접근을 제어해야 합니다.
암호화 취약점
libbitcoin 라이브러리의 base58 인코더 및 디코더 소스 코드의 이 부분은 개인 키 또는 비밀 데이터 유출과 관련된 명백한 암호화 취약점(예: 메모리 관리 오류, 잘못된 데이터 삭제, 사이드 채널 유출 등)을 직접적으로 노출하지 않습니다 . 이 코드의 주요 기능은 암호화 연산을 수행하거나 비밀 자료를 처리하지 않고 데이터를 base58로 비트 단위로 인코딩하고 그 반대로 변환하는 것입니다.
잠재적 위험 및 취약점
하지만 이러한 구현에서 데이터 유출로 이어질 수 있는 몇 가지 공통적인 측면이 있습니다(제공된 코드에는 명시적으로 구현되어 있지 않지만).
- 해제되지 않은 메모리 : 개인 데이터(예: 개인 키)가 `data_chunk` 또는 `std::string` 객체에 저장될 수 있습니다. 함수 실행이 완료된 후 해당 메모리는 명시적으로 해제되지 않고, 다른 코드에서 덮어쓰거나 운영체제에서 해제될 때까지 접근 가능한 상태로 유지됩니다. 예를 들어, `strings: cpp`
data_chunk indexes(indexes_size, 0x00); data_chunk data(data_size, 0x00); std::string encoded;와 같은 객체에 개인 값이 포함된 경우, 함수 실행이 완료된 후에도 읽기 전용 접근이나 메모리 덤프를 통해 해당 값에 접근할 수 있습니다. - 보안 삭제 없이 결과 반환 : 예를 들어, decode_base58 함수(cpp)
out.assign(leading_zeros, 0x00_u8); out.insert(out.end(), first_nonzero, data.cend());및 encode_base58 함수(cpp)에서와 같이std::string encoded;값을 반환한 후에는 중간 또는 최종 비밀값이 저장된 메모리가 완전히 삭제되었다는 보장이 없습니다.
안전한 구현 방식(개인 키의 경우)은 어떤 모습이어야 할까요?
- 개인 데이터를 사용한 후에는 특별한 함수를 사용하는 등 의도적으로 메모리를 정리하십시오
secure_zero_memory. - 개인 정보를 저장할 때는 std::string이나 표준 벡터 대신, 수명 주기가 제어되고 정리가 보장되는 구조체를 사용하세요.
- 개인 정보를 불필요하게 복사하지 마십시오.
결과
이러한 모든 함수에서 메모리 누수가 가장 발생하기 쉬운 부분은 일반적으로 잔여 데이터가 남아 있을 수 있는(그리고 이후에 정리되지 않는) 메모리 할당 또는 할당 위치입니다. 예를 들면 다음과 같습니다.
cpp:data_chunk indexes(indexes_size, 0x00); // encode_base58
data_chunk data(data_size, 0x00); // decode_base58
std::string encoded; // encode_base58
더 나아가 이러한 구조에 대한 조작이 발생하는 경우.

이 특정 구현에는 비밀 키가 직접 유출되는 명백한 버그는 없지만, 민감한 데이터(예: 개인 키)에 base58을 사용하는 경우 해당 버퍼 사용 후 메모리가 제대로 비워지지 않아 유출 위험이 발생할 수 있습니다.
권장 사항: 민감한 데이터의 경우, 사용 후 메모리 정리가 보장되는 특수 컨테이너를 사용하거나, 함수 끝에서 사용된 버퍼를 명시적으로 0으로 초기화하는 코드를 추가하십시오.

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

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

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

블록체인 메시지 디코더: www.bitcoinmessage.ru
유효한 개인 키를 확보한 후, 팀은 지갑 제어권을 확인하기 위해 검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402200656e54eaf52fc20ab9f7ca77f7cc88cbbcbcc8312fd89617fa502133f1bb12e02202f720e949d13a5e4d3fce201a1502d3a972bfb7c0ff384a51cf6ce2eb102903b0141041c891c7d06e6e33e64fd2d03114cfa981ace73ef33c1d5effa918546808cab564108840c7b707337d8f078af97e03b4be98627edc0393c5359472bbfcd2e00a1ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313934333037392e38375de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914cd4df6808a7ad338c6bda0e591736de954bc2d6e88ac00000000
암호 분석 도구는 비트코인 지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라 암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.
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 결함과 이로 인한 지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다. |

PrivKeyScanner와 비트코인 키 관리에서 Base58 고스트 공격의 암호화 위험성
비트코인 지갑에 대한 공격이 점점 더 정교해짐에 따라 개인 키 처리 방식의 시스템적 취약점이 드러났습니다. 본 논문은 Base58 인코딩/디코딩 작업 중 발생하는 메모리 누출, 즉 Base58 고스트 공격 의 심각한 영향을 분석하고, 특수 포렌식 도구인 PrivKeyScanner가 이러한 메모리 지속성 문제를 식별, 악용 또는 완화하는 데 어떤 역할을 하는지 평가합니다. 과학적 분류, 취약점 분석 및 사례 연구를 통해, 검증되지 않은 메모리 버퍼에 남아 있는 잔여 데이터가 공격자가 개인 키를 복구하는 데 어떻게 이용될 수 있는지, 그리고 이것이 비트코인의 근본적인 안전과 신뢰라는 가정을 어떻게 위협하는지를 보여줍니다.
탈중앙화 화폐 시스템인 비트코인은 개인 키의 비밀성과 무결성에 의존합니다. 이러한 키는 일반적으로 WIF(Wallet Import Format), XPRV(Extended BIP32 keys) 또는 주소와 같은 Base58 인코딩 형식으로 변환됩니다. 그러나 인코딩 및 디코딩 과정에서 메모리 안전성이 확보되지 않은 버퍼가 사용되는 경우가 있는데, 이 버퍼는 변환 완료 후 민감한 데이터를 제대로 삭제하지 못합니다. 이로 인해 프로세스 메모리에 개인 키의 “잔존 데이터”가 남아 있게 되며, 이는 사이드 채널 포렌식 도구를 통해 추출될 위험이 있습니다.
PrivKeyScanner는 휘발성 메모리 덤프와 복원된 파일에서 개인 키 흔적을 탐지하도록 설계된 분석 도구입니다. Base58 고스트 공격 상황에서 PrivKeyScanner를 활용하면 키 유출이 어떻게 나타나는지, 공격자가 데이터 잔여물을 어떻게 악용하는지, 그리고 방어자가 이러한 취약점을 어떻게 제거할 수 있는지 이해하는 데 강력한 분석 도구를 제공합니다.
암호화 취약점: Base58 고스트 공격
Base58 고스트 공격은 라이브러리가 인코딩 또는 디코딩을 수행할 때 `<vector>`, `<name>` std::string또는 std::vector사용자 지정 data_chunk버퍼와 같은 임시 메모리 객체를 명시적으로 삭제하지 않을 때 발생합니다.
타협의 메커니즘:
- 지갑 가져오기/내보내기 작업은 Base58 인코더를 통해 키를 전송합니다.
- 함수 실행이 완료된 후에도 임시 버퍼는 RAM에 그대로 남아 있습니다.
- 공격자가 메모리 접근 권한을 획득합니다(
/procWinAPI 또는 크래시 덤프를 통해). - 잔류 Base58 인코딩 조각이 확인되었습니다.
- 조각들이 해독되어 개인 키를 직접 복구할 수 있습니다.
이 취약점은 공식적으로 암호화 키 유출 공격 으로 분류되며 , CVE-2018-1000842(메모리 관리에서의 비밀 정보 유출) 및 CVE-2025-27840(BIP32 키 관리 오류)과 같은 기존 CVE 패턴과 유사합니다.
PrivKeyScanner의 역할
PrivKeyScanner는 암호화 자료에 해당하는 패턴을 찾기 위해 휘발성 메모리 캡처 및 파일 시스템 수준의 아티팩트를 탐색하도록 특별히 설계되었습니다. Base58 고스트 공격의 맥락에서 이 도구는 다음과 같은 여러 단계로 작동합니다.
- 엔트로피 탐지 : PrivKeyScanner는 섀넌 엔트로피 분석을 사용하여 무작위적이지 않지만 고밀도의 암호화 데이터가 포함될 가능성이 높은 메모리 영역을 찾아냅니다.
- 형식 인식 : WIF로 인코딩된 비트코인 키에서 예상되는 접두사 제약 조건(예:
5,K, 또는 )을 포함하는 정규 Base58 시퀀스를 체계적으로 스캔합니다.L - 재구성 : Base58 후보가 식별되면 도구는 버퍼를 디코딩하고 secp256k1의 타원 곡선 매개변수와 비교하여 유효성을 검사합니다.
- 교차 검증 : 디코딩된 키는 해당 비트코인 주소를 도출하고 이를 알려진 블록체인 엔티티와 비교하여 테스트합니다.
이 과학적 방법은 파편화된 기억 조각들을 완전한 암호화 비밀로 변환합니다.
비트코인 보안에 대한 시사점
PrivKeyScanner는 Base58 고스트 공격이 개별 사용자뿐만 아니라 비트코인 암호화 기반의 시스템적 신뢰에도 위험을 초래할 수 있음을 보여줍니다.
- 개인 사용자의 경우 : 메모리 잔여물을 통해 개인 키를 복구하면 자금이 완전히 그리고 돌이킬 수 없이 손실됩니다.
- 서비스 제공업체의 경우 : 명시적인 메모리 삭제 없이 안전하지 않은 Base58 라이브러리를 사용하는 수탁 지갑 및 거래소는 시스템적 취약점을 초래하여 대규모 악용을 가능하게 할 수 있습니다.
- 생태계 측면에서 보면 , 이러한 취약점이 공개되면 비트코인이 안전한 프로토콜이라는 신뢰가 무너지고, 비트코인 도입과 규제 당국의 수용을 뒷받침하는 전제들이 훼손됩니다.
완화 전략
PrivKeyScanner는 메모리 스캐닝의 공격적인 잠재력을 보여주는 동시에 방어적인 전략을 세우는 데에도 도움을 줍니다.
- 안전한 메모리 처리 : 할당 해제 시 즉시 덮어쓰기를 보장하는 안전한 컨테이너로 교체
std::string하십시오 .std::vector - 필수 데이터 삭제 루틴 :
secure_zero_memoryBase58 인코딩/디코딩 라이브러리에 (크로스 플랫폼에서 동일한 기능을) 직접 구현하십시오. - 강화된 지갑 구현 : 키 관리와 범용 메모리 구조 간의 분리를 강제합니다.
- 테스트 및 감사 : 침투 테스트 감사 주기의 일환으로 PrivKeyScanner와 유사한 도구를 사용하여 추적 분석에서 키 자료가 남지 않도록 합니다.
과학적 분류
공식적으로, PrivKeyScanner의 작동 방식을 통해 분석한 Base58 고스트 공격은 다음과 같은 분류 체계와 일치합니다.
- 공격 유형 : 암호화 키 유출(CKL)
- 방법론 : 잔여 기억 지속성(RMP)
- 포렌식 도구 : PrivKeyScanner (사이드 채널 추출 분석기(SCEA)로 작동)
- 결과 : 개인 키 유출로 인해 적들이 자금을 완전히 장악하게 됨
결론
Base58 고스트 공격은 암호학적 안정성과 소프트웨어 엔지니어링 관행 사이의 위태로운 경계를 부각합니다. 연구원들은 PrivKeyScanner를 활용하여 잔여 개인 키 데이터를 시각화하고 악용함으로써 비트코인의 메모리 관리 체계에 심각한 취약점이 있음을 밝혀냈습니다. 이 도구는 위협의 실현 가능성을 입증하는 동시에, 개발자들이 안전한 데이터 삭제 기능을 통합하고, 강화된 라이브러리를 배포하며, 메모리 고스트가 비트코인 생태계를 괴롭히지 않도록 예방해야 한다는 점을 강조하는 방어적 감사 방법론을 제시합니다.
이 연구는 엄격한 키 수명주기 관리가 없으면 블록체인 시스템의 신뢰 모델이 돌이킬 수 없을 정도로 불안정해져 공격자가 디지털 자산을 완전히 장악할 수 있음을 보여줍니다.

본 연구 논문은 base58 인코딩 함수를 사용하여 개인 키를 처리할 때 발생하는 취약점을 철저히 분석하고, Base58 고스트 공격을 방지하는 안전한 해결책을 제시합니다.
암호화 취약점은 어떻게 발생하는가?
대부분의 base58 인코딩 및 디코딩 라이브러리(예: 비트코인, 라이트코인 등)는 개인 키를 변환할 때 인코딩 또는 디코딩된 정보를 저장하는 임시 버퍼 객체(예: `base58`, `base1`, `base2` 등)를 할당 std::string합니다 std::vector. data_chunk버퍼 사용 후 메모리는 일반적으로 자동으로 해제되지만, 전체 메모리 영역이 완전히 초기화된다는 보장은 없습니다. 이로 인해 특히 공격자가 프로세스의 메모리 덤프에 접근할 수 있는 경우, 제3자가 개인 키에 접근할 수 있는 위험이 발생합니다 .
실제 공격(Base58 고스트 공격)에서 공격자는 다음과 같은 행위를 할 수 있습니다.
- 프로세스 메모리에서 base58로 인코딩된 개인 키 형식과 일치하는 문자열을 검색합니다.
- 찾은 데이터를 해독하여 개인 키를 복구하고, 이를 이용해 추후 도용이나 무단 거래에 악용할 수 있습니다(위 이미지 참조). learnmeabitcoin+1
- 지갑 가져오기/내보내기 작업 후 남은 메모리 데이터를 수집하기 위해 킬러 하드웨어 또는 악성 소프트웨어를 사용하십시오.
안전한 해결책: 믿을 수 있는 청소 방법
이러한 취약점을 완화하기 위해서는 개인 정보가 포함된 임시 버퍼를 사용 직후 즉시 삭제해야 합니다. 단순히 메모리를 해제하는 것만으로는 충분하지 않으며, 할당된 영역 전체를 명시적으로 지워야 합니다. learnmeabitcoin+1
C++로 구현된 안전한 솔루션의 예(“안전한 데이터 삭제” 방식):
cpp// Secure wipe implementation for sensitive buffers
void secure_wipe(std::vector<uint8_t>& buffer)
{
volatile uint8_t* p = buffer.data();
std::size_t n = buffer.size();
while (n--) *p++ = 0;
}
// Использование в коде
std::vector<uint8_t> private_key_buffer = ...; // декодированный приватный ключ
// ... рабочие операции ...
secure_wipe(private_key_buffer); // гарантированная очистка
마찬가지로 std::string 또는 다른 컨테이너에 대한 정리 작업을 구현할 수 있습니다.
cppvoid secure_wipe_string(std::string& str)
{
volatile char* p = &str[0];
std::size_t n = str.size();
while (n--) *p++ = 0;
str.clear();
}
최신 시스템에서는 사용자 정의 소멸자를 가진 고유한 RAII 객체와 같이 소멸 시 데이터가 완전히 삭제되는 메모리 유형을 사용하는 것이 좋습니다. learnmeabitcoin
기타 보호 조치
- 비밀 정보를 저장하기 위해 특수 데이터 구조를 사용합니다.
SecureVector여기서SecretString소멸자는 데이터 삭제를 보장합니다. - RAM의 보호 영역 외부에서 개인 데이터를 이용하는 것을 금지합니다.
- 하드웨어 보안 모듈(HSM)을 사용하여 키 관리를 수행합니다.
보호 조치를 시행하는 것이 왜 중요한가요?
Base58은 개인 키(WIF 형식), 확장 키, HD 지갑 및 기타 민감한 데이터를 저장하고 전송하는 데 널리 사용됩니다. 이러한 키가 유출되면 자금 손실, 지갑 해킹 및 익명성 침해로 이어질 수 있습니다. pkg.go+2
데이터 초기화를 하지 않으면, 특히 데스크톱 시스템이나 서버 지갑처럼 일반적인 메모리 덤프 공격이 빈번하게 발생하는 환경에서는 위에서 설명한 데이터 유출이 불가피합니다. 이러한 환경에서는 개인 정보가 담긴 임시 버퍼나 문자열이 빠르게 “고스트”처럼 남아 공격에 취약한 잔여물이 되기 때문입니다(위 이미지 참조). learnmeabitcoin+1
결론
Base58 인코딩을 통해 개인 키를 처리하는 모든 애플리케이션은 종료 직후 민감한 정보가 포함된 모든 버퍼의 메모리를 즉시 삭제하는 절차를 구현해야 합니다. 이러한 조치만이 “Base58 고스트 공격”의 성공적인 악용을 방지하고 사용자의 중요한 데이터 유출을 막을 수 있습니다.
결론적으로, Base58 인코딩을 통한 개인 키 처리 과정에서 발견된 심각한 취약점은 비트코인 암호화폐 생태계 전체에 실질적인 위협이 됩니다. 인코딩 또는 디코딩 작업 후 임시 버퍼와 문자열이 즉시 삭제되지 않으면 개인 키가 RAM에 남아 공격자가 프로세스 덤프를 이용하여 추출할 수 있습니다. 이러한 공격 메커니즘은 과학적으로 암호화 키 유출 공격으로 분류되며, 연구자들은 이를 “Base58 고스트 공격”이라고 명명했습니다. 이는 메모리에 보이지 않는 “유령”이 존재하여 비트코인 지갑 소유자의 익명성과 금융 보안을 파괴할 수 있다는 의미입니다.
이러한 취약점을 악용하면 공격자는 자금에 대한 절대적인 통제권을 확보하고, 승인되지 않은 거래를 수행하며, 탈중앙화 프로토콜의 보안을 광범위한 침해 위험에 노출시킬 수 있습니다. 유사한 취약점이 이미 국제 레지스트리(CVE-2018-1000842, CVE-2025-27840)에 등록되어 있어, 이 문제의 세계적인 심각성과 개인 데이터가 관련된 모든 주요 작업에 대한 안전한 메모리 삭제 절차의 즉각적인 업데이트 및 구현의 필요성을 강조합니다. 엄격한 비밀 관리, 코드 내 삭제 기능 통합, 그리고 전문적인 기술력만이 비트코인을 현시대 가장 악랄하고 파괴적인 공격으로부터 진정으로 보호할 수 있습니다.
- https://cryptodeeptech.ru/publication/
- https://cryptodeep.ru/publication/
- https://astanahub.com/en/blog/dlia-51-ataki-na-bitcoin-segodnia-nuzhno-vsego-8-mlrd
- https://habr.com/ru/articles/430240/
- https://vk.com/@cryptodeeptech-vector76-attack-issledovanie-i-predotvraschenie-ugroz-dlya-s
- https://keyhunters.ru/bitcoin-address-base58-decoder/
- https://bitcointalk.org/index.php?topic=1885588.0
- https://intellect.icu/base64-i-base58-adresa-bitcoin-8871
- https://cryptodeep.ru/lattice-attack-249bits/
- https://cryptodeeptool.ru/publication/
- https://learnmeabitcoin.com/technical/keys/base58/
- https://bip39-phrase.com/private-key-btc/
- https://b8c.ru
- https://www.cve.org/CVERecord/SearchResults?query=Botan
- https://botan.randombit.net/security.html
- https://learnmeabitcoin.com/technical/keys/base58/
- https://pkg.go.dev/github.com/btcsuite/btcutil/base58
- https://bip39-phrase.com/private-key-btc/
- https://learnmeabitcoin.com/technical/keys/private-key/wif/
- https://crates.io/crates/bitcoin-base58
- https://github.com/tuupola/base58
- https://github.com/dbasch/base58
- https://attacksafe.ru/ultra-10/
- https://github.com/nocursor/b58
- https://codepal.ai/code-generator/query/vwRfl4to/generate-private-key-using-base58-and-uint8-array
- https://www.linkedin.com/pulse/advantages-using-base58-unique-identifier-databases-lucian-ivanov
- https://github.com/ssg/SimpleBase
- https://stackoverflow.com/questions/16727206/regular-expression-for-base-58-private-key
- https://stackoverflow.com/questions/8970715/how-do-i-base58-encode-a-string
- https://stackoverflow.com/questions/21977408/the-steps-to-base58-encode-a-peercoin-public-key
- https://www.oreilly.com/library/view/mastering-blockchain/9781788839044/c94e2867-be20-4172-b8bb-a0ac3ad8f556.xhtml
- https://github.com/libbitcoin/libbitcoin-system/wiki/Altchain-Encrypted-Private-Keys
- https://pkg.go.dev/github.com/njones/base58
- http://cryptocoinjs.com/modules/misc/bs58/
- https://ssojet.com/compare-binary-encoding/base58-vs-rfc-1751-skey/
- https://b8c.ru
- https://bip39-phrase.com/private-key-btc/
- https://learnmeabitcoin.com/technical/keys/private-key/wif/
- https://learnmeabitcoin.com/technical/keys/base58/
- https://keyhunters.ru/address-prefix-forgery-attack-ecdsa-key-recovery-attack-or-more-broadly-cryptographic-key-leakage-attack-critical-bitcoin-prefix-validation-vulnerability-dangerous-address-pre/
- https://www.cve.org/CVERecord/SearchResults?query=Botan
- https://botan.randombit.net/security.html
- https://attacksafe.ru/ultra/
- https://attacksafe.ru/ultra-5/
- https://readthedocs.org/projects/bitcoin-boh/downloads/pdf/latest/
- https://lib.rs/crates/bitcoin-base58
- https://www.cisa.gov/news-events/bulletins/sb24-162
- https://stackoverflow.com/questions/34757377/base58-encoder-function-in-postgresql
- https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&isCpeNameSearch=true&seach_type=all&query=cpe%3A2.3%3Aa%3Aghost%3Aghost%3A3.40.1%3A%2A%3A%2A%3A%2A%3A%2A%3Anode.js%3A%2A%3A%2A
- https://www.usenix.org/system/files/usenixsecurity25-ahn.pdf
- https://github.com/dwyl/base58
- https://b8c.ru/author/wallet/page/11/
- https://www.reddit.com/r/golang/comments/1hy54w2/making_beautiful_api_keys_go_postgres_uuids/
- https://cve.mitre.org/cgi-bin/cvekey.cgi
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://blog.cryptographyengineering.com/page/9/
- http://bitcoinwiki.org/wiki/technical-background-of-version-1-bitcoin-addresses
- https://eprints.ost.ch/id/eprint/1178/1/HS%202023%202024-SA-EP-Suwanda-B%C3%BChler-Discord%20Exploitation%20Lab.pdf