Ilia Zavialov

Дрейнеры кошелька

Илья Завьялов о том, как approval-дрейнер опустошает кошелёк

Версия на русском языке для России.

Криптокошелёк можно потерять, ни разу не открыв доступ к паролю или сид-фразе. Достаточно подписать одно разрешение на незнакомом сайте, и смартконтракт получает право распоряжаться токенами от имени владельца. Дальше разница только в том, когда именно дрейнер решит забрать средства: сразу или через несколько недель тишины. Ниже разбираем механику подписи, поведение мошеннических сайтов и порядок действий, который снижает риск до минимума.

·8 мин чтения·Илья Завьялов

Илья Завьялов о том, как approval-дрейнер опустошает кошелёк через подпись approve смартконтракту
Илья Завьялов о том, как approval-дрейнер опустошает кошелёк через подпись approve смартконтракту

01Approve и другие подписи, которые заменяют кражу пароля

Классическая схема кражи криптовалюты строится на краже пароля от биржи или сид-фразы кошелька. Approval-фишинг устроен иначе: жертва сама подписывает разрешение, которое передаёт токены под управление смартконтракта, и пароль ей вводить не приходится. Именно из такой подписи складывается механика того, как approval-дрейнер опустошает кошелёк.

Согласие оформляется одной из стандартных подписей: approve даёт адресу право тратить заданное количество токена, а setApprovalForAll отдаёт права на всю коллекцию NFT сразу. Permit и Permit2 работают ещё тише, потому что не требуют отдельной ончейн-транзакции и не стоят газа. Кошелёк из-за этого может не выделить такой запрос как что-то особенное.

Сама подпись не переводит токены в момент нажатия кнопки, баланс не меняется, и внешне ничего не происходит. Это создаёт ложное чувство безопасности: человек закрывает вкладку и забывает о сайте. Токены остаются на месте ровно до того момента, когда владелец разрешения решит ими воспользоваться.

02Почему подключение кошелька к незнакомому сайту уже риск

Подключение кошелька к сайту выглядит безобидно: пользователь лишь разрешает приложению видеть адрес и баланс, ничего не подписывая. На деле это первый шаг воронки, за которым сайт предложит подписать транзакцию под предлогом токенов, airdrop или минта NFT. Риск появляется на несколько шагов раньше самой кражи, ещё на этапе обычного подключения к новому сайту.

Мошеннический сайт почти всегда копирует интерфейс известного протокола: клон биржи, маркетплейса NFT или страница с фальшивым списком токенов для раздачи. Ссылку распространяют через соцсети, платную рекламу в поиске и рассылки, похожие на письма от настоящих проектов. Чем ближе повод к деньгам, тем меньше времени человек тратит на проверку домена перед подключением кошелька.

Отключение кошелька от сайта не отменяет уже выданные разрешения, потому что кнопка disconnect закрывает только текущий сеанс просмотра. Запись о разрешении хранится в смартконтракте токена и действует независимо от сайта. Спустя недели после визита на подозрительный ресурс разрешение остаётся рабочим, даже если пользователь давно забыл про вкладку.

Какие подписи чаще всего используют approval-дрейнеры
Тип подписиЧто получает контрактПочему это опасно
ApproveПраво тратить заданное количество одного токенаЧасто запрашивается сразу на неограниченную сумму
SetApprovalForAllПраво распоряжаться всей коллекцией NFT на кошелькеМаскируется под подтверждение минта или вайтлиста
PermitРазрешение на списание токена по подписи вне блокчейнаНе требует отдельной ончейн-транзакции и не стоит газа
Permit2Расширенное разрешение сразу для нескольких протоколовОдна подпись открывает доступ через несколько сервисов
IncreaseAllowanceУвеличение уже выданного лимита трат по токенуЛегко принять за обычное продление доступа к сервису

03Как дрейнер разводит момент подписи и момент опустошения

