파이어폭스 확장 77개로 가상자산 지갑 탈취망 구성…40개는 니모닉·개인키 직접 훔쳐

작성일

파이어폭스 확장 77개 중 40개, 가상자산 지갑 복구문구까지 훔쳐
래비월렛·OKX 사칭에 스포츠앱 위장까지, 3월부터 활동한 대규모 탈취망

파이어폭스 확장 77개로 가상자산 지갑 탈취망 구성…40개는 니모닉·개인키 직접 훔쳐 / AI 생성 일러스트(삽화)
파이어폭스 확장 77개로 가상자산 지갑 탈취망 구성…40개는 니모닉·개인키 직접 훔쳐 / AI 생성 일러스트(삽화)

보안업체 소켓(Socket)이 파이어폭스(Firefox) 확장 프로그램 77개로 구성된 대규모 가상자산 지갑 탈취 네트워크를 적발했다. 이 가운데 40개는 복구 문구(니모닉)와 개인키를 직접 훔치는 악성 확장으로 확인됐고, 나머지 37개는 스포츠 점수 앱으로 위장해 같은 생태계에 섞여 있었다. 활동 시기는 최소 3월부터 8월까지(현지시각)로 파악됐다. 소켓은 이 캠페인에 “오프사이드 월렛 테프트 팩토리(Offside Wallet Theft Factory)”라는 임시 명칭을 붙였다. 다만 아직 알려진 특정 해킹 조직이나 그룹에 귀속되지는 않았다.

40개 악성 확장, 4가지 경로로 지갑 정보 탈취

소켓 위협 리서치팀에 따르면 40개 악성 확장은 크게 네 그룹으로 나뉜다. 우선 7개는 공격자가 관리하는 서버형 데이터베이스 서비스 수파베이스(Supabase)를 원격 스위치로 활용했다. 평소엔 메모장처럼 보이다가 공격자가 서버 값을 바꾸면 팝업에 가짜 지갑 페이지를 띄우는 식이다. 대표 사례가 “0KX WEB3”다. 실제 거래소 OKX의 알파벳 O를 숫자 0으로 바꿔 흉내 낸 이름으로, 복구 문구나 개인키를 입력하라는 가짜 창을 열었다.

두 번째로 15개 확장은 지갑 생성이나 가져오기 과정에서 12개 또는 24개 단어로 된 복구 문구를 직접 가로챈 뒤, 공격자가 통제하는 클라우드플레어 워커스(Cloudflare Workers)로 전송했다. 일부는 실제 지갑 서비스 래비 월렛(Rabby Wallet)의 코드를 변형해 이 기능을 심었다.

세 번째 그룹인 13개 확장은 더 은밀했다. 래비 월렛 코드 중 지갑 정보를 암호화해 저장하기 직전 단계인 persistAllKeyrings() 함수를 조작했다. 암호화 전 지갑 키링 정보를 “ping”이라는 JSON 필드에 담아 gemachriverdale.org, e-wl.com 등과 연결된 서버로 먼저 빼낸 뒤에야 정상적인 로컬 암호화 절차가 이어지도록 만든 것이다. 전송은 암호화되지 않은 HTTP, 포트 9000, “/hook/” 경로를 통해 이뤄졌다. 나머지 5개는 자격증명과 클립보드 내용을 노렸다. 하드코딩된 명령제어(C2) 서버로 비밀번호 등 자격증명은 app.php를 통해, 클립보드에 복사된 내용은 여러 조각으로 나눠 continue.php를 통해 전송했다.

스포츠 점수앱으로 위장, 37개까지 세력 확장 / AI 생성 이미지
스포츠 점수앱으로 위장, 37개까지 세력 확장 / AI 생성 이미지

스포츠 점수앱으로 위장, 37개까지 세력 확장

나머지 37개 확장은 분석된 버전에서 확인된 지갑 탈취 코드는 없었다. 그러나 VPN 접속, 다크모드, 비밀번호 생성기, 환율 변환, 스크린샷, 메모 기능을 표방하면서 실제로는 실시간 스포츠 데이터 서비스 API-Sports의 하드코딩된 자격증명을 이용해 축구·농구·NBA·아이스하키 점수를 보여주는 방식으로 동작했다.

