Kaspersky, 시드 구문 탈취용 악성코드 발견
2026년 7월, Kaspersky 글로벌 연구·분석팀이 OkoBot라는 악성코드 프레임워크 분석 결과를 공개했어요. 이 프레임워크는 1년 넘게 활동 중이며, Kaspersky가 보고서를 발표할 당시에도 여전히 활성화되어 있었어요. OkoBot은 20개 이상의 페이로드로 구성된 툴킷으로, Windows PC를 감염시킨 뒤 숨겨진 원격 채널을 열고, 특정 작업을 위한 특화된 플러그인을 배포해요.
Kaspersky는 이 악성코드의 주요 진입 경로 두 가지를 문서화했어요. 하나는 "ClickFix"라는 사회공학적 공격이고, 다른 하나는 GitHub에서 다운로드한 소프트웨어에 숨겨진 악성코드예요. 예를 들어, 실제 Audacity 오디오 편집기에 악성 라이브러리를 추가한 가짜 SQL Server Management Studio 패키지가 검색 결과 상위에 노출되어 신뢰를 얻었어요.
피해자가 미끼 프로그램을 실행하면 TookPS라는 PowerShell 스크립트가 공격자에게 SSH 터널을 설치해요. 이후 자동화된 봇이 지갑 파일, 브라우저 쿠키, 자격 증명을 수집하고, 더 강력한 페이로드가 실행될 수 있도록 조용히 문을 열어둡니다.
이 페이로드 중 하나가 특히 주목을 받았어요. Kaspersky가 SeedHunter라고 부르는 이 악성코드는 하드웨어 지갑 사용자의 복구 구문(시드 구문) 탈취만을 목적으로 만들어졌어요. 저희는 이 보고서를 꼼꼼히 읽고, Tangem 보안 담당자 두 분과 직접 만나 SeedHunter가 Tangem에도 통할 수 있는지 물어봤어요.
SeedHunter의 실제 동작 방식
SeedHunter는 감염된 Windows PC에서 실행 중인 프로세스 목록을 계속 감시해요. 세 가지 특정 애플리케이션(Trezor Suite, Ledger Live, Ledger Wallet)을 찾으면 해당 프로세스에 자체 코드를 삽입해요.
이 데스크톱 지갑 앱들은 Electron 프레임워크로 만들어졌어요. 이 프레임워크는 웹페이지를 데스크톱 애플리케이션 안에 감싸는 역할을 해요. SeedHunter는 Electron의 내부 기능을 후킹해 사용자가 모르게 앱 화면을 조작할 수 있어요. 지갑의 창이 곧 공격자의 캔버스가 되는 거죠.
이 악성코드는 주기적으로 USB 스캔을 수행해, Trezor 또는 Ledger의 Vendor ID와 Product ID를 가진 진짜 장치가 연결되는지 기다려요. Kaspersky에 따르면, 명령 서버에서 신호를 받으면 바로 실행하거나, 플래그에 따라 대기할 수도 있어요.
장치가 연결되면, 신뢰받는 앱 내부에 하드코딩된 피싱 페이지를 띄워 각 지갑 브랜드에 맞는 레이아웃으로 보여줘요. 이 페이지는 사용자가 지갑을 "복구"하거나 "확인"한다는 명목으로 시드 구문 입력을 요구해요.
사용자는 자신의 진짜 지갑 소프트웨어에 입력한다고 믿지만, 실제로는 악성코드가 입력값을 가로채요. 입력된 구문은 명령 서버로 전송되고, 암호화된 로컬 복사본도 저장돼요. 이후 자금은 공격자가 원할 때 탈취됩니다.
OkoBot의 다른 플러그인들은 공격 범위를 더욱 확장해요. OkoSpyware는 Exodus 같은 지갑, 1Password·KeePassXC 같은 비밀번호 관리자 등 100개 이상의 타깃 앱 목록을 컴파일하고, FFmpeg로 창 화면을 녹화하며 모든 키 입력을 기록해요.
브라우저 확장형 지갑도 마찬가지로 포착돼요. Kaspersky의 텔레메트리에 따르면 MetaMask와 Tonkeeper 탭도 동일하게 감지·녹화된다고 해요. 별도의 MC Keylogger 모듈은 키 입력, 클립보드(복사한 이미지 포함), 연결된 USB 장치 정보, 5분마다 스크린샷까지 모두 수집합니다.
Kaspersky가 그린 그림은 감염된 PC 전체가 감시당하고, 중앙에는 시드 구문 탈취용 함정이 놓인 모습이에요.
공격자가 탈취할 것이 없을 때
SeedHunter가 성공하려면 네 가지 조건이 모두 충족돼야 해요. Tangem의 기본 설정에서는 이 네 가지가 모두 해당되지 않아요.
- 시드 구문이 있어야 피싱이 가능해요. 이게 공격의 핵심이에요. Tangem 표준 모델에서는 개인 키가 카드 내 인증된 보안 칩에서 생성되고 절대 외부로 나오지 않아요. 사용자가 시드 구문을 가지고 있지 않다면, 피싱 페이지가 물어볼 것이 없어요.
- 두 번째, 데스크톱 앱이 필요해요. SeedHunter는 세 가지 특정 Windows 프로세스(모두 Electron 데스크톱 앱)를 타깃으로 해요. Tangem은 데스크톱 애플리케이션이 없어요.
세 번째, USB 장치 감지가 필요해요. 이 악성코드는 알려진 지갑 하드웨어의 Vendor/Product ID를 USB로 스캔해 트리거돼요. Tangem 카드는 NFC로 스마트폰과 통신해요.
네 번째, 그럴듯한 명분이 필요해요. Ledger와 Trezor 사용자는 복구·확인 과정이 앱에 내장된 걸 알고 있어서, 구문 입력 요청이 자연스럽게 느껴져요. Tangem 표준 플로우는 복구 구문 입력을 요구하지 않아요. 카드를 스캔하고 생체 인증이나 액세스 코드를 입력하면 돼요. 시드 구문을 요구하는 프롬프트가 뜬다면 Tangem 사용자는 즉시 의심할 거예요.
Andrey Lazutkin(Tangem CTO)은 시드 구문 자체가 이런 공격의 구조적 약점이라고 봐요.
"많은 사람들이 하드웨어 지갑을 구매할 때, 기기가 개인 키를 보호해줄 거라 기대해요. 하지만 기존 지갑 중 상당수는 먼저 시드 구문을 사용자에게 보여주고, 그 책임을 사용자에게 넘겨요."
"그 순간부터 가장 약한 고리는 더 이상 하드웨어 지갑이 아니에요. 바로 시드 구문이에요. 종이, 금속 플레이트, 서랍, 금고, 절대 찍으면 안 되는 사진, 언제든 잃어버리거나, 훼손되거나, 복사·노출·도난당할 수 있는 구문이죠."
피싱 공격자들은 시드 구문만 노려요. 시드 구문이 노출되는 순간, 하드웨어 지갑의 가격이나 보안 수준은 더 이상 의미가 없어요.
스마트폰은 어떻게 방어할까?
Tangem의 모바일 중심, 하드웨어 기반 모델은 구조적으로 OkoBot의 공격을 비껴가요. 하지만 모바일 악성코드도 실제로 존재하죠. 그래서 Tangem 앱이 OkoBot이 의존하는 세 가지 핵심 기법(가짜 오버레이, 키로깅, 화면 캡처)에 어떻게 대응하는지 물어봤어요.
Lazutkin에 따르면, Tangem 앱은 런타임 보호를 위한 다양한 방어 체계를 갖추고 있어요.
- 런타임 무결성 검사,
- 디버깅 방지,
- 에뮬레이션 방지,
- 루팅 및 탈옥 감지,
- 암호화 저장소,
- 보안 통신,
- 인증서 검증,
- WebView 보호,
- 탭재킹 보호,
- 보안 입력 처리.
여기에 권한 최소화, 코드 리뷰, 보안 감사, 자동화된 보안 점검까지 더해진다고 해요. 이 중 세 가지는 OkoBot의 공격 방식(탭재킹, 키로깅, 영상 캡처)과 직접적으로 맞닿아 있어요.
탭재킹 보호는 SeedHunter의 가짜 화면 공격에 대한 모바일 대응책이에요. 모바일에서는 앱 창을 덮는 보이지 않는 오버레이를 띄워 사용자가 실제로는 다른 버튼을 누르게 만드는 공격이 가능해요. Tangem 앱은 민감한 영역에서 사용자의 터치가 오버레이에 의해 가려지는지 실시간으로 감지하고, 이런 시도가 있으면 즉시 차단해요.
보안 입력 처리는 키로거에 대한 대응이에요. 커스텀 키보드는 사용자가 입력하는 내용을 탈취하는 흔한 경로예요. Tangem 앱은 민감한 데이터 입력 시 커스텀 키보드 사용을 감지하고, 자동 완성·맞춤법 검사·비밀번호 저장·예측 입력 등도 비활성화해 민감한 정보가 캐시되거나 노출되는 걸 막아요.
스크린샷 및 화면 녹화 차단은 OkoSpyware의 영상 캡처 공격에 대응해요. 민감한 데이터가 노출되는 모든 앱 화면에서는 스크린샷과 화면 녹화가 아예 금지돼요. PC에서 지갑 창을 촬영하는 OkoSpyware의 방식은 모바일 운영체제 차원에서 차단됩니다.
이 모든 것의 기반에는 무결성 검사가 있어요. 앱은 실행 중에도 자체 코드를 검증해 변조 여부를 감지하고, 허가되지 않은 버전 실행을 막아요. 이건 런타임 애플리케이션 자체 보호(RASP)라는 보안 분야의 일부예요. Tangem은 Licel의 DexProtector를 사용해요. 이건 주요 은행·결제 앱에서 쓰이는 보호 기술로, EMVCo가 Android와 iOS 모두에서 평가·승인한 최초의 소프트웨어 보호 도구예요.
공급망 리스크
OkoBot은 검색 엔진에 노출된 가짜 GitHub 저장소를 통해 퍼졌고, 사용자는 정상 프로그램을 찾다가 악성 파일을 먼저 다운로드했어요.
또한 트로이 목마화된 의존성도 사용했어요. Kaspersky는 최종 페이로드가 오픈소스 유틸리티에 번들된 악성 protobuf.dll임을 추적했어요. 겉보기엔 정상 라이브러리와 동일하지만, 복호화 후 실제 플러그인 디스패처를 실행해요.
정상 프로그램이 이 라이브러리를 로드하면, 악성코드도 함께 실행돼요. 신뢰받는 의존성을 중독시키면, 그 이후 모든 하위 프로젝트가 영향을 받는 대표적인 공격 방식이에요.
Tangem의 빌드 파이프라인은 이런 공격을 어떻게 방지하는지 Anton Afanasyev(CISO)에게 물어봤어요.
"저희는 여러 가지 대책을 병행하고 있어요." 첫 번째는 중요한 부분에 외부 코드를 최대한 의존하지 않는 거예요. "필수 외부 라이브러리 중 가장 중요한 것들은 직접 포크하거나 새로 작성해 내부적으로 관리해요." 이렇게 하면 외부 저장소에서 악성 버전이 무심코 교체되는 걸 막을 수 있어요.
두 번째는 프로세스 관리예요. "저희는 모든 의존성에 취약점 검사를 포함한 보안 개발 프로세스를 운영하고, 업데이트도 통제된 기간에만 적용해요. 코드 리뷰 등도 필수입니다." 업데이트가 자동으로 반영되지 않기 때문에, 악성 패키지가 공개 즉시 반영되는 일이 없어요. 모든 업데이트는 검토 후 신중하게 적용돼요.
또한, 의존성이 아닌 공식 앱스토어를 통한 악성 업데이트(개발자 인증 정보 탈취 등) 가능성도 Lazutkin에게 물어봤어요.
이 공격이 성공하려면 "공격자가 저희 개발자 인증 정보를 탈취하고, MFA와 내부 접근 제어를 우회하고, 릴리스 승인 절차를 통과해, 공식 빌드에 악성코드를 삽입하고, Apple이나 Google의 심사까지 통과해야 하며, 공식 앱 아이덴티티를 유지하면서 플랫폼의 악성코드 탐지와 저희 팀·모니터링 시스템·오픈소스 커뮤니티의 감시까지 모두 피해야 해요."
위협 모니터링 캠페인
OkoBot은 검색 결과 상위에 가짜 저장소를 노출시키고, 신뢰받는 브랜드를 모방해 사용자 신뢰를 얻었어요. 이런 유포 전략에 대응하려면 지속적인 모니터링이 필요해요. Tangem이 어떻게 가짜 앱, 저장소, 피싱 페이지를 감지하는지 Afanasyev에게 물어봤어요.
"Tangem은 보안 위협 인텔리전스와 뉴스 채널을 모니터링해 악성코드 캠페인을 직접 감시하고 있어요. 이 역할은 제가 직접 맡고 있습니다." 위조·사칭 측면에서는 "GitHub 등 다양한 리소스와 비공식 안드로이드 앱스토어를 모니터링해 추적하고 있어요."
피싱 사이트 차단은 두 가지 입력이 함께 작동해요. "사용자들이 피싱 사이트, 가짜 SNS·메신저 계정을 저희에게 제보하면, 두 번째 입력(비공개)과 조합해 대응합니다." 피싱 리소스가 확인되면, Tangem은 관련 기관과 협력해 신속히 차단 조치를 취해요.
마지막으로 가장 날카로운 질문을 던졌어요. OkoSpyware가 MetaMask, Tonkeeper처럼 Tangem 앱을 워치리스트에 올린 사례가 있는지 물어봤어요.
"현재까지 Tangem 앱을 겨냥한 모바일 악성코드는 확인된 바 없어요." Afanasyev의 답변이에요. 단, 한 가지 예외가 있다고 덧붙였어요. 데스크톱에서는 공격자들이 사용자를 속여 가짜 "Tangem Desktop" 앱을 다운로드하도록 유도한 적이 있어요. "이건 단순한 원격제어 바이러스로, SeedHunter처럼 시드 구문만 노리는 특화형 악성코드는 아니에요." 공격자들은 특화 공격이 통하지 않으니 결국 일반적인 원격제어 악성코드로 돌아간 셈이에요.
핵심 요약
SeedHunter는 특정 설계(데스크톱 지갑 앱+USB 연결 장치+시드 구문 표시)를 겨냥한 정교한 공격이에요.
Tangem은 이 세 가지 조건을 모두 갖추지 않았어요. 그래서 이 프레임워크의 정교한 플러그인도 Tangem 사용자에게는 아무런 효과가 없어요. 존재하지 않는 USB 지갑을 찾고, 없는 데스크톱 프로세스에 주입하려 기다리고, 적혀 있지 않은 구문을 피싱하려 시도하지만 모두 무용지물이에요.
이 결과는 불필요한 요소를 제거하고, 가장 중요한 개인 키를 칩 내부에 안전하게 봉인하는 Tangem의 보안 철학에서 비롯된 당연한 결론이에요.
물론 사용자 책임도 남아 있어요. 외부 시드 구문을 Tangem에 가져와 종이로 보관한다면, SeedHunter가 노리는 약점을 스스로 다시 만든 셈이니, 다른 경로로 피싱 피해를 볼 수 있어요.
참고 자료
- OkoBot: 신종 정교한 악성코드 프레임워크, 암호화폐 사용자 타깃 – Kaspersky Securelist, 2026년 7월
- TookPS: 새로운 공격 물결 – Kaspersky Securelist, 2025년 4월
- OkoBot 악성코드, Ledger·Trezor 앱에 시드 구문 피싱 삽입 – The Hacker News, 2026년 7월
- OkoBot 악성코드, 소프트웨어·하드웨어 암호화폐 지갑 사용자 노려 – HackMag
- Tangem Wallet이 별도의 화면이 필요 없는 이유 – Tangem 블로그
- Tangem의 Andrey Lazutkin, 더 단순한 하드웨어 지갑의 필요성 제시 – Tangem 블로그
- Tangem Wallet의 개인 키 백업 방식 – Tangem 블로그
- OWASP 모바일 애플리케이션 보안 테스트 가이드(MASTG)
- 런타임 애플리케이션 자체 보호(RASP) – 위키피디아
- Licel의 DexProtector – EMVCo 평가 소프트웨어 보호
- DexProtector EMVCo 평가·승인 솔루션 – Licel
- Electron 프레임워크 – 공식 문서
Andrey Lazutkin은 Tangem 최고기술책임자(CTO)입니다. Anton Afanasyev는 Tangem 최고정보보안책임자(CISO)입니다.