Между моментом подписи и списанием токенов может пройти любое время: минуты, дни или месяцы, потому что разрешение не имеет срока действия по умолчанию. Отсрочка выгодна мошеннику: жертва успевает забыть о сайте, а собранные разрешения можно исполнить одним пакетом. Поэтому объяснение того, как approval-дрейнер опустошает кошелёк, всегда включает разрыв по времени между кликом и потерей.

Списание обычно запускает отдельный скрипт, который следит за балансом адресов с открытым разрешением и списывает актив, как только на кошелёк поступает новый перевод. Из-за этого жертвы нередко связывают потерю с моментом зарплаты или продажи NFT, хотя разрешение было выдано задолго до события. Задержка между подписью и списанием размывает связь между действием и последствием.

Отдельные скрипты следят сразу за тысячами адресов из разных фишинговых кампаний, и это увеличивает добычу с одной подписи. Аналитики Chainalysis зафиксировали за 2025 год ончейн-мошенничество на сумму не менее 14 миллиардов долларов при росте среднего платежа на мошеннический адрес на 253 процента год к году. Схемы смещаются в сторону более крупных кошельков и длинных цепочек разрешений.

04Что видно в кошельке в момент запроса на подпись

Экран подтверждения в кошельке показывает адрес контракта и вызываемую функцию, но интерфейс часто прячет детали за кнопкой «подробнее» или показывает их шестнадцатеричной строкой. Название функции вроде approve ничего не говорит человеку, который просто хочет получить обещанный токен. Это часть механизма того, как approval-дрейнер опустошает кошелёк: жертва пропускает детали мимо, полагаясь на то, что кошелёк сам предупредит об опасности.

Большинство дрейнеров запрашивают максимально возможную сумму, которая в смартконтрактах означает практически неограниченное число. Это позволяет забрать токены, доступные сейчас, и всё, что поступит на адрес позже, вплоть до отзыва разрешения. Привычка открывать поле с суммой перед подтверждением останавливает значительную часть подобных сценариев ещё на старте.

Для владельцев NFT отдельную опасность представляет запрос setApprovalForAll, замаскированный под подтверждение минта или вайтлиста. Эта подпись передаёт право распоряжаться сразу всей коллекцией NFT на кошельке одним действием. Итог одинаков для дорогих и дешёвых коллекций: право переводить токены не зависит от цены конкретного экземпляра.

05Сколько теряют на подобных схемах и как эта картина меняется

Масштаб проблемы виден в отраслевой статистике по личным криптокошелькам: за 2025 год зафиксировано около 158 тысяч случаев кражи, которые затронули порядка 80 тысяч уникальных пострадавших. Заметная часть этих случаев начинается с обычной подписи разрешения на сайте, который выглядел как ещё один сервис для получения токенов. Цифра включает и разовые крупные потери, и множество небольших сумм.

Рынок классических дренеров за последний год заметно сократился: потери упали с 494 миллионов долларов в 2024 году до 83,85 миллиона в 2025, примерно на 83 процента. Средняя потеря на один пострадавший кошелёк снизилась с приблизительно 1488 до 790 долларов, а операторы схем стали действовать мельче и осторожнее. Для рядового держателя риск от этого остаётся почти прежним.

Общая статистика описывает рынок в целом, а риск для отдельного кошелька в момент конкретной фишинговой атаки остаётся прежним. Каждая подпись approve или permit на новом сайте создаёт свою точку уязвимости, которую среднерыночная цифра не закрывает. Поэтому дальше стоит разобрать, как обнаружить уже выданные разрешения и как их отозвать.

06Как проверить и отозвать выданные разрешения

Список активных разрешений можно посмотреть через раздел самого кошелька, если он это поддерживает, либо через сервис проверки approval, подключённый к адресу в режиме только для чтения. Сервис показывает, каким контрактам и на какую сумму выдан доступ по каждому токену отдельно. Проверять стоит каждую сеть отдельно, потому что approval на одной сети никак не связан с approval на другой.

Отзыв разрешения оформляется отдельной транзакцией, которая обнуляет допустимую сумму и требует небольшой платы за газ. Начинать стоит с разрешений на неограниченную сумму и с сайтов, которые давно не используются. Разрешения крупным и проверенным биржам можно не трогать, если сумма разумна и ограничена.

