
만무: 크롬 악성 확장 프로그램, 백만 달러 훔쳐
글: 23pds@슬로우미스트 보안 팀
배경
2024년 6월 3일, 트위터 사용자 @CryptoNakamao는 악성 Chrome 확장 프로그램 Aggr을 다운로드한 후 100만 달러를 도난당한 경험을 게시하여 광범위한 암호화 커뮤니티 사용자들이 브라우저 확장 프로그램의 위험성과 자신의 암호화 자산 보안에 대해 우려하게 되었다. 이전인 5월 31일, 슬로우미스트(SlowMist) 보안 팀은 '양의 탈을 쓴 늑대|가짜 Chrome 확장 프로그램 도난 분석'이라는 제목의 글을 발표하며 악성 Aggr 확장 프로그램의 공격 방식에 대해 상세히 분석했다. 많은 사용자들이 브라우저 확장 프로그램에 대한 기초 지식이 부족하다는 점을 감안해, 슬로우미스트의 최고 정보보안 책임자(Chief Information Security Officer)인 23pds가 본문에서 여섯 가지 질문과 답변을 통해 확장 프로그램의 기본 개념과 잠재적 위험성을 설명하고, 확장 프로그램 관련 리스크 대응 전략을 제시한다. 이를 통해 개인 사용자와 거래 플랫폼이 계정 및 자산 보안을 강화하는 데 도움이 되기를 바란다.
https://x.com/im23pds/status/1797528115897626708
질의 응답
1. Chrome 확장 프로그램이란 무엇인가?
Chrome 확장 프로그램(Chrome Extension)은 구글 크롬 브라우저(Google Chrome)용으로 설계된 플러그인으로, 브라우저의 기능과 동작을 확장할 수 있다. 사용자의 웹 서핑 경험을 맞춤화하거나 새로운 기능이나 콘텐츠를 추가하거나 웹사이트와 상호작용할 수 있도록 한다. 일반적으로 HTML, CSS, JavaScript 등 웹 기술로 구성된다.
Chrome 확장 프로그램의 구조는 일반적으로 다음과 같은 구성 요소들로 이루어진다:
-
manifest.json: 확장 프로그램의 설정 파일로, 이름, 버전, 권한 등의 기본 정보를 정의한다.
-
백그라운드 스크립트(Background Scripts): 브라우저 백그라운드에서 실행되며 이벤트 처리 및 장기 작업 수행.
-
콘텐츠 스크립트(Content Scripts): 웹페이지 컨텍스트 내에서 실행되어 웹페이지와 직접 상호작용 가능.
-
사용자 인터페이스(UI): 브라우저 도구 모음 버튼, 팝업 창, 옵션 페이지 등.
2. Chrome 확장 프로그램은 어떤 역할을 하나요?
-
광고 차단: 웹페이지의 광고를 차단하여 페이지 로딩 속도 향상과 사용자 경험 개선. 예: AdBlock, uBlock Origin.
-
개인정보 및 보안: 추적 방지, 통신 암호화, 비밀번호 관리 등을 통해 사용자 개인정보 보호 및 보안 강화. 예: Privacy Badger, LastPass.
-
생산성 도구: 업무 관리, 노트 작성, 시간 추적 등으로 사용자의 생산성 향상. 예: Todoist, Evernote Web Clipper.
-
개발자 도구: 웹 개발자를 위한 디버깅 및 개발 도구 제공. 예: 웹 구조 확인, 코드 디버깅, 네트워크 요청 분석. 예: React Developer Tools, Postman.
-
소셜 미디어 및 커뮤니케이션: 소셜 미디어 및 메신저 도구 통합으로 웹 서핑 중 알림 및 메시지 처리 편의 제공. 예: Grammarly, Facebook Messenger.
-
웹페이지 맞춤화: 테마 변경, 페이지 요소 재배치, 추가 기능 삽입 등으로 웹페이지 외형 및 동작 사용자 정의. 예: Stylish, Tampermonkey.
-
자동화 작업: 반복적인 작업 자동화 (예: 폼 자동 입력, 일괄 파일 다운로드). 예: iMacros, DownThemAll.
-
언어 번역: 웹페이지 내용 실시간 번역으로 다양한 언어의 웹사이트 이해 지원. 예: Google 번역.
-
암호화폐 보조 도구: 암호화폐 거래 시 편의 제공. 예: MetaMask.
Chrome 확장 프로그램의 유연성과 다양성 덕분에 거의 모든 웹서핑 상황에 적용 가능하며, 사용자가 다양한 작업을 더 효율적으로 수행하도록 돕는다.
3. Chrome 확장 프로그램 설치 후 어떤 권한을 갖게 되나요?
Chrome 확장 프로그램은 특정 기능 수행을 위해 여러 권한을 요청할 수 있으며, 이러한 권한들은 확장 프로그램의 manifest.json 파일에 명시되고 설치 시 사용자에게 허용 여부를 묻는다. 주요 권한은 다음과 같다:
-
<all_urls>: 모든 웹사이트의 콘텐츠에 접근 가능. 매우 광범위한 권한으로, 모든 사이트의 데이터를 읽고 수정할 수 있음.
-
tabs: 브라우저 탭 정보 접근 가능. 현재 열린 탭 확인, 탭 생성 및 종료 등 가능.
-
activeTab: 현재 활성화된 탭에 일시적으로 접근 가능. 확장 프로그램 버튼 클릭 시 특정 작업 수행 용도로 주로 사용됨.
-
storage: Chrome 저장소 API를 사용해 데이터 저장 및 검색 가능. 확장 프로그램 설정, 사용자 데이터 저장 등에 활용.
-
cookies: 브라우저의 쿠키에 접근하고 수정 가능.
-
webRequest 및 webRequestBlocking: 네트워크 요청을 가로채고 수정 가능. 주로 광고 차단 및 개인정보 보호 확장 프로그램에서 사용.
-
bookmarks: 브라우저 북마크 접근 및 수정 가능.
-
history: 브라우저 기록 접근 및 수정 가능.
-
notifications: 데스크톱 알림 표시 가능.
-
contextMenus: 브라우저의 컨텍스트 메뉴(우클릭 메뉴)에 사용자 정의 항목 추가 가능.
-
geolocation: 사용자의 위치 정보 접근 가능.
-
clipboardRead 및 clipboardWrite: 클립보드 내용 읽기 및 쓰기 가능.
-
downloads: 다운로드 관리 가능. 다운로드 시작, 일시중지, 취소 등 가능.
-
management: 브라우저 내 다른 확장 프로그램 및 애플리케이션 관리 가능.
-
background: 백그라운드에서 장기간 작업 수행 가능.
-
notifications: 시스템 알림 표시 가능.
-
webNavigation: 브라우저 내 탐색 동작을 모니터링하고 수정 가능.
이러한 권한들은 Chrome 확장 프로그램이 강력하고 다양한 기능을 수행할 수 있게 하지만, 동시에 사용자의 민감한 데이터(쿠키, 인증 정보 등)에 접근할 가능성도 의미한다.
4. 악성 Chrome 확장 프로그램이 어떻게 사용자 권한을 탈취할 수 있나요?
악성 Chrome 확장 프로그램은 요청한 권한을 이용해 사용자의 권한과 인증 정보를 탈취할 수 있는데, 이는 확장 프로그램이 사용자의 브라우저 환경 및 데이터에 직접 접근하고 조작할 수 있기 때문이다. 구체적인 이유와 방법은 다음과 같다:
-
광범위한 권한 접근: 악성 확장 프로그램은 일반적으로 <all_urls>, tabs, storage 등과 같이 많은 권한을 요청한다. 이를 통해 사용자의 웹 서핑 활동과 데이터에 광범위하게 접근할 수 있다.
-
네트워크 요청 조작: webRequest 및 webRequestBlocking 권한을 사용해 네트워크 요청을 가로채고 수정함으로써 사용자의 인증 정보 및 민감한 데이터를 탈취할 수 있다. 예를 들어, 사용자가 로그인할 때 폼 데이터를 가로채 아이디와 비밀번호를 획득할 수 있다.
-
페이지 콘텐츠 읽기 및 수정: content scripts를 통해 악성 코드를 웹페이지에 삽입하여 페이지 콘텐츠를 읽고 수정할 수 있다. 즉, 사용자가 입력한 폼 정보, 검색어 등 모든 데이터를 탈취할 수 있다.
-
브라우저 저장소 접근: storage 권한을 사용해 사용자의 로컬 데이터(LocalStorage, IndexedDB 등)에 접근하고 저장할 수 있으므로 민감 정보 포함 가능.
-
클립보드 조작: clipboardRead 및 clipboardWrite 권한을 통해 클립보드 내용을 읽고 쓸 수 있어, 복사-붙여넣기 정보를 탈취하거나 변조할 수 있다.
-
정품 웹사이트 위장: 브라우저 콘텐츠를 수정하거나 사용자의 접속 페이지를 리디렉션하여 합법적인 웹사이트처럼 위장, 사용자가 민감 정보를 입력하도록 유도.
-
장기 백그라운드 실행: background 권한을 가진 악성 확장 프로그램은 사용자가 확장 프로그램을 사용하지 않아도 백그라운드에서 지속 실행될 수 있어, 장기간 사용자 활동을 모니터링하고 데이터 수집 가능.
-
다운로드 조작: downloads 권한을 사용해 악성 파일을 다운로드하고 실행하여 사용자 시스템 보안을 추가로 위협.
5. 이번 악성 확장 프로그램 피해자들이 왜 권한과 자금을 도난당했나요?
이번 악성 Aggr 확장 프로그램은 앞서 설명한 권한들을 모두 획득했기 때문이다. 다음은 해당 악성 플러그인의 manifest.json 파일 내 permissions 항목 일부이다:
-
cookies
-
tabs
-
<all_urls>
-
storage