소켓 연구원 키릴 보이첸코(Kirill Boychenko)는 “확장 단위 분석 결과 40개는 악성으로 확인됐고, 나머지 37개는 조율된 다중 스포츠 점수 셸 운영으로 나타났다”고 말했다. 그는 “이들 확장에서 확인된 빌드에는 자격증명이나 지갑 탈취 코드가 없었지만, 기만적 기능과 공유된 배포 흔적, 버전 이력은 악의적 의도를 보여준다”고 설명했다.

실제로 40개 악성 확장 중 9개는 과거 축구·농구·NBA·미식축구 점수 앱으로 활동하다가 동일한 파이어폭스 ID를 유지한 채 지갑 탈취용 확장으로 전환된 것으로 드러났다. 래비 월렛을 사칭한 13개 확장 가운데서도 7개는 스포츠 점수 앱에서, 1개는 일반 유틸리티 앱에서 출발해 지갑 탈취 코드로 바뀐 사례로 파악됐다.

모질라(Mozilla)의 서명 기록을 보면 처음 분석된 59개 버전은 3월 9일부터 8월 3일까지(현지시각) 서명이 이뤄졌고, 4월과 7월 말에 활동이 몰려 있었다. 이후 추가 조사를 거쳐 연관된 확장 식별자는 총 77개로 늘었다.

모질라 대응과 이용자 권고

소켓은 조사 당시에도 계속 게시돼 있던 확장들을 모질라 보안팀에 신고했다. 모질라는 소켓이 조사 결과를 공개하기 전 일부 확장을 이미 삭제한 상태였다. 모질라 측은 자동화된 위험 탐지 지표와 사람에 의한 검토를 함께 활용해 악성 지갑 확장을 걸러낸다고 밝혔다. 다만 이용자에게는 지갑 서비스 제공사가 공식적으로 인정한 확장인지 직접 확인하라고 권고했다.

소켓은 악성 확장을 설치했던 이용자는 복구 문구나 개인키, 지갑 상태가 노출됐다고 가정해야 한다고 경고했다. 단순히 확장을 삭제하는 것만으로는 충분하지 않다는 설명이다. 새 키로 새 지갑을 만들어 자금을 옮기고, 노출됐을 가능성이 있는 비밀번호를 바꾸고, 가능하다면 활성 세션을 모두 해지한 뒤 최근 확장 프로그램 활동 내역을 점검해야 한다고 조언했다.

왜 근절되지 않나…“싸고 확장 가능한” 공격 경제학

보이첸코는 “한 번의 설치 성공만으로도 확장 프로그램을 반복 게시하는 비용보다 훨씬 큰 가치의 복구 문구나 개인키, 지갑 상태를 노출시킬 수 있다”고 말했다. 그는 “이런 경제성이 개별 확장이 금방 삭제되더라도 공격자들이 파이어폭스 애드온 생태계를 계속 노리는 이유를 설명해준다”고 덧붙였다. 이름과 ID를 계속 바꾸고, 기존 확장 계정을 재활용하고, 코드를 복제하고, 악성 기능을 확장·원격 페이지·클라우드 인프라로 나눠 숨기는 방식이 반복 게시를 저렴하고 확장 가능하게 만든다는 설명이다.

이번 캠페인은 아직 알려진 특정 해킹 조직이나 그룹에 귀속되지 않았다. 최근 하드웨어 지갑 콜드카드(Coldcard)의 펌웨어 결함으로 대규모 비트코인 도난 사고가 확인된 데 이어, 이번엔 브라우저 확장이라는 전혀 다른 경로로 지갑 탈취 시도가 드러난 셈이다. 가상자산 보안 위협이 하드웨어와 소프트웨어를 가리지 않고 다양한 형태로 나타나고 있는 만큼, 지갑 관련 프로그램은 반드시 공식 채널을 통해서만 설치해야 한다는 지적이 나온다.