Wallet drainer — это связка фишингового сайта, скриптов и/или смарт-контрактов, которая заставляет владельца кошелька подтвердить вредоносную подпись. В результате злоумышленник получает право передать ваши активы (стейблкоины, токены, NFT) или меняет критичные права (например, у прокси-контракта), после чего «высасывает» всё ценное с адреса. На цепи это выглядит как легитимные операции от вашего кошелька — без взлома seed или приватного ключа.
В 2024 году суммарный ущерб от drainer-фишинга составил порядка 494 млн с ~332 тыс. пострадавших адресов (рост на ~67% год к году). Крупнейшая разовая кража превысила 55 млн, а рынок «drainer-as-a-service» пережил смену лидеров (Pink → Inferno/Angel) и эволюцию техник. В 2025-м появился новый вектор — подмена результатов симуляции транзакции в кошельках. *(см. раздел «Источники для редакции» — их не вставляем в вики)*
Как именно «сливают» кошельки: базовые механики
1) Манипуляция разрешениями и подписями в EVM.
- ERC-20 approvals — выдача «позволения» чужому контракту списывать ваши токены. Дрейнеры маскируют такие запросы под «подтвердить эйрдроп/своп».
- EIP-2612 Permit — «газлес»-подпись, дающая allowance без on-chain транзакции; удобно для UX, но при фишинге злоумышленник получает то же право списания. См. Транзакция и Адрес.
- Uniswap Permit2 — единый контракт «подписей на перевод/разрешений» (модули SignatureTransfer и AllowanceTransfer). Корректно настроенный SignatureTransfer работает одноразово в рамках одной операции, но AllowanceTransfer даёт длительные лимиты; дропа/фейк-минты часто навязывают именно их.
- NFT setApprovalForAll — «предодобрение» перемещения всех токенов коллекции оператором (напр., маркетплейсом). Фишинговые сайты просят SAFA «для листинга», а затем пересылают все NFT на адрес мошенника.
- Мутации прав прокси/владельца — редкие, но разрушительные сценарии (напр., фальшивая подпись setOwner у прокси, после чего злоумышленник переводит крупные стейблкоины).
2) Blind signing и оффчейн-подписи. Большая часть drainer-связок эксплуатирует «газлес» подписи по EIP-712: визуально это «красивая форма», но пользователь не читает поля (spender, value, deadline, chainId, domain) и ставит подпись «вслепую». Подробнее — в разделе про blind signing и базовой безопасности.
3) Подмена результатов симуляции (тренд 2025). Кошельки показывают «симуляцию результата» перед подписью. Дрейнеры научились в окне между симуляцией и подписью менять состояние контрактов (или обманывать симулятор), чтобы реальный вызов вывел активы, хотя превью показывало «получу 0.000… ETH». Это особенно опасно для «claim/airdrop» UX.
4) Каналы распространения.
- Взломанные/поддельные аккаунты проектов (X/Twitter, Discord, Telegram).
- Платная реклама/SEO, клоны сайтов, подмена ссылок в приложениях.
- NFT-эйрдропы/«подарочные» токены с фиш-ссылкой в метаданных.
- Мобильные сценарии через WalletConnect/Deep Link — «один тап — одна подпись».
- Соц-инженерия: «верифицируйте адрес», «пройдите KYC», «срочный релист NFT».
Картина по экосистемам: EVM, Solana, TON
EVM (Ethereum и L2). Основной «хлеб» дрейнеров — Permit/Permit2/allowances и NFT-SAFA. В 2024-м именно Permit/Permit2 оставались «подписью №1» для краж токенов; из крупных инцидентов — смена владельца прокси через вредоносный setOwner и кража десятков миллионов DAI у одного адреса. Рынок drainer-китов перетекал между игроками, меняя доли и тактики.
Solana. Тут чаще просят прямые переводы в инструкциях, плюс анти-симуляционные трюки. На серии кампаний 2023–2024 совокупные потери превысили 4 млн у тысяч пострадавших; популярны были «фейк-эйрдропы» с NFT, где ссылка ведёт на фиш. Мобайл-UX — отдельная зона риска.
TON. В 2024-м фиксировалась миграция части дрейнеров в TON, где быстро росла розничная аудитория из-за мини-игр/ботов в Telegram. Новички часто «подписывают, не считая», а фишинговые шорт-линки и боты подменяют домены/запросы.
Технический разбор ключевых подпись-векторов
Permit (EIP-2612). *Что делает:* даёт токену «права списания» через офчейн-подпись, которую потом любой контракт может «потратить» в своей транзакции. *Чем опасно:* жертва подписывает разрешение чужому spender’у на сумму value (нередко — «бесконечность»). Мошенник сразу проводит списание. *Защита:* подписывать только на проверенных доменах/контрактах; ставить минимальные лимиты и короткий deadline; регулярно ревокать лишнее (см. ниже).
Permit2 (Uniswap). *Что делает:* унифицирует approvals для любых ERC-20, даже без permit(). Есть два пути: SignatureTransfer (одноразовая «подписная» передача в рамках текущей транзакции) и AllowanceTransfer (долгоживущие allowances). *Чем опасно:* фишинговые сайты маскируют AllowanceTransfer под «разрешить рутину» и выбивают большой лимит/срок. *Защита:* по возможности работать через SignatureTransfer; если приложение настаивает на Allowance — ставить лимит и срок; следить и ревокать выданные разрешения.
NFT setApprovalForAll (ERC-721/1155). *Что делает:* даёт «оператору» право перемещать все NFT коллекции от вашего имени (обычно — кондуит маркетплейса). *Чем опасно:* под видом «листинга» фишер получает SAFA на свой «оператор» и выводит все NFT. Даже «газлес-листинг» через Seaport опирается на такие предварительные полномочия. *Защита:* выдавать SAFA только официальному кондуиту; сразу отзывать после сделки; включать предупреждения в кошельке и читать адрес оператора.
Опасные «оффчейн-подписи» и blind signing. EIP-712 удобен, но критичны домен, chainId, spender/offerer, value/amount, deadline, salt. Любая «пустая»/нечитабельная форма — красный флаг. Blind signing (подпись непоказанного payload’а) — высокий риск.
Атака «подмена симуляции» (2025). Проблема — рассинхрон между превью и фактом: сайт успевает изменить состояние или обмануть симулятор, и итоговая транзакция отправляет активы на адрес атакера. Требуется «автопересчёт симуляции» в кошельках и внимательность пользователя.
Solana-специфика
В Solana дрейнеры чаще навязывают прямой перевод или хитро упакованные инструкции; симуляция встроена, но её обманывают (анти-симуляция/фейковые окна). Распространённый вектор — «эйрдроп NFT с ссылкой» → подключение кошелька → согласие на вредоносную инструкцию. Для токенов SPL есть и approval-модели, потому важно понимать, что «не всё — просто перевод». См. также архитектуру состояния Solana и разделы по безопасности.
TON-специфика
Рост «игрового» трафика и мини-приложений в Telegram → короткие флоу подписей, сокращённая валидация доменов, работа в мобайле. Дрейнеры «переезжают» за аудиторией: простые оффер-страницы, боты, шорт-ссылки и «кэшбэк-фиш» под видом реферальных ссылок.
Архитектура защиты: пользователи
Гигиена разрешений и кошельков
- Делите хранилище на cold/warm/hot: холодный — только хранение; тёплый — выплаты; горячий — дропы/минты/DeFi.
- Выдавайте минимально достаточные allowances/SAFA и короткий срок для Permit/Permit2. Избегайте «unlimited».
- Периодически проверяйте и ревокайте лишние разрешения (порталы ревока, интерфейсы кошельков).
- Держите отдельный адрес для дропов/минтов. Не смешивайте с основным.
Поведение при подписях
- Проверяйте домен/URL, chainId, spender/offerer, сумму/лимит, срок.
- Избегайте blind signing. Если кошелёк не показывает содержимое — не подписывайте.
- Будьте особенно осторожны с «газлес-листингом/клеймом» и «подтверждением доступа» — это любимые маски дрейнера.
Инструменты и опции
- Включите расширения/сторожи (анти-фишинг и анти-дрейнер) в браузере/кошельке.
- Используйте симуляцию транзакций и декодер calldata. При «подмене симуляции» обновляйте превью перед подписью.
- Аппаратные кошельки и 2FA-подтверждение намерений полезны, но не спасут от собственной подписи на вредную операцию — читайте, что подписываете.
Красные флаги
- Внезапные «подарки», «релистинг», «восстановить доступ»;
- Требование SAFA/Permit «прямо сейчас» под предлогом «всё уже готово»;
- Несоответствие домена/дизайна и подозрительные редиректы;
- Ошибки в симуляции и просьба «подтвердить ещё раз».
Архитектура защиты: команды/разработчики dApp/кошельков
Дизайн подпись-флоу
- По возможности используйте SignatureTransfer (Permit2) с одноразовыми подписями вместо долговечных AllowanceTransfer.
- Для NFT опирайтесь на кондуиты и чётко показывайте адрес оператора. Давайте пользователю кнопку быстрого отзыва SAFA после сделки.
- Вынесите отладочный декодер: домен, сеть, адреса, лимиты, сроки, хэши, а также «о чём операция».
Симуляция и риск-движок
- Обновляйте симуляцию перед самой подписью и при малейшем изменении состояния.
- Интегрируйте чёрные списки контрактов/доменов и контекстные алерты; предупреждайте про unlimited и старые approvals.
- Лимитируйте типовые операции (напр., запрещайте SAFA/Allowance без явного контекста).
Инфраструктура и коммуникация
- Защитите аккаунты соцсетей/Discord (FIDO2, роли, логирование), подписывайте билд-артефакты и публикуйте официальные домены в on-chain-зонах (ENS/TXT).
- Раздавайте плейбуки: как отозвать разрешения, куда жаловаться, как проверить домен.
Инцидент-респонс: что делать, если подписали «не то»
Первые минуты
- Отключите скомпрометированный браузер/расширение; перейдите на другое устройство.
- Срочно переместите уцелевшие активы на чистый адрес.
- Ревокайте выданные разрешения (ERC-20, NFT, Permit2) и удаляйте SAFA у маркетплейсов.
- Проверьте другие сети/L2, где dApp мог запросить разрешения.
Дальше
- Зафиксируйте tx-хэши, адреса злоумышленника, домен — пригодится для расследования/блоклиста.
- Напишите в поддержку кошелька/биржи/аналитического партнёра; при стейблкоинах возможно обратиться к эмитенту насчёт заморозки (см. blacklists — учитывайте юр. ограничения).
- Подайте заявление в правоохранительные органы, приложите публичные профили угроз (адреса, домены, кампании).
Важно: ревок не «вернёт деньги», но закроет кран для дальнейших списаний.
Чек-лист безопасного UX (коротко)
- Адреса: никогда не вводите seed/ключ. Для подписи проверяйте сеть, домен, адреса.
- Лимиты: никаких unlimited, если это не white-list приложение.
- Ревоки: еженедельно проверяйте и чистите разрешения.
- Симуляция: обновляйте превью перед подписью; при расхождении — отмена.
- Роли кошельков: холодный/тёплый/горячий; дропы/минты — с «одноразового».
- Анти-фишинг: расширения-сторожи, подписные домены, официальные ссылки.
- Обучение: внутренняя памятка по SAFA/Permit/Permit2 и примеры вредных экранов.
FAQ
Если подпись «без газа», значит безопасно? Нет. «Газлес» — лишь способ перенести авторизацию в подпись. Суть права (списать токены/переместить NFT/сменить владельца прокси) никуда не исчезает.
Как понять, что передо мной Permit2: SignatureTransfer, а не AllowanceTransfer? Кошелёк должен явно показывать тип и поля: spender, amount, nonce, deadline/sigDeadline. Для SignatureTransfer списание происходит сразу и одноразово; для AllowanceTransfer вы выдаёте долговременный лимит — повышенный риск.
Если у меня аппаратный кошелёк, я в безопасности? Это сильно лучше, но не абсолют. Аппарат подтверждает, что подпись — ваша, но не проверяет смысл. Подписав вредный permit/SAFA, вы сами дали право на списание.
Что насчёт Solana — там «нет approvals»? В Solana действительно много «прямых переводов», но существуют и модели разрешений (SPL-2022). Фишинг там тоже реален: просит «подтвердить действие», фактически отправляя перевод.
Почему кошелёк показывал «получу 0 ETH», а вышло «всё пропало»? Это и есть вектор подмены симуляции: между превью и подписью злоумышленник меняет состояние/параметры так, что реальный вызов уводит средства.
