Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Защита кошелька от wallet drainer: как работают атаки и как от них защититься

Wallet drainer — вредоносный смарт-контракт, который после получения одного разрешения (approve или permit) мгновенно выводит все активы с кошелька на адрес злоумышленника. Атаки реализуются через фишинговые сайты, поддельные airdrop-сообщения и скомпрометированные фронтенды легитимных протоколов. Полная защита невозможна, но правильная организация хранения и привычка читать транзакции перед подписью снижают риск потери средств до минимума.

Автор: ~8 мин

Как технически работает wallet drainer?

Drainer использует стандартные функции ERC-20: `approve` (разрешение тратить токены) и `permit` (подпись офф-чейн, не требующая gas от жертвы). Жертва подписывает транзакцию на фишинговом сайте, думая, что это mintинг NFT или claim airdrop. Смарт-контракт дрейнера немедленно вызывает `transferFrom` и выводит все разрешённые токены. Современные дрейнеры сканируют кошелёк и выводят активы в порядке убывания стоимости за одну транзакцию. Риск: транзакция в блокчейне необратима — после подписи вернуть средства практически невозможно.

Источник: ЦБ РФ

Какие типы подписей наиболее опасны с точки зрения drainer-атак?

Наиболее опасны три типа: 1) `approve` с неограниченным лимитом (unlimited approve) — разрешает тратить все токены данного типа; 2) `permit` — офф-чейн подпись стандарта EIP-2612, не требующая gas, поэтому не вызывает подозрений у невнимательного пользователя; 3) `setApprovalForAll` для NFT — одним действием разрешает передачу всей коллекции. Permit-атаки особенно распространены, так как выглядят как безобидная подпись сообщения, а не транзакция. Риск: большинство пользователей не читают содержимое подписи перед подтверждением.

Как фишинговые сайты имитируют легитимные протоколы?

Злоумышленники используют несколько техник: тайпсквоттинг (uniswаp.org вместо uniswap.org с заменой символов); взлом официального Twitter/Discord протокола для публикации фишинговых ссылок; покупка рекламы в поисковиках по запросам типа «uniswap» с фишинговым сайтом на первом месте; компрометация CDN или DNS проверенного домена. Визуально сайт может быть неотличим от оригинала — скопированы интерфейс, логотипы и тексты. Риск: даже опытные пользователи попадались на скомпрометированные официальные домены — только проверка URL и адреса контракта даёт реальную защиту.

Что такое «горячий» и «холодный» кошелёк и почему разделение критично?

Горячий кошелёк — подключён к интернету и используется для регулярных DeFi-транзакций; холодный — аппаратный кошелёк (Ledger, Trezor), хранит основной капитал офлайн. Стратегия разделения: на горячем кошельке держите только сумму, необходимую для текущих операций (условно «рабочий капитал»). Основной капитал на холодном кошельке никогда не подключайте к незнакомым сайтам. Компрометация горячего кошелька не затрагивает холодный. Риск: аппаратный кошелёк защищает ключи, но не от подписания вредоносной транзакции на экране компьютера — всегда читайте, что показывает экран устройства.

Как проверить и отозвать опасные разрешения (approvals) на кошельке?

Через сервисы revoke.cash или etherscan.io (вкладка Token Approvals для ERC-20) можно увидеть все активные разрешения и отозвать их. Рекомендуется: регулярно проверять активные approvals после каждой DeFi-сессии; немедленно отзывать разрешения для неизвестных контрактов; никогда не оставлять неограниченные approve (unlimited) для контрактов, которые вы больше не используете. Каждый отзыв — отдельная транзакция с gas-комиссией. Риск: permit-подписи не отображаются в стандартном списке approvals — для их проверки нужны специализированные инструменты.

Источник: ЦБ РФ

Что делать в первые минуты после подозрения на компрометацию кошелька?

Действуйте немедленно: 1) откройте Etherscan и проверьте последние транзакции кошелька — подтверждён ли вывод. 2) Если вывод ещё не произошёл (редко, но возможно) — попытайтесь отозвать approve через revoke.cash с более высоким gas, чем у транзакции дрейнера. 3) Переведите оставшиеся активы на другой адрес быстрее, чем дрейнер их заберёт. 4) Никогда больше не используйте скомпрометированный адрес. Риск: в большинстве случаев дрейнер срабатывает мгновенно после подписи — времени на реакцию нет, поэтому профилактика важнее лечения.

Источник: ЦБ РФ

