Как защитить кошелёк от дрейнера
Дрейнер кошелька крадёт монеты за одну подпись. Разбираю, как распознать фейковый сайт, проверить разрешения и отозвать опасный доступ.
Дрейнер кошелька крадёт монеты за одну подпись. Разбираю, как распознать фейковый сайт, проверить разрешения и отозвать опасный доступ.
В марте я смотрела, как моя знакомая теряла деньги в прямом эфире. Она перешла по ссылке «раздача нового токена», подключила MetaMask к сайту и подписала одну транзакцию на 0 $. Через сорок секунд с кошелька ушли 4 100 USDT и 0,9 ETH — тогда это было около 6 200 $. Сид-фразу она никому не отдавала, пароль не вводила, ничего не пересылала. Просто нажала «Подтвердить». Так работает дрейнер: ключ у вас никто не крадёт, вы сами отдаёте право распоряжаться монетами.
Дрейнер — это скрипт на сайте или в поддельном приложении, который после подключения кошелька предлагает подписать безобидную на вид транзакцию. Внутри этой подписи спрятано разрешение на списание ваших токенов. Отличие от кражи сид-фразы в том, что здесь вы не отдаёте главный ключ — вы добровольно выдаёте узкое право, которым мошенник тут же пользуется.
Сумму задаёт не вы. Дрейнер сначала сканирует кошелёк: смотрит балансы, цены, ликвидность токенов, и выводит всё, что можно продать. Часто за один заход «выгребают» и ETH, и стейблкоины, и мемкоины, которые ликвидны на бирже. Если токен некуда сбыть, его могут оставить — но толку от этого мало.
Первое — приманка. Это может быть аирдроп «за активность», розыгрыш NFT, «миграция токенов» после взлома или письмо от «поддержки» биржи. Ссылка ведёт на сайт, который выглядит как настоящий: тот же логотип, та же вёрстка, только адрес отличается одной буквой.
Второе — подключение. Вы нажимаете «Connect Wallet», в кошельке всплывает окно. На этом этапе ещё ничего не теряется: подключение само по себе безопасно.
Третье — подпись. Сайт просит подтвердить транзакцию, и вот здесь происходит кража. Кнопка может называться «Claim», «Verify», «Sign to prove you are human». Комиссия часто показана как 0 $ — это и есть сигнал, что вы подписываете не перевод, а разрешение. Обычный перевод по сети Ethereum почти всегда стоит газа.
Четвёртое — вывод. Скрипт через ваш же подписанный контракт списывает токены на адрес мошенника. Транзакция уже исполнена, отозвать её нельзя — блокчейн необратим.
Проверяйте адрес посимвольно. Домен вида unisvvap.org или аirdrop-claim.xyz (с кириллической «а») выдаёт подделку. Настоящие проекты не раздают токены за «подтверждение кошелька».
Насторожиться стоит, если: сайт требует подпись ради «проверки, что вы не бот»; комиссия стоит 0; в окне кошелька вы видите слова Increase Allowance, Set Approval For All или Permit вместо перевода; обещают фиксированную прибыль; торопят обратным отсчётом. Я сама попадалась на таймер «осталось 4 минуты» — это давление на скорость, а не на логику.
Отдельно — поддельные расширения и «кошельки» из поиска. Скачивайте только с официального сайта проекта или из проверенного магазина, сверяя число установок и дату публикации.
Два самых частых инструмента дрейнера — это approve и permit.
approve — стандартное разрешение токена ERC-20 на списание третьим лицом. Если сайт просит approve на сумму unlimited (или 2^256−1), это означает, что вы разрешаете списать этот токен целиком в любой момент и без вашего подтверждения. Многие DEX и так используют такой approve для удобства, но при подозрении всегда выбирайте лимит под свою сумму.
permit — подпись по стандарту EIP-2612, которая не стоит газа и потому особенно удобна мошенникам. Кошелёк показывает её как «подпись сообщения», а не как транзакцию, поэтому красное предупреждение может не появиться. Именно так подписывают разрешение «нажатием — и всё».
Правило простое: любая подпись, которую вы не понимаете, не должна быть подтверждена. Никакого «просто нажми, чтобы получить токены».
Действия по порядку:
revoke.cash или Token Approval Checker на Etherscan (для BNB Chain, Polygon и других сетей есть свои чекеры).Revoke. Вы заплатите комиссию сети (обычно 1–5 $ в сети Ethereum и меньше в L2).Один Revoke может понадобиться и для NFT: разрешение setApprovalForAll даёт доступ ко всей коллекции сразу. Я после первой проверки нашла у себя четыре активных разрешения на площадки, которыми не пользуюсь полгода, и отозвала их — суммарно 12 $ газа, зато спокойнее.
Сразу переведите оставшиеся активы на новый кошелёк: скомпрометированный адрес мог сохранить доступ. Старый кошелёк создайте заново из новой сид-фразы, а не просто переключите аккаунт внутри того же seed — сид-фраза безопаснее новая.
Отзовите все разрешения, даже на опустошённом адресе: мошенник может вернуться за токенами, которые вы позже закинете. Если ушли крупные активы на биржу и они ещё на адресе биржи — напишите в поддержку с хешем транзакции, иногда удаётся заморозить. Шанс невелик, но попробовать дешево.
Заявление в полицию по крипте обычно малорезультативно, но хеш и логи помогают при работе с блокчейн-аналитикой. Главный вывод: кошелёк считайте потраченным, а выводы — выученным.
«Раз у меня лежит мало, взламывать нечего». Дрейнер не оценивает вашу сумму заранее — забирает столько, сколько найдёт. Терять 30 $ тоже неприятно.
«Это же официальный сайт, я там уже был». Фишинг копирует интерфейс один в один. Всё решает адресную строку, а не дизайн.
«Я не вводил пароль, значит, ничего не подписывал». Ввод пароля — не обязательное условие. Хватает одной подписи в окне кошелька.
«Отзову разрешения потом». Пока разрешение живущее, риск никуда не девается: часть дрейнеров выжидают неделями и списывают при следующем крупном пополнении.
approve, permit или setApprovalForAll.revoke.cash раз в месяц.