
'절대 안전'하다던 금고에 구멍이 났다
암호화폐 하드웨어 지갑 제조사 레저(Ledger)가, 사용자 지갑에서 자산이 빠져나간 사건의 원인이 기기에 몰래 심어진 스파이 칩(감시용 칩)이었다고 확인했어요. 하드웨어 지갑은 '개인 키를 인터넷과 떨어진 작은 금고에 보관한다'는 게 존재 이유인 제품이에요. 그런데 그 금고 안에 누군가 도청 장치를 달아놨다는 거니까 꽤 충격적인 이야기죠.
변조된 기기가 어떤 경로로 사용자 손에 들어갔는지, 피해 규모가 얼마인지 같은 세부 사항은 회사 발표와 후속 보도를 계속 지켜봐야 해요. 다만 이 사건의 교훈은 이미 분명해요. 소프트웨어를 아무리 잘 만들어도, 하드웨어 자체가 오염되면 소용없다는 거예요.
하드웨어 지갑은 원래 어떻게 지켜주나
기본부터 짚어볼게요. 암호화폐는 '개인 키'라는 비밀 숫자만 있으면 누구나 옮길 수 있어요. 은행 계좌 비밀번호와 도장을 합친 것 같은 존재죠. 이 키를 PC나 스마트폰에 두면 악성코드에 털릴 위험이 있으니까, 하드웨어 지갑은 키를 보안 칩(Secure Element) 안에만 보관해요.
보안 칩은 신용카드나 여권의 IC칩에도 쓰이는 특수 칩이에요. 물리적으로 뜯어서 내용을 읽어내려는 공격까지 버티도록 설계돼 있죠. 거래할 때도 키를 밖으로 꺼내지 않고, 거래 내용을 칩 안으로 들여보내 서명만 해서 돌려줘요. 사용자는 기기 화면에서 받는 주소와 금액을 눈으로 확인한 뒤 버튼을 눌러 승인하고요. 이 구조 덕분에 PC가 해킹당해도 키는 안전하다는 게 하드웨어 지갑의 약속이에요.
스파이 칩은 어디를 노리나
문제는 보안 칩 '바깥'이에요. 기기 안에는 보안 칩 말고도 USB 통신을 맡는 칩, 화면과 버튼을 제어하는 회로가 함께 들어 있어요. 공격자가 보드에 별도의 칩을 끼워 넣으면 이론적으로 이런 일이 가능해져요.
- 처음 지갑을 설정할 때 화면에 뜨는 복구 문구(시드 구문, 보통 24개 단어)를 엿보거나 가로채기
- 화면에 보이는 받는 주소와 실제로 서명되는 주소를 다르게 만들기
- 사용자가 입력하는 PIN을 기록하기
- 공식 판매처나 공인 리셀러에서만 구매하기. 중고거래나 출처가 불분명한 해외 구매는 피하세요.
- 복구 문구가 미리 적혀 오거나, 이미 설정된 기기는 무조건 의심하기. 시드는 반드시 내가 직접 기기에서 만들어야 해요.
- 자산 규모가 크다면 패스프레이즈(25번째 단어)나, 여러 기기의 서명이 모두 있어야 송금되는 멀티시그를 고려해보세요. 기기 하나가 뚫려도 바로 털리지 않게 방어선을 겹겹이 쌓는 거예요.
여기서 중요한 포인트가 하나 있어요. 레저에는 기기가 정품인지 확인하는 인증 절차가 있는데, 이건 기본적으로 보안 칩이 진짜인지를 암호학적으로 확인하는 방식이에요. 보안 칩은 정품인데 그 옆에 다른 칩이 추가로 붙어 있다면 이 확인만으로는 잡아내기 어려울 수 있어요. '정품 인증 통과'가 '기기 전체가 깨끗하다'는 뜻은 아닐 수 있다는 점, 이게 이번 사건에서 가장 무서운 부분이에요.
레저와 하드웨어 공급망 공격의 역사
레저에 보안 이슈가 처음 있는 일은 아니에요. 2020년에는 마케팅·주문 데이터베이스가 유출돼 고객 이름, 주소, 연락처가 퍼졌어요. 이후 이 정보를 이용해 변조된 레저 기기를 고객 집으로 우편 발송하는 사기가 실제로 보고되기도 했고요. 2023년 말에는 레저의 자바스크립트 라이브러리(Connect Kit)가 npm 공급망 공격을 당해서, 이걸 쓰던 웹 서비스들에서 자산을 빼가는 코드가 실행되기도 했어요.
더 넓게 보면 하드웨어 공급망 공격은 보안 업계의 오랜 악몽이에요. 2018년 서버 메인보드에 쌀알만 한 스파이 칩이 심어졌다는 블룸버그 보도가 있었는데, 관련 기업들이 강하게 부인하면서 논란으로 남았어요. 그래도 그 일로 '하드웨어 임플란트'는 탐지하기 어렵고 파급력이 큰 공격이라는 인식이 널리 퍼졌죠.
한국 개발자와 사용자에게 주는 시사점
개인 사용자라면 당장 이렇게 해볼 수 있어요.
마무리
한줄 정리: 하드웨어 지갑의 보안은 보안 칩 하나가 아니라, 공장에서 내 손에 오기까지의 모든 경로가 결정해요.
여러분은 하드웨어 지갑이나 보안 키를 어디서 사시나요? 사용자가 기기 변조를 직접 확인할 수 있는 현실적인 방법이 있을지 의견을 나눠주세요.
🔗 출처: Hacker News