2024년, 보안 연구원들은 Dark Skippy를 시연하였으며—이것은 악의적인 서명자 공격으로, 두 건의 거래 서명만으로도 비트코인 지갑의 시드 정보를 유출할 수 있습니다. 공개 당시, 연구원들은 Dark Skippy가 실제 환경에서 사용되고 있다는 사실을 알지 못했습니다. 연구는 대신, 손상된 서명 펌웨어가 얼마나 파괴적일 수 있는지를 보여주었습니다. 이번 회고는 Dark Skippy가 어떻게 작동했는지, 왜 중요한지, 그리고 사용자와 지갑 제조업체가 Dark Skippy 공개로부터 어떤 지속적인 보안 교훈을 얻을 수 있는지 살펴봅니다.
Dark Skippy란 무엇인가?
Dark Skippy는 2024년에 공개된 악의적인 서명자 공격입니다. 이는 특정 하드웨어 지갑 모델의 취약점이 아니며, 대신 서명 장치가 이미 악성 펌웨어를 실행하고 있다고 가정하는 공격입니다—예를 들어 조작, 공급망 침해 또는 사기 펌웨어 업데이트 설치 후 발생할 수 있습니다.
위험은 악성 펌웨어가 서명 과정을 악용하여 사용자 시드 구문을 몰래 유출할 수 있다는 데 있습니다. 진정으로 무작위 값을 생성하는 대신, 감염된 장치는 거래 서명에 시드 구문의 일부를 삽입합니다. 이 서명들이 블록체인에 유효한 거래로 방송되면, 이 서명들을 수집하고 분석하여 전체 시드 구문을 재구성할 수 있습니다.
연구원들의 시연에서는, Pollard의 캥거루 알고리즘을 이용해 두 개의 서명만으로 12단어 복구 구문의 엔트로피를 복원하는 데 성공했습니다.
Dark Skippy는 어떻게 작동하는가
Dark Skippy는 악성 비트코인 서명 장치가 사용자 지갑 시드를 은밀하게 유출할 수 있는 방법입니다. 2024년에 공개된 이 공격은 특정 하드웨어 지갑이나 제조업체의 취약점이 아니며, 장치가 이미 악성 펌웨어를 실행하고 있다고 가정합니다—조작, 공급망 침해 또는 사기 펌웨어 설치를 통해서 말이죠.
악성 펌웨어는 거래 서명 시 사용되는 비밀 넌스(nonce)를 조작하여, 지갑의 시드 엔트로피 일부를 유효한 서명에 인코딩합니다. 공격자는 이 서명들이 비트코인 네트워크를 통해 전달되거나 블록체인에 기록될 때 이를 식별하고, 은폐된 정보를 추출할 수 있습니다.

이들의 개념 증명에서는, 연구원들이 Pollard의 캥거루 알고리즘을 이용해 두 개의 서명만으로 완전한 12단어 복구 구문의 엔트로피를 재구성하는 데 성공했습니다. 거래는 여러 서명된 입력을 포함할 수 있기 때문에, 두 서명 모두 하나의 거래 내에서 생성될 수 있습니다. 따라서, 손상된 서명 장치를 한 번만 사용해도 전체 지갑을 노출시키는 것이 가능하다는 의미입니다.
Dark Skippy는 얼마나 위험한가?
Dark Skippy는 특히 심각한데, 하드웨어 지갑을 오프라인 상태로 유지하는 것만으로는 장치가 손상된 경우 공격을 막을 수 없기 때문입니다.
공기 격리된 지갑은 인터넷에 직접 연결되지 않습니다. 그러나, 서명된 거래는 여전히 QR 코드, 메모리 카드 또는 USB 등을 통해 온라인 장치로 전송되어 방송되어야 합니다. 악성 펌웨어는 이 서명들 내부에 지갑 시드의 일부를 숨길 수 있어, 별도의 인터넷 연결 없이도 정보를 유출할 수 있습니다.
사용자에게는 서명이 정상적으로 보이고 암호학적으로 유효하게 유지됩니다. 공격자는 이 서명들이 비트코인 네트워크에 도달한 후 영향을 받은 서명을 식별하고, 이를 이용해 숨겨진 정보를 재구성할 수 있습니다. 이는 일반 사용자가 공격을 탐지하기 매우 어렵게 만듭니다.
연구원들의 시연에서는, 두 개의 서명만으로 전체 12단어 복구 구문을 재구성하는 데 성공했으며, 이는 하나의 거래에 포함될 수 있는 수준의 효율성을 보여줍니다. 이러한 효율성 덕분에 Dark Skippy는 악성 서명자 공격에서 중요한 발전이 되었습니다.

