Blockaid와 함께하는 WalletConnect 스캠 탐지 방식
이 문서는 다음 언어로 제공됩니다:
핵심 인사이트
WalletConnect를 악용하는 모바일 중심의 “드레이너” 스캠이 암호화폐 사용자를 위협하고 있습니다. 이들은 복제 dApp, 피싱 인프라, Drainer-as-a-Service 키트 등을 활용해 사용자가 악성 트랜잭션에 서명하도록 유도합니다. Blockaid는 오프체인·온체인 분석, 트랜잭션 시뮬레이션, 머신러닝을 결합해 서명 단계에서 의심스러운 활동을 탐지·차단합니다. Tangem 같은 지갑 앱에 이 방어 시스템을 내장해, 사용자는 위험한 행동 전에 명확한 경고와 설명을 받아 자산 탈취를 미연에 방지할 수 있어요.
지난 1년간 WalletConnect 플로우를 악용하는 모바일 중심의 “드레이너” 스캠이 암호화폐 사용자를 겨냥한 주요 위협 벡터로 떠올랐어요. 수백만 명의 암호화폐 사용자가 Connect Wallet 버튼을 누르거나 QR 코드를 스캔해 모바일 지갑을 dApp에 연결할 때, WalletConnect에 일정 부분 신뢰를 맡기게 됩니다. 이 도구는 지갑과 dApp 사이에서 승인 요청을 조용히 중계하며 복잡한 생태계를 단순화하기 위해 만들어졌지만, 최근 1년 사이 이 편리함이 공격에 악용되며, 한 번의 서명이 순식간에 자산 탈취로 이어질 수 있음이 드러났어요.
공격 표면은 피싱 이메일, 사칭 앱, 그리고 지갑을 소진시키는 악성 dApp까지 확장됐어요. WalletConnect가 사용자 대신 트랜잭션 요청을 중계하기 때문에, 스캐머가 합법적인 dApp이나 WalletConnect 클라이언트로 가장해 사용자가 자산을 넘기도록 속일 수 있습니다.
악성 dApp의 작동 방식
악성 dApp이 어떻게 만들어지고 유포되는지, WalletConnect 서명을 즉각적인 탈취로 바꾸는 기술적 트릭, 그리고 Blockaid가 중점적으로 탐지하는 신호와 방어 체크포인트를 살펴볼게요.
신뢰받는 플랫폼 복제
공격자는 dApp, 지갑, DeFi 프로토콜 전체를 복제해요. 단순히 로고나 스타일만 복사하는 게 아니라, HTML, CSS, JavaScript 파일까지 HTTrack 같은 툴이나 맞춤 스크립트로 통째로 복제한 뒤, 약간만 수정해 재호스팅합니다.
This asset hijacking also involves embedding references to brand logos, fonts, and icons that are
hotlinked directly from the original Content Delivery Network (CDN). It reduces forensic indicators, making the website appear authentic and trustworthy.
Attackers use smart contract abstraction instead of rewriting the actual protocol. They create fake proxy contracts that look like real ones, but instead send calls to addresses they control.
Fraudulent support ecosystems, including fake knowledge bases, live chat widgets, and Telegram “support admins," are created to further deceive users. These elements give the illusion of end-to-end legitimacy. As a result, cybercriminals can produce a pixel-perfect clone of legitimate sites, capable of intercepting seed phrases and private keys or misleading users into signing malicious transactions.
피싱 인프라
Attackers use domain generation algorithms to create many potential phishing domains in advance. These domains often look very similar to real sites using tricks like typosquatting, homoglyph substitutions, or Unicode confusables.
They are usually registered in large groups, so new ones are always available. To make takedowns harder, attackers use Fast Flux hosting, where the IP addresses of a domain change quickly through botnets or compromised servers. Many phishing sites also act as reverse proxy mirrors, looking legitimate on the outside but actually redirecting to attacker-controlled servers. These sites often have valid SSL certificates from services like Let’s Encrypt, making them seem real to users.
They can also register domains at the last minute, keeping them inactive until they are ready to use for phishing. This makes it hard for monitoring systems to detect them early.
The attack setup is designed to be temporary and easy to change. Even if defenders shut down one domain or server, many copies still exist, allowing the attackers to continue their campaign without much trouble. This creates a continuous game where attackers stay ahead by quickly changing their infrastructure faster than defenders can keep up.
Drainer-as-a-Service (DaaS)
Drainer-as-a-Service (DaaS)로 인해 암호화폐 피싱이 더 쉽고 조직적으로 변했어요. 기술적 지식 없이도 범죄자들은 공격에 필요한 모든 것이 담긴 키트를 구입할 수 있습니다. 여기에는 인기 지갑용 피싱 템플릿, 토큰 탈취용 악성 스마트 컨트랙트, 캠페인 관리 시스템 등이 포함돼요.
일부 키트는 사용 중인 지갑을 식별해 맞춤 공격을 하기도 해요. SaaS와 유사하게 운영자가 접근권을 임대하거나 탈취 자금 일부를 공유받는 구조입니다. 보안 패치와 블랙리스트를 피하기 위해 키트는 자주 업데이트돼요.
유포 채널
해커가 피싱 사이트와 드레이너를 구축하면, 이제 사람들을 클릭하게 만드는 데 집중해요. Telegram, Discord, X 등에서 신뢰받는 멤버로 가장하거나 기존 그룹을 탈취해 유포합니다. 검색 엔진을 조작해 악성 사이트가 검색 결과 상위에 노출되도록 하거나, 유료 광고로 가짜 링크를 노출하기도 해요.
웹 외에도, 공격자는 유해한 브라우저 확장 프로그램을 배포해 합법적인 dApp에 악성 스크립트를 삽입하거나, 비공식 앱스토어(때로는 공식 스토어까지)에서 가짜 모바일 앱을 유포합니다. 이런 방식으로 피해자가 평소 신뢰하는 공간에서 피싱 콘텐츠를 접하게 만들어요.
대표적 스캠 수법
악성 dApp이 Approve 또는 기타 서명을 탈취로 전환하는 대표적 온체인/오프체인 패턴은 다음과 같아요:
- Unlimited token approvals/approve(MAX_UINT). dApp이 사용자에게 무제한 토큰 승인 권한을 요청하고, 이후 공격자가 transferFrom을 호출해 토큰을 모두 빼갑니다. 가장 흔한 방식이에요.
- Permit/EIP-712 offline signatures (Permit, Seaport, Permit2): 온체인 Approve 대신, dApp이 EIP-712 구조화 메시지 서명을 요청해 토큰 사용을 승인받아요. 사용자가 내용을 파악하기 어렵고, 앱 UI 밖에서 실행되는 경우가 많아요. Blockaid는 EIP-712 서명을 이용한 탈취 사례를 문서화했습니다.
- Encoded calldata obfuscation: 트랜잭션 페이로드가 ABI 인코딩, 압축, 멀티콜 데이터 등으로 구성돼, 지갑 UI에는 “컨트랙트 호출” 등 모호한 정보만 표시되어 사용자가 내용을 파악하기 어렵게 만듭니다.
- Proxy or intermediary contracts: 드레이너가 단기 또는 프록시 컨트랙트를 활용해 승인을 받고, 곧바로 자금을 공격자 주소로 포워딩해 추적과 블랙리스트 방어를 어렵게 해요.
- Token rug or fake tokens: 토큰 추가 또는 에어드랍 승인을 요청하지만, 실제로는 탈취 로직이 담긴 악성 토큰을 승인시키는 방식입니다.
- Meta-transactions & relayers: 오프체인 서명 메시지와 릴레이어를 결합해, 공격자가 직접 트랜잭션을 보내지 않고도 자산 이체를 유발해 은밀성을 높여요.
- Multistage UX manipulations: dApp이 먼저 정상적인 연결/소액 승인 등으로 방심시키고, 곧바로 두 번째 불투명한 승인(approval/permit)을 요청해 사용자가 세션 중에 속게 만듭니다.
Blockaid의 역할
여기서 Blockaid가 등장합니다. 여러 지갑과 플랫폼에서 사용자 승인 순간을 보호하기 위해 선택한 대표적 벤더예요. Blockaid의 목적은 명확해요. 사용자가 서명을 요청받을 때, 목적지와 내용을 분석하고, 트랜잭션이 실제로 무엇을 하는지 시뮬레이션하며, 알려진 스캠 라이브러리와 비교해 악의적 신호가 있으면 경고하거나 차단합니다.
The company’s platform blends broad internet crawling and dApp cataloging with fast transaction simulation and on-chain intelligence. It is increasingly embedded inside wallets, so the warning appears inside the app where the user decides.
The technology is less magic and more orchestration. Blockaid says it scans millions of web pages and dApp endpoints daily, maintaining a threat intelligence feed of malicious domains, deceptive token contracts, and known drainer signatures. Before a user attempts to sign, Tangem Wallet forwards the metadata about the dApp to Blockaid’s service.
Blockaid는 이후 호출을 빠르게 시뮬레이션하고, 토큰·컨트랙트 행동을 분석하며, 주소 평판을 체크하고, 휴리스틱과 학습된 패턴을 적용해 해당 행동이 고위험인지 판단해요.
Blockaid가 dApp에서 중점적으로 보는 항목
Blockaid는 인터넷 전반의 dApp 스캔, 빠른 트랜잭션 시뮬레이션, 온체인 휴리스틱을 강조합니다. 이들이 트랜잭션 허용/경고/차단 여부를 결정할 때 참고하는 신호와 기법을 살펴볼게요.
프론트엔드 지표(오프체인)
첫 번째 방어선은 오프체인 메타데이터 점검이에요. 공격자는 복제 프론트엔드와 일회용 도메인에 의존하는데, 이는 측정 가능한 신호를 제공합니다.
- Domain and hostname reputation: DNS 텔레메트리를 위협 인텔 피드와 대조해 신규 등록 도메인, 짧은 TTL(주로 Fast Flux에서), 과거 악성 캠페인 연관 도메인 등을 식별해요. 피싱 캠페인에 자주 쓰인 등록기관도 강력한 신호입니다.
- UI/UX cloning patterns: DOM 수준 유사도 분석으로 HTML/CSS 구조, JavaScript 번들, 인라인 문자열 등이 기존 브랜드나 피싱 템플릿과 일치하는지 탐지해요. 크롤러가 수백만 도메인을 매일 스크랩해 이런 특징을 추출, 대규모로 사칭 프론트엔드를 가려냅니다.
- Logo and asset hashing: 이미지 자산(SVG, PNG 등)을 해시 처리해, 공식 브랜드 저장소와 대조합니다. 무관한 도메인 간 해시 충돌이나 근접 유사도는 사칭 시도로 간주돼요.
이런 프론트엔드 분석으로 사용자가 온체인에서 상호작용하기 전 악성 인프라를 식별할 수 있어요.
트랜잭션 레벨 시뮬레이션
사용자가 트랜잭션을 시작하면, 결정적 시뮬레이션이 악의적 행동을 판별하는 가장 신뢰도 높은 지표가 됩니다.
- Stateful fork and dry run: 서명 전 트랜잭션을 현재 블록 높이에서 포크된 체인 상태에 실행해, 실제 온체인 반영 없이 상태 변화(토큰 이체, 스토리지 갱신, 이벤트 발생 등)를 시뮬레이션해요.
For example, if the simulation shows that signing an approve call grants an attacker contract unlimited allowance followed by an immediate transfer, the transaction is flagged as high risk.
- Calldata decoding: ABI 디코딩으로 calldata를 사람이 읽을 수 있는 메서드 호출(approve, permit, transferFrom, fillOrder 등)로 변환해, UI가 모호하게 표시해도 의도를 드러냅니다. ABI가 없으면 함수 셀렉터 매칭 등 휴리스틱을 적용해요.
- Multicall expansion: 많은 드레이너가 중첩된 multicall 구조에 탈취 로직을 숨깁니다. 시뮬레이션이 각 하위 호출을 재귀적으로 펼쳐 숨겨진 행동까지 드러내, 배치 작업 뒤에 이체를 감추는 수법을 차단해요.
이런 실행 계층 검사는 트랜잭션의 실제 경제적 효과를 결정론적으로 검증하는 유일한 방법입니다.
온체인 휴리스틱
직접 시뮬레이션 외에도, 추가 휴리스틱으로 드레이너 및 악성 컨트랙트 관련 패턴을 탐지해요:
- Contract age: 최근 배포되었거나 상호작용이 적고, 과거 블랙리스트 주소와 연관된 컨트랙트에 승인을 부여하는 트랜잭션은 의심 대상으로 간주해요.
- Unlimited allowance immediate transfer: 반복적으로 드레이너가 무한 ERC-20 승인 후 곧바로 스윕 트랜잭션을 요청하면, 탐지 엔진이 승인/permit 호출 직후 짧은 블록 내에 외부 전송이 발생하는 시퀀스를 플래그합니다.
- Drainer fingerprints: 많은 DaaS 키트가 함수 호출 시퀀스, 오퍼코드 수준 가스 시그니처, 알려진 라우터 컨트랙트를 재사용해요. 이런 행동 지문은 YARA-like 시그니처로 저장해 미래 트랜잭션과 대조합니다. Blockaid는 이런 지문과 IOC(침해 지표, 예: 컨트랙트 주소, 라우터 패턴, 드레이너 행동 등)를 공개하고 있어요.
이런 휴리스틱은 계속 업데이트되는 규칙 집합으로, 기존 및 신규 드레이너의 공통 수법을 잡아냅니다.
행동 및 머신러닝 신호
마지막으로, 통계적·행동적 이상 탐지가 결정적 체크를 보완합니다:
- UX Flow deviation: 탐지 시스템이 다중 승인 등 비정상 서명 흐름(두 번째 트랜잭션이 실제 공격, 과거 이력 대비 비현실적 토큰 요청 등)을 모니터링해요.
- Third-party sweep patterns: 악성 컨트랙트가 동일 트랜잭션 경로 내에서 자산을 “스윕” 주소로 포워딩하는 경우가 많아요. ML 모델이 이 스윕 패턴에 연루된 주소를 클러스터링해, 널리 신고되기 전에도 악성 지갑을 식별할 수 있습니다.
- Telemetry and network effect: 한 지갑에서 피싱 시도가 탐지되면, 그 신호가 즉시 통합된 모든 지갑에 전파돼요. 이로써 단일 사고가 수천 명을 사전에 보호하는 협업 방어층이 만들어집니다. Blockaid는 이 점을 탐지 파이프라인의 핵심 강점으로 강조합니다.
요약
다층적 방어 전략은 여러 접근법을 통합해 보안을 강화합니다. Blockaid는 다음을 수행해요:
- 도메인·자산 검증, 프론트엔드 유사도 점검 등 오프체인 메타데이터 분석 결합
- 포크 실행, calldata 분석, multicall 확장 등 온체인 시뮬레이션 기법 적용
- 컨트랙트 출처 평가, 무제한 승인·드레이너 지문 탐지 등 휴리스틱 규칙 활용
- 이상 흐름, 스윕 탐지, 블록리스트 신속 전파 등 행동·머신러닝 텔레메트리 모니터링
- 인프라 구축부터 온체인 실행까지 위협을 탐지하는 종합적 방어 모델 구현
- 돌이킬 수 없는 피해 발생 전 드레이너 캠페인 무력화 가능
Tangem Wallet이 적용하는 실전 규칙
Tangem Wallet은 Blockaid와의 연동을 통해 서명 파이프라인에 다음과 같은 실전 체크를 추가했어요:
- approve 또는 permit 계열 서명이 감지되면, Tangem이 “이 서명은 SPENDER X에게 Y TOKEN까지 전송 권한을 부여합니다.”와 같이 사람이 읽을 수 있는 명확한 설명을 제공합니다.
- 지갑이 서명 전 트랜잭션을 시뮬레이션해, 사용자에서 외부 주소로의 이체가 포함되면 고위험으로 플래그합니다.
- 제한 승인과 무제한 승인 옵션을 모두 제공하며, 강력하고 명시적인 추가 확인을 요구해요.
- Tangem UI에서 디코딩된 내용과 서명이 실제로 허용하는 내용을 평이한 한국어로 요약해 보여줍니다.
- spender/수령인이 신규이거나 알려진 드레이너 주소와 연관된 경우, 앱이 경고를 표시해요.
- 동일 도메인/주소에서 의심스러운 플로우가 반복되면, 앱이 고위험 조합에 대해 “정말 진행할까요?” 추가 확인을 띄웁니다.
- 지갑 UI에서 “승인 취소”(revoke) 플로우를 제공하고, 승인 취소 방법도 안내합니다.
맺음말
악성 dApp은 UI 신뢰와 불투명한 서명을 무기로 삼아요. 가장 강력한 방어는 서명 순간에 탐지를 집중하는 것—calldata를 해독하고, 상태 변화를 시뮬레이션하며, 온체인 평판을 확인하고, 명확한 경고를 띄우는 것—바로 Blockaid의 스캔·시뮬레이션 파이프라인이 설계된 목적입니다. 이 조합 덕분에 Approve 버튼이 치명적이 아니라 정보 제공 수단이 될 수 있어요.
The contest between scammers and defenders in Web3 is a familiar one. It's a cycle of invention and response that has defined security since the early days of the internet. WalletConnect made transactions easier. Attackers responded by making deception easier.
Blockaid와 같은 기업은 Web3의 탈중앙화 정신을 훼손하지 않으면서 승인 과정을 더 안전하게 만들고자 노력해요. 균형이 사용자에게 유리하게 기울 수 있을지는 플랫폼의 경계, 더 빠른 탐지 공유, 그리고 결국 사용자가 Approve를 클릭할 때 내리는 선택에 달려 있습니다.