새로운 하드웨어 지갑 취약점 발견, ‘다크 스키피’

End-Puff Banner

출처: 토큰포스트

보안 연구원들이 해커들이 단 두 번의 서명된 거래만으로도 비트코인 하드웨어 지갑에서 개인 키를 추출할 수 있는 새로운 방법을 발견했다. 이들은 이 취약점을 “다크 스키피(Dark Skippy)”라고 명명했다.

8일(현지시간) 코인텔레그래프에 따르면, 이 취약점은 모든 하드웨어 지갑 모델에 잠재적으로 영향을 미칠 수 있지만, 공격자가 피해자를 속여 악성 펌웨어를 다운로드하게 만들어야만 작동한다.

이 방법의 이전 버전은 피해자가 블록체인에 “수십 개”의 거래를 게시해야 했다. 그러나 새로운 “다크 스키피” 버전은 피해자가 블록체인에 단 몇 개의 거래만 게시해도 수행될 수 있다. 또한 사용자가 별도의 기기로 시드 단어를 생성하더라도 공격을 실행할 수 있다.

공개 보고서는 8월 5일 로이드 푸르니에(Lloyd Fournier), 닉 패로우(Nick Farrow), 로빈 리누스(Robin Linus)가 발표했다. 푸르니에와 패로우는 하드웨어 지갑 제조업체인 프로스트스냅(Frostsnap)의 공동 창업자이며, 리누스는 비트코인 프로토콜인 제로싱크(ZeroSync)와 비트VM(BitVM)의 공동 개발자다.

보고서에 따르면, 하드웨어 지갑의 펌웨어는 사용자의 시드 단어 일부를 “낮은 엔트로피 비밀 난수(nonce)”에 포함시키도록 프로그래밍될 수 있으며, 이 난수는 거래에 서명하는 데 사용된다. 결과적으로 나온 서명은 거래가 확인될 때 블록체인에 게시된다. 그러면 공격자는 블록체인을 스캔해 이러한 서명을 찾아 기록할 수 있다.

결과적으로 나온 서명에는 시드 단어 자체가 아닌 “공개 난수”만 포함되어 있다. 그러나 공격자는 이러한 공개 난수를 폴라드의 캥거루 알고리즘(Pollard’s Kangaroo Algorithm)에 입력해 공개 버전에서 비밀 난수를 성공적으로 계산할 수 있다.

수학자 존 M. 폴라드(John M. Pollard)가 발견한 폴라드의 캥거루 알고리즘은 이산 로그 문제를 해결하는 데 사용될 수 있는 계산 대수학의 알고리즘이다.

연구원들에 따르면, 사용자가 손상된 기기에서 단 두 개의 서명만 생성하고 시드 단어가 별도의 기기에서 생성되었더라도 이 방법을 사용해 사용자의 전체 시드 단어 세트를 도출할 수 있다.

연구원들은 이 취약점의 이전 버전들이 과거에 문서화된 바 있다고 밝혔다. 그러나 이러한 구버전들은 “난수 그라인딩(nonce grinding)”이라는 훨씬 느린 프로세스에 의존했으며, 블록체인에 더 많은 거래를 게시해야 했다. 그럼에도 불구하고 연구원들은 다크 스키피를 새로운 취약점이라고 부르는 것을 자제하고 대신 “기존 취약점을 악용하는 새로운 방법”이라고 주장했다.

이 위협을 완화하기 위해 보고서는 하드웨어 지갑 제조업체들이 악성 펌웨어가 사용자 기기에 들어가는 것을 막기 위해 각별히 주의해야 한다고 제안한다. 이는 “안전한 부팅 및 잠긴 JTAG/SWD 인터페이스 […] 재현 가능하고 벤더가 서명한 펌웨어 빌드 […] 다양한 기타 보안 기능” 등을 통해 할 수 있다. 또한 지갑 소유자들이 기기를 안전하게 보관하기 위해 “비밀 장소, 개인 금고, 혹은 변조 방지 봉투” 등의 방법을 사용할 수 있다고 제안하지만, 이러한 방법이 “번거로울 수 있다”고도 언급한다.

보고서가 제공하는 또 다른 제안은 지갑 소프트웨어가 “반유출(anti-exfiltration)” 서명 프로토콜을 사용하는 것이다. 이는 하드웨어 지갑이 자체적으로 난수를 생성하는 것을 방지한다.

비트코인 지갑 취약점은 과거에 사용자들에게 상당한 손실을 초래한 바 있다. 2023년 8월, 사이버보안 기업 슬로우미스트(Slowmist)는 리빗코인 익스플로러 라이브러리의 결함으로 90만 달러 이상의 비트코인이 도난당했다고 보고했다. 11월에는 언사이퍼드(Unciphered)가 비트코인JS 지갑 소프트웨어의 결함으로 인해 구형 지갑에 보관된 21억 달러 상당의 비트코인이 공격자들에 의해 유출될 위험에 처해 있을 수 있다고 보고했다.

원문보러가기(클릭)

Latest articles

Related articles