나노 레저 S 해킹 당했다던데요?

나노 레저 S는 해커에 의해 자산 출금이 된 적은 없습니다. 그런 일이 단 한번이라도 발생했었다면 Ledger회사는 이미 끝이 났겠죠. 렛저를 포함한 하드월렛들의 존재의 이유인 ‘프라이빗키 보호’가 실패하고 키를 탈취당했다는 뜻이니까요.

레저 나노는 지금껏 해킹당한 적이 없습니다. (멀웨어 감염으로 인한 주소 바꿔치기나 잘못된 주소로 입금하는 것은 나노 레저의 문제가 아닙니다.) 레저의 해킹과 관련한 이슈는 크게 두 가지가 있습니다. 하나씩 짚어보겠습니다.

A. 10대 청소년이 나노 레저S를 해킹했다 는 이슈

결론부터 말씀드리자면, 일단 FUD입니다. 이와 관련해서 18년 3월에 ‘나노레저도 해킹당한다더라, 하드월렛도 해킹당한다’며 사실이 아닌 내용들이 SNS를 통해 확산되었습니다. 인터넷 뉴스 매체에서도 나노 레저가 고작 10대의 어린 화이트 해커에게 해킹당했다고 자극적으로 보도했었지요.

레저 회사에서 하드웨어 지갑의 보안문제를 발견하는 사람에게 현상금을 지급하는 바운티 프로그램을 열었던 적이 있습니다. 15세 saleem rashid 라는 소년은 보안 관련 지식이 해박한 소년이었습니다. 여기에 살림 라시드를 포함한 3명의 화이트해커가 보안 취약점을 발견해서 레저사에 알렸고, 이를 반영하여 펌웨어(1.4.1 ver)를 배포했습니다. 해당 펌웨어에서 보완된 점은 3가지, Oracle Padding / MCU Fooling / Isolation Exploit 이었습니다. 이 이슈는 ’10대한테도 해킹당하는 하드월렛의 보안수준’이라는 자극적인 FUD로 이용되었는데요. 실제로는 ‘해킹당한 것’이 아니라, 보안과 관련한 (그러나 결코 치명적이지않은) 이슈를 밝혀냈다는 겁니다.

살림 라시드가 제시한 MCU Fooling(속임수)에서, 결국 프라이빗키를 추출할 수 있다는 것 아니냐는 의견이 제시되기도 했는데 레저월렛 CTO는, 사실이 아니라며 일축했습니다. MCU Fooling으로 작동/구현하기에는 한계가 있다고 합니다. 라시드의 말대로라면 기존 MCU위에 추가적으로 MCU펌웨어를 입힐 수 있어야되는데 그 부분이 증명되지 않았다고 합니다. ‘Evil Maid’공격이란 악의적인 MCU 펌웨어를 배포해 PIN코드를 도용하고, 프라이빗키를 추출할 수 있는 애플리케이션을 말하는 건데, 이는 시연되지않은 시나리오라고 거듭 말합니다. 그리고 살림이 시연한 레저 나노에 대한 공격은 모두 ‘물리적 접근’이 필수적입니다. 즉 해당 레저를 소유하고 있어야만 시연할 수 있죠. 전세계 모든 레저 사용자를 위협하는 해킹 시연영상은 아니었습니다. 그 외에 나머지 것들은 ‘이론’에 그치는 내용이며, 가짜 레저 매니저 앱을 사용하고, 프라이빗키 추출 멀웨어 등등 살림라시드의 우려대로 되기위해서는 전제조건들이 많습니다. 살림은 레저측에게 보고하면 레저측이 스스로 ‘보안취약점’을 오픈하지 않을거고 숨기려할 것이라고 지레짐작했다고 합니다. 때문에 자신의 블로그에 시연하는 영상 등을 올렸죠. 그리고 레저측은, 살림이 바운티 프로그램 동의서에 서명하는 걸 거부했다고 말하고 있고요.

보다 자세한 이야기가 궁금하다면 레딧의 글, Firmware 1.4: deep dive into security fixes 를 참고해보세요. 결론은 정상 경로를 통해 정상 구매를 하고, 정상적인 프로그램을 사용한다면 걱정할 일이 없는 이슈였습니다.

[관련글] 나의 레저 나노가 정상제품인지 확인하는 방법
[관련글] 레저 나노 S 구매 방법 (이외 경로 모두 비추천)

