
브라우저 확장 프로그램 지갑은 편리합니다. 클릭 한 번으로 접근할 수 있고 트랜잭션을 인라인으로 서명하며 주입형 프로바이더나 WalletConnect를 통해 dapp에 연결합니다. 그 편리함에는 대가가 따릅니다. 확장 프로그램은 여러분이 방문하는 페이지를 보고 변경할 권한을 가진 채 브라우저 안에서 실행되는 코드이며, 공격자도 이를 알고 있습니다. 자기수탁을 한다면 브라우저는 여러분의 위협 모델의 일부이고, 확장 프로그램 보안 관리는 들이는 노력 대비 가장 효과가 큰 습관 중 하나입니다.
이 가이드는 확장 프로그램이 왜 그토록 매력적인 표적인지, 공격 표면을 줄이는 몇 가지 규칙, LavaMoat가 하는 일과 SSP의 확장 프로그램이 그것으로 만들어진 이유, 그리고 SSP의 2-of-2 multisig가 완전히 탈취된 확장 프로그램조차 어떻게 방어하는지를 다룹니다. 이 분야가 처음이신가요? 브라우저 확장 프로그램 지갑 완전 정리부터 읽고 돌아오세요.
브라우저 확장 프로그램이 매력적인 표적인 이유
확장 프로그램은 광범위한 권한으로 실행됩니다. 일반적인 지갑 확장 프로그램은 여러분이 불러오는 페이지의 콘텐츠를 읽고 수정하며, 입력하는 내용을 관찰하고, 클립보드에 접근할 수 있습니다. 이러한 기능은 프로바이더를 주입하고 서명 프롬프트를 표시하기 위해 지갑에 꼭 필요한 것이며, 동시에 공격자가 정확히 원하는 것이기도 합니다.
악성이거나 탈취된 확장 프로그램이 시드 문구에 손도 대지 않고 할 수 있는 일을 생각해 보세요.
- 복사한 주소를 바꿔치기. 받는 주소를 복사하면, 확장 프로그램이 클립보드를 다시 써서 여러분이 붙여넣는 주소가 공격자의 것이 되게 합니다. 이 클립보드 가로채기 수법은 오래됐고 확실하며 눈에 띄지 않습니다.
- dapp에 스크립트 주입. 여러분이 보는 페이지를 변조해, 기대한 값을 표시하면서 트랜잭션의 금액이나 목적지를 바꿀 수 있습니다.
- 화면에 표시된 내용 읽기. 잔액, 주소, 그 밖에 페이지에 있는 모든 것을 읽을 수 있습니다. 피싱 페이지와 결합하면 그 정보는 미끼를 훨씬 더 그럴듯하게 만듭니다 — 암호화폐 사용자를 노리는 피싱 공격을 참고하세요.
경제 논리는 냉혹합니다. 인기 있는 확장 프로그램 하나가 한 번에 수백만 사용자에게 도달할 수 있으므로, 단일 게시자를 탈취하는 것은 엄청난 노력을 들일 가치가 있습니다. 가장 위험한 형태는 실수로 설치한 가짜가 아니라, 이미 신뢰하던 정식 확장 프로그램이 업데이트 후 적대적으로 돌변하는 경우입니다.
보안 관리 규칙
브라우저를 완벽하게 안전하게 만들 수는 없지만, 매력 없는 표적으로 만들 수는 있습니다. 원칙은 최소 권한입니다. 더 적은 확장 프로그램, 더 좁은 권한, 그리고 암호화폐용 브라우저와 그 외 모든 것 사이의 깔끔한 분리입니다.
설치하는 것을 최소화하기
모든 확장 프로그램은 공격 표면이자 여러분이 직접 작성하지 않은 공급망 의존성입니다. 감당할 수 있는 최소한만 설치하고, 오랜 실적을 가진 잘 알려진 프로젝트를 선호하며, 더 이상 쓰지 않는 것은 제거하세요. 지갑 하나에 하드웨어 지갑 브리지면 충분합니다. 자금이 든 브라우저에 십수 개의 생산성 부가 기능이 함께 있는 것은 그렇지 않습니다.
전용 브라우저 프로필 사용하기
오직 암호화폐 용도로만, 지갑 확장 프로그램만 설치한 별도의 브라우저 프로필 — 또는 별도의 브라우저 — 을 만드세요. 쿠폰 검색기, 스크린샷 도구, 정체불명의 "AI" 사이드바는 일상용 프로필에 두어, 여러분이 트랜잭션에 서명하는 동안 페이지를 읽지 못하게 하세요. 이 한 가지 변경만으로도 거의 노력 없이 일상적 위험의 대부분을 제거할 수 있습니다.
권한과 업데이트 검토하기
확장 프로그램을 설치하거나 업데이트할 때는, 클릭으로 지나치지 말고 권한 프롬프트를 읽으세요. "모든 웹사이트의 모든 데이터를 읽고 변경"은 지갑에는 정상이지만 계산기에는 경계해야 할 신호입니다. 자동 업데이트는 실질적인 공급망 위험입니다. 월요일에 검증한 빌드가 목요일에 배포되는 빌드와 같지 않으며, 탈취된 관리자나 의존성이 악성 코드를 곧바로 여러분의 브라우저로 밀어 넣을 수 있습니다. 모든 업데이트를 일일이 손으로 검토할 수는 없으니, 자기 자신의 의존성이 악성으로 변할 수 있다고 가정하는 보안 모델을 갖춘 확장 프로그램을 선호하세요 — 바로 LavaMoat가 제공하는 것입니다. 더 넓은 패턴에 대해서는 공급망 공격과 결정론적 빌드를 읽어 보세요.
가짜 지갑 확장 프로그램 식별하기
스토어는 비슷하게 생긴 것들로 가득합니다. 올바른 이름, 복제된 로고, 조작된 리뷰, 그리고 들어 본 적 없는 게시자입니다. 가짜 지갑 확장 프로그램의 유일한 목적은 여러분의 시드 문구를 가로채거나 트랜잭션을 바꿔치기하는 것입니다. 설치하기 전에 게시자가 프로젝트의 공식 사이트와 일치하는지 확인하고, 설치 수와 이력을 점검하며, 스토어 검색이 아니라 프로젝트 자체의 다운로드 링크를 따라가세요. Chrome 웹 스토어 프로그램 정책은 사칭을 금지하지만, 단속은 게시 시점보다 뒤처��니다 — 스토어는 보장이 아니라 출발점으로 다루세요. 그리고 절대로 시드 문구를 확장 프로그램 팝업에 입력하지 마세요.
LavaMoat가 하는 일 (그리고 SSP가 그것을 쓰는 이유)
현대 웹 앱은 수백 개의 서드파티 패키지로 조립되며, 그중 어느 하나라도 탈취될 수 있습니다. LavaMoat는 바로 그 문제에 대해 JavaScript를 강화하는 오픈소스 도구 모음입니다. 각 서드파티 의존성을 자체의 제한된 환경에 샌드박싱하고, 각 패키지가 무엇에 접근할 수 있는지에 대한 명시적 정책을 강제합니다. 오염된 패키지 하나가 더 이상 앱 전체로 손을 뻗어 여러분의 키를 읽거나, 트랜잭션을 변조하거나, 데이터를 유출할 수 없습니다 — 정책이 허용하는 좁은 범위에 갇히게 됩니다.
이것이 중요한 이유는 공급망 공격이 눈에 띄는 핵심 프로젝트가 아니라 의존성을 노리기 때문입니다. SSP의 브라우저 확장 프로그램은 LavaMoat로 만들어져, 상류의 전이 의존성이 탈취되더라도 피해 범위가 지갑의 키를 내주는 대신 봉쇄됩니다. 이는 여러분이 직접 감사할 수 없는 단 하나의 위험, 즉 다른 사람들이 작성한 코드에 적용된 심층 방어입니다. 이 부류의 공격이 왜 별도의 대응 전략을 가질 자격이 있는지에 대해, OWASP는 owasp.org의 지침에서 공급망 및 주입 위험을 정리해 두고 있습니다.
SSP의 2-of-2가 악성 확장 프로그램을 방어하는 지점
여기 솔직하고 핵심적인 요점이 있습니다. 어쨌든 최악의 경우가 발생해 여러분의 브라우저 확장 프로그램이 완전히 탈취됐다고 가정해 봅시다. 그래도 그것은 일의 절반밖에 할 수 없습니다.
SSP는 2-of-2 multisig입니다. 모든 트랜잭션에는 두 개의 독립적인 서명이 필요합니다 — 하나는 브라우저 확장 프로그램에서, 다른 하나는 자체 화면을 가진 별도 기기인 여러분 휴대폰의 SSP Key에서 나옵니다. 탈취된 확장 프로그램은 악성 트랜잭션을 만들 수 있지만, 두 번째 서명을 생성할 수는 없습니다. 요청이 휴대폰에 도달하면, 확장 프로그램이 제어하지 못하는 화면에서 실제 목적지와 금액을 보고 거부하면 됩니다. 공격자에게는 결코 브로드캐스트되지 않을 트랜잭션에 대한 서명 하나만 남게 됩니다.
이것은 마케팅 문구가 아니라 실제적이고 구조적인 방어 장치이며 — 바로 그래서 두 개의 독립적인 승인 화면이 하나를 능가합니다. 또한 이것이 더러운 브라우저를 운영해도 된다는 면허는 아닙니다. 두 번째 키는 서명하는 순간을 보호합니다. 여러분이 손수 확인한 클립보드 바꿔치기를 막지 못하고, 다른 곳의 나쁜 습관을 되돌리지도 못합니다. 이를 마지막 방어선으로 여기되 유일한 방어선으로 여기지 마세요. multisig조차 한계가 있는 지점을 보려면, Multisig 실패 모드와 SSP의 완화 방법과 키 중 하나가 탈취되면 어떻게 되는가를 읽어 보세요.
빠른 확장 프로그램 점검
오늘 5분 안에 이것을 실행하고, 그 다음에는 분기에 한 번씩 하세요.
- 브라우저의 확장 프로그램 페이지를 열고 설치된 모든 것을 나열하세요.
- 지난 한 달 동안 사용하지 않은 모든 확장 프로그램을 제거하세요.
- 남은 각각에 대해, 게시자가 프로젝트의 공식 사이트와 일치하는지 확인하세요.
- 각 항목이 보유한 권한을 점검하고, 하는 일에 비해 과도한 권한을 가진 것은 모두 삭제하세요.
- 지갑이 아직 전용 암호화폐 전용 프로필에 있지 않다면 그곳으로 옮기세요.
- 여러분의 지갑 확장 프로그램이 공식 출처에서 제공되며, 가능한 경우 LavaMoat로 강화되어 있는지 확인하세요.
계속 나아가기
브라우저 보안 관리는 하나의 계층입니다. 이를 피싱 인지, 건전한 시드 문구 보관, 그리고 지갑의 키가 어떻게 분리되는지에 대한 명확한 이해와 짝지으세요. 강력한 습관에 SSP의 2-of-2 아키텍처가 더해지면, 악성 확장 프로그램 하나는 재앙이 아니라 불편함에 그칩니다 — 다만 그 습관은 여전히 여러분 자신의 것이어야 합니다.