6. 악성 Chrome 확장 프로그램이 사용자의 쿠키를 탈취한 후 어떤 조작을 할 수 있나요?
-
계정 접근: 탈취한 쿠키를 사용해 사용자 로그인 세션을 모방, 암호화폐 거래소 계정에 접근하여 잔액, 거래 내역 등 정보 열람 가능.
-
거래 수행: 탈취한 쿠키로 사용자 동의 없이 암호화폐 매수/매도 또는 자산 이체 등 거래 수행 가능.
-
자금 인출: 쿠키에 세션 정보 및 인증 토큰이 포함된 경우, 2차 인증(2FA)을 우회해 직접 자금 인출을 실행하고 암호화폐를 공격자 지갑으로 이체 가능.
-
민감 정보 접근: 거래소 계정 내 신원 인증 문서, 주소 등 민감 정보 접근 및 수집 가능. 이후 신원 도용 또는 사기 범죄에 악용 가능.
-
계정 설정 변경: 연결된 이메일 주소, 전화번호 등 계정 설정 변경 가능, 계정 장악 및 추가 정보 탈취 용이.
-
사용자 위장 사회공학 공격: 사용자 계정을 이용해 연락처에 사기 메시지를 발송, 불안전한 작업 수행 유도 또는 추가 민감 정보 제공 유도 가능.
대응 방안
여기까지 읽은 많은 사용자들이 "그럼 어쩌라는 거야? 그냥 인터넷 끊고 안 쓰면 되냐?", "전용 컴퓨터만 써야 하나?", "웹사이트 로그인 금지?" 등의 생각을 하겠지만, 사실 우리는 이러한 리스크를 합리적으로 방어하는 법을 배울 수 있다:
개인 사용자 대응 방안:
-
개인 보안 의식 강화: 첫 번째 방어책은 항상 경계심을 갖고 스스로에게 "이게 정말 안전한가?"라고 물어보는 것이다.
-
신뢰할 수 있는 출처의 확장 프로그램만 설치: Chrome 웹스토어 또는 기타 신뢰할 수 있는 출처에서 확장 프로그램 설치. 사용자 평가 및 권한 요청을 꼼꼼히 확인하고, 불필요한 접근 권한은 부여하지 않는다.
-
안전한 브라우저 환경 사용: 출처 불명의 확장 프로그램 설치를 피하고, 필요 없는 확장 프로그램은 정기적으로 삭제. 별도의 브라우저를 사용해 플러그인 전용과 자금 거래 전용을 분리.
-
정기적으로 계정 활동 확인: 로그인 기록 및 거래 내역을 주기적으로 확인하고, 이상 징후 발견 시 즉시 조치.
-
로그아웃 습관: 웹사이트 이용 후 반드시 로그아웃. 많은 사용자들이 편의상 로그아웃하지 않고 그대로 두는데, 이는 큰 보안 위험을 초래한다.
-
하드웨어 지갑 사용: 고액 자산은 하드웨어 지갑에 보관하여 보안성 강화.
-
브라우저 설정 및 보안 도구 활용: 광고 차단기, 개인정보 보호 도구 등 보안 확장 프로그램 사용으로 악성 확장 프로그램 위험 감소.
-
보안 소프트웨어 사용: 악성 확장 프로그램 및 기타 악성 소프트웨어로부터 보호하기 위해 보안 소프트웨어 설치 및 사용.
마지막으로 거래 플랫폼을 위한 리스크 관리 제안. 이러한 조치를 통해 거래 플랫폼은 악성 Chrome 확장 프로그램으로부터 사용자에게 발생할 수 있는 보안 위험을 줄일 수 있다:
2차 인증(2FA) 강제 사용:
-
전체 사용자 2FA 의무화: 로그인 및 중요 작업(거래, 주문, 자금 인출) 시 반드시 2차 인증을 요구하여, 쿠키가 탈취되더라도 공격자가 계정에 쉽게 접근하지 못하도록 함.
-
다양한 인증 방식 지원: SMS, 이메일, Google Authenticator, 하드웨어 토큰 등 다양한 2차 인증 방식 제공.
세션 관리 및 보안:
-
기기 관리: 사용자가 로그인된 기기를 확인하고 관리할 수 있도록 하며, 의심스러운 기기의 세션은 언제든지 로그아웃 가능.
-
세션 만료: 장시간 비활동 시 자동 로그아웃하는 세션 타임아웃 정책을 시행하여 세션 도용 위험 감소.
-
IP 주소 및 위치 모니터링: 비정상 IP 주소나 지역에서의 로그인 시도를 감지하고 사용자에게 알림. 필요 시 해당 로그인 차단.
계정 보안 설정 강화:
-
보안 알림: 로그인, 비밀번호 변경, 자금 인출 등 중요한 계정 활동 시 즉시 사용자에게 이메일 또는 문자로 알림을 보내 이상 활동 감지.
-
계정 잠금 기능: 긴급 상황에서 사용자가 계정을 신속히 잠글 수 있는 옵션 제공, 피해 범위 통제.
모니터링 및 리스크 관리 시스템 강화:
-
이상 행동 탐지: 머신러닝 및 빅데이터 분석을 활용해 사용자 행동 모니터링, 이상 거래 패턴 및 계정 활동 식별 후 즉각 리스크 관리 개입.
-
리스크 경고: 계정 정보 자주 변경, 로그인 실패 반복 등 의심 행위에 대해 경고 및 제한 조치.
사용자 보안 교육 및 도구 제공:
-
보안 교육: 공식 SNS, 이메일, 플랫폼 내 알림 등을 통해 사용자에게 보안 지식을 보급하고, 브라우저 확장 프로그램의 위험성 및 계정 보호 방법 안내.
-
보안 도구 제공: 공식 브라우저 플러그인 또는 확장 프로그램을 제공하여 사용자 계정 보안 강화 및 잠재적 보안 위협 감지 및 알림.
맺음말
솔직히 말하면, 기술적으로 위에서 언급한 모든 리스크 관리 조치를 취한다고 해도 이것이 항상 최선의 방법은 아니다. 보안과 비즈니스 간 균형이 필요하다. 보안을 너무 강조하면 사용자 경험(UX)이 나빠질 수 있다. 예를 들어 거래 주문 시마다 2차 인증을 요구하면, 많은 사용자들이 빠른 주문을 위해 아예 2FA를 끈다. 결과적으로 자신도 편하지만 해커도 편해지는 상황이 된다. 쿠키가 탈취된 상태에서 자금 인출이 막혀도, 해커는 '대敲(대칭 거래)'를 통해 사용자 자산에 피해를 입힐 수 있기 때문이다. 따라서 각 플랫폼과 사용자 유형에 따라 적절한 리스크 관리 전략이 달라져야 한다. 보안과 비즈니스의 균형점이 어디인지에 대해서는 각 플랫폼이 자체적으로 판단해야 하며, 사용자 경험을 고려하면서도 사용자 계정과 자산 보안을 충분히 보호해주기를 바란다.
길은 많지만, 안전이 최우선이다. 슬로우미스트 보안 팀은广大 사용자들에게 소프트웨어 설치, 신규 토큰 투자(흙개), 플러그인 설치 전에 3초만 멈추고 "이게 과연 올바르고 안전한가?"를 스스로에게 질문한 후 행동하길 권장한다. 사고가 되기 전에 예방하라. 더 많은 보안 지식은 슬로우미스트에서 발간한 『블록체인 다크 포레스트 자구 수칙』을 참고하기 바란다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News