B. 나노레저에 보관한 자금이 모두 해킹당했다는 이슈

이건 팩트입니다만, 나노레저의 보안상 문제이거나, 나노레저S의 결함으로 인한 해킹이 아니었습니다. 중고제품을 구매해 생긴 문제인데요. 나노레저S는 초기설정단계에서 사용자가 ‘복구단어24개’와 ‘PIN코드’를 직접 설정하도록 되어있습니다. 최초 구매자가 복구단어 24개와 PIN코드를 미리 설정하고, 마치 정상 구성품처럼 위장하여 24개 단어와 PIN코드가 적힌 페이퍼를 제작, 동봉하여 재판매한 경우입니다. 자세히 알아볼까요?

[출처] All my cryptocurrency stolen (by moodyroket)

레딧(Reddit) 사용자 moodyrocket이 이베이에서 중고로 Ledger 지갑을 구매했습니다. 이때 해킹당한 돈은 한화로 3,600만원 이상이구요. 이 글을 본 많은 사람들은 충격에 빠집니다. 단 한번도 레저나노S 자체에는 해킹과 관련한 사례가 없었거든요. 사람들의 반응은 일제히, ‘그럴리가 없다. 니모닉 단어(복구단어)를 유출한거아니냐, 컴퓨터에 입력한거아니냐, 너무 쉬운 PIN 코드를 설정해뒀다가 그걸 누군가 훔친 것 아니냐.’며 댓글로 해킹 경로를 추정하는 내용들이 주루룩 달렸는데요. 알고보니 두둥. 세상에나. moodyroket의 충격적인 댓글이 달립니다.

moodyroket : The Ledger came with a recovery sheet which had a 24 word recovery seed, to see the seed I had to scratch off the silver foil/paint that was covering it.
cryptosnake : WHAT!? THIS IS NOT HOW IT WORKS!!! YOU ARE SUPPOSED TO WRITE KEYS THE LEDGER DEVICE GENERATES! YOU JUST USED SOMEONE PREDEFINED SEED!!! OH MY GOD!!!
Chob_Gobbler : Yeah holy fuck, mystery solved right?

여러분! 나노레저 S 는 절대 미리 설정된 24개 단어를 제공하지 않습니다. 24개 단어는 초기 기기 설정할 때에 기기로부터 랜덤으로 발급받는 단어입니다. 때문에 24개 단어가 미리 적혀있는 sheet가 존재할리가 없는데 그럴싸한 시트를 중고판매자가 사기를 치려는 의도로 그럴듯하게 만들고 은박 씰을 덮어..그렇고 그렇게..그럴싸하게 구매자를 속였던 겁니다.

이것도 충격인데, 두둥. 이런 사례가 추가적으로 발견됩니다. moodyroket의 글이 올라오기 한달 전에도 비슷한 내용의 글이 올라왔었네요. 이 사람은 유튜브 튜토리얼을 참고했었는데, 튜토리얼과 실제 설정방법이 달라 의문을 가졌다고 합니다. PIN코드는 본인이 설정한 것이 아니라 웰컴 카드에 5555 가 PIN코드 디폴트값이라고 적혀있었다고 합니다. 그리고 씨드단어를 기기에서 제시해주지 않았구요(=이미 설정되어있다는 뜻). 구성품에 포함된 “Scratch card(정품의 구성품이 아님)” 은박 스크래치카드를 통해 씨드단어를 제공했다고 합니다. 그래서 혹시 이게, 기존 튜토리얼과 달리 ‘최신 모델’이냐고 묻는 글이 올라왔죠.
[출처] Latest Ledger Nano S? (by iamzaa12)

이 글쓴이 iamzaa12 는 악의적 의도를 가진 리셀러에게 나노 레저S를 구매하긴했지만 다행히도 코인을 레저주소로 입금하지 않아 자산 피해는 없었습니다. 이 사례는 해커로 인한 피해가 아니라, 단순 악질 리셀러 사기꾼에 의한 해프닝이었습니다. 

블로그 내에 내 나노S가 정상제품인지 확인하는 방법을 포스팅해두었습니다. 꼭 확인해보세요.

[관련글] 나의 레저 나노가 정상제품인지 확인하는 방법
[관련글] 레저 나노 S 구매 방법 (이외 경로 모두 비추천)