그러나, Dark Skippy는 정품이고 안전한 하드웨어 지갑을 원격으로 감염시킬 수 없습니다. 공격자는 먼저 장치를 손상시켜야 하며—예를 들어 물리적 조작, 악성 펌웨어 또는 공급망 침해를 통해서입니다. 정품 장치는 정직한 펌웨어를 실행하는 경우 공격을 수행하지 않습니다.

제조사들이 Dark Skippy를 방지하기 위한 해결책
하드웨어 지갑 제조사들은 장치를 조작하기 어렵게 만들고, 손상된 장치가 거래 내에 숨길 수 있는 정보를 제한함으로써 위험을 줄일 수 있습니다.
- 비공식 펌웨어 차단: 장치는 적절히 검증된 소프트웨어만 실행해야 하며, 출고 전 공장 접속 포트를 잠궈야 합니다.
- 펌웨어 검증 가능하게 만들기: 서명된 공개 검증 가능한 펌웨어는 독립 전문가들이 지갑 소프트웨어가 은밀히 수정되지 않았음을 확인하는 데 도움을 줍니다.
- 배송 전 장치 보호: 안전한 유통, 정품 인증 검사, 그리고 변조 방지 포장은 고객에게 수정된 장치를 판매하기 어렵게 만듭니다.
- 반출 방지 보호 추가: 하드웨어 지갑과 관련 앱은 거래 서명 시 함께 작동하여, 장치가 은밀히 서명을 조작하여 복구 구문을 유출하는 것을 방지할 수 있습니다.

일부 하드웨어 지갑은 반출 방지 보호를 추가합니다. 예를 들어, Blockstream Jade 및 Jade Plus는 호환 가능한 지갑 소프트웨어를 사용하여, 손상된 장치가 특정 거래 서명 내부에 비밀을 숨기는 것을 방지하는 데 도움을 줄 수 있습니다. 그러나, 보호는 연결 방법, 지갑 소프트웨어, 그리고 사용된 비트코인 거래 유형에 따라 달라집니다.
Dark Skippy의 위험을 어떻게 줄일 수 있나요?
- 신뢰할 수 있는 곳에서 구매하세요: 제조사 또는 공인 리셀러에게 직접 구매하세요. 중고 또는 사전 구성된 하드웨어 지갑은 피하고, 포장이나 장치에 조작 흔적이 있다면 사용하지 마세요.
- 직접 지갑을 설정하세요: 새 장치는 새 복구 구문을 생성하라는 요청을 해야 합니다. 상자 내부 또는 판매자가 제공한 복구 단어를 절대 사용하지 마세요.
- 신뢰할 수 있는 소프트웨어와 공식 펌웨어 사용: 지갑 소프트웨어는 공식 출처에서 다운로드하고, 제조사 승인 펌웨어만 사용하여 장치를 업데이트하세요. 주 지갑에는 비공식 또는 실험적 펌웨어를 피하세요.
- 장치 통제권 유지: 하드웨어 지갑을 빌리거나 공유하지 마세요. 장치가 통제 밖에 있거나 조작 의심이 되면, 안전한 이전 계획을 세우기 전까지 또 다른 거래에 서명하지 마세요.
- 큰 금액을 보유하는 경우, 멀티시그를 고려하세요: 서로 다른 제조사의 별도 설정 장치를 사용하는 경우, 하나의 손상된 서명자만으로 자금을 훔치는 것이 어렵습니다. 멀티시그는 복잡성을 더하므로, 잘 모른다면 도움을 요청하세요.

결론
Dark Skippy는, 장치 또는 펌웨어가 이미 손상된 경우, 오프라인 하드웨어 지갑도 비밀을 유출할 수 있음을 보여줍니다. 그러나, 정품이고 안전한 지갑을 원격으로 감염시키는 것은 불가능합니다.
대부분 사용자에게 실질적인 대응책은 간단합니다: 신뢰할 수 있는 곳에서 구매하고, 직접 지갑을 설정하며, 공식 소프트웨어와 펌웨어를 사용하고, 장치의 통제권을 유지하세요. 큰 금액을 보유하는 경우, 적절히 구성된 멀티시그는 하나의 손상된 서명자가 자금을 훔치는 것을 방지할 수 있습니다.