Можно ли вернуть средства после drainer-атаки?

В подавляющем большинстве случаев — нет. Транзакции в блокчейне необратимы. В редких случаях при быстром обращении биржа может заморозить средства, если атакующий попытается вывести их через централизованную платформу. Вероятность этого крайне низка.

Эксклюзив от ИнвестХомяка

Типы wallet drainer атак и меры защиты

Тип атакиМеханизмМера защиты
Unlimited ApproveРазрешение тратить все токены типаВсегда устанавливать точный лимит approve
Permit (EIP-2612)Офф-чейн подпись без gasЧитать содержимое подписи, не только тип
setApprovalForAll (NFT)Разрешение на всю NFT-коллекциюОтзывать после завершения операции

Горячий кошелёк против аппаратного для хранения основного капитала

КритерийГорячий кошелёк (MetaMask и др.)Аппаратный кошелёк (Ledger/Trezor)
Хранение ключейВ браузере / на устройстве онлайнИзолированный чип офлайн
Риск drainer-атакиВысокий — ключи доступны для подписиСнижен — подпись на экране устройства
Удобство для DeFiВысокое — мгновенный доступНиже — требует физического подтверждения
Рекомендуемый объём средствТолько рабочий капиталОсновной капитал
Защита от фишингаТолько внимательность пользователяЭкран устройства показывает данные транзакции

Как организовать защиту кошелька от drainer: практический чеклист

  1. Разделите кошельки на горячий и холодный

    Создайте отдельный кошелёк для DeFi-активности (горячий) и никогда не подключайте к нему аппаратный кошелёк с основным капиталом. На горячем держите только сумму, потеря которой для вас приемлема.

  2. Установите расширение для симуляции транзакций

    Расширения типа Pocket Universe или Fire (для браузера) симулируют транзакцию до подписи и показывают, какие активы покинут кошелёк. Это позволяет увидеть drainer до того, как он сработает.

  3. Всегда проверяйте URL и адрес контракта

    Перед подписью любой транзакции в DeFi проверьте: точный URL сайта (без замены символов), адрес смарт-контракта в MetaMask совпадает с официальным адресом протокола на Etherscan или в документации.

  4. Регулярно проверяйте и отзывайте активные разрешения

    После каждой DeFi-сессии заходите на revoke.cash или в раздел Token Approvals на Etherscan — отзывайте разрешения для контрактов, которые больше не используете. Особое внимание — unlimited approvals.

  5. Никогда не переходите по ссылкам из личных сообщений и рекламы

    Фишинговые ссылки приходят через Discord, Telegram, Twitter и поисковую рекламу. Всегда открывайте DeFi-протоколы через закладки браузера, которые вы создали самостоятельно с официального источника.

Частые вопросы

Можно ли вернуть средства после drainer-атаки?

В подавляющем большинстве случаев — нет. Транзакции в блокчейне необратимы. В редких случаях при быстром обращении биржа может заморозить средства, если атакующий попытается вывести их через централизованную платформу. Вероятность этого крайне низка.

Защищает ли аппаратный кошелёк от blind signing?

Частично. Аппаратный кошелёк показывает данные транзакции на своём экране, но для сложных смарт-контрактов экран может отображать нечитаемые данные вместо понятного описания. Это называется blind signing — подписание без понимания содержимого. Ledger и Trezor работают над улучшением читаемости данных, но проблема полностью не решена.

Что такое «honeypot» и как он отличается от drainer?

Honeypot — мошеннический токен или контракт, который можно купить, но нельзя продать: функция продажи заблокирована в коде. Drainer активно выводит средства после получения разрешения. Honeypot удерживает вас в позиции, drainer опустошает кошелёк немедленно. Оба — формы смарт-контракт мошенничества.

Нужно ли создавать новый кошелёк после drainer-атаки?

Да, обязательно. Скомпрометированный кошелёк больше никогда не следует использовать для хранения ценных активов — даже если атакующий не получил seed-фразу. Активные approvals и история взаимодействия с вредоносным контрактом делают адрес ненадёжным.

Можно ли застраховать крипто-активы от drainer-атак?

В DeFi существуют протоколы страхования смарт-контрактных рисков (Nexus Mutual и др.), однако drainer-атаки, основанные на подписи пользователя, как правило, не покрываются — это квалифицируется как «пользовательская ошибка», а не уязвимость протокола. Условия страховки необходимо проверять отдельно по каждому случаю.

Источники