Так выглядит практический ответ на вопрос о том, как approval-дрейнер опустошает кошелёк: проверять список разрешений раз в несколько месяцев и отзывать лишнее, не дожидаясь письма о списании средств. Разовая проверка занимает меньше времени, чем восстановление после потери. Привычка чистить разрешения работает даже для тех, кто уже подписал что-то на подозрительном сайте.

07Привычки, которые снижают риск подключения кошелька

Отдельный кошелёк для новых и непроверенных сайтов ограничивает ущерб лучше любого совета из этого текста: на таком адресе стоит держать сумму, которую не жалко потерять. Основные средства лучше хранить отдельно, без единого подключения к сторонним сайтам. Перед подключением стоит сверить адрес сайта посимвольно, потому что поддельные домены отличаются от настоящих одной переставленной буквой.

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

Использовав одноразовый сервис вроде минта, стоит сразу вернуться в панель разрешений и отозвать то, что было выдано ради этого действия. Это занимает меньше минуты и закрывает риск, что забытое разрешение станет причиной пропажи через полгода. Из таких небольших действий складывается защита от approval-дрейнера, который опустошает кошелёк, только когда разрешение остаётся открытым слишком долго.

08Вопросы и ответы

Как approval-дрейнер опустошает кошелёк, если сид-фраза не вводилась?

Дрейнер получает от жертвы разрешение смартконтракту распоряжаться токенами через подпись approve, setApprovalForAll, Permit или Permit2. Сид-фраза и пароль для этого дрейнеру не нужны, потому что жертва сама подтверждает такую подпись в интерфейсе кошелька, часто не читая, на какую сумму и какому адресу выдаётся доступ. Дальше оператору достаточно дождаться удобного момента и списать средства без дополнительных запросов.

Опасно ли просто подключить кошелёк к сайту без подписи транзакции?

Само подключение не переводит токены и не выдаёт разрешение смартконтракту, однако оно обычно предшествует запросу подписи, и незнакомый сайт получает повод показать следующий экран с approve или permit. Поэтому подключение к непроверенному ресурсу стоит считать первым шагом к риску, даже если дальше ничего не подписывалось.

Как узнать, какие разрешения уже выданы моему кошельку?

Список активных разрешений можно посмотреть в разделе самого кошелька, если он это поддерживает, либо через сервис проверки approval, подключённый к адресу в режиме только для чтения. Сервис показывает контракт, токен и сумму по каждому выданному разрешению отдельно. Проверять стоит каждую сеть отдельно, потому что разрешения одной сети не связаны с разрешениями другой.

Помогает ли отключение кошелька от сайта отозвать разрешение?

Нет, кнопка disconnect закрывает только текущий сеанс просмотра сайта, а запись о разрешении хранится в смартконтракте токена и продолжает действовать до отдельной транзакции отзыва. Отозвать разрешение можно только через собственную транзакцию, которая обнуляет допустимую сумму.

Сколько стоит отозвать выданное разрешение?

Отзыв оформляется обычной транзакцией в блокчейне и требует небольшой платы за газ, размер которой зависит от загруженности сети. Это на порядок дешевле, чем восстановление кошелька после реальной потери токенов. Начинать стоит с разрешений на неограниченную сумму и с сайтов, которые давно не используются.

Можно ли вернуть токены после того, как approval-дрейнер уже опустошил кошелёк?

На практике вернуть списанные токены почти никогда не удаётся, потому что перевод в блокчейне необратим. Основные усилия имеет смысл направить на срочный отзыв оставшихся разрешений и перенос уцелевших активов на новый, чистый кошелёк. Это ограничивает дальнейший ущерб, даже если уже списанную часть вернуть не получится.

Монограмма Ильи Завьялова

Автор: Илья Завьялов, консультант по цифровой безопасности. Профиль Ильи Завьялова

09Читать дальше

Назад в блог