После подозрительной активности трассировку начинают с развилки: утёк ключ или было выдано разрешение на расход. Ответ лежит в квитанции транзакции — в списке событий и в поле инициатора. Если перевод отправил ваш адрес, подпись ставил ваш ключ. Если отправитель чужой, а токены ушли с вашего баланса, сработало ранее выданное разрешение. От этого ответа зависит всё дальнейшее: куда идти по цепочке и что закрывать первым.
Как выглядит схема со стороны жертвы
Уведомление приходит ночью. Баланс пуст. Токены со счёта списаны, а нативная монета для оплаты газа осталась на месте — картина, которая сбивает с толку сильнее всего. Владелец убеждён, что доступ к ключу никто не получал, и формально он прав: ключ остался при нём, а работал чужой контракт по разрешению, которое владелец подписал неделей или годом раньше.
Второй сценарий выглядит иначе. Тут хуже. Пустеет всё подряд: токены, нативная монета, иногда несколько сетей последовательно. Остатки уходят ровными транзакциями с минутными интервалами, и отправителем везде указан ваш собственный адрес. Это признак утечки самого ключа или seed-фразы.
Третий случай, который встречается в обращениях читателей, — подпись вне цепочки. Пользователь видел окно без суммы и без слова «перевод», подтвердил его, газ не списался, и ничего не произошло. Расход случился позже и от чужого имени. Газ оплатил получатель. Так работает механизм разрешения по подписи, описанный в EIP-2612: владелец подписывает структурированное сообщение, а в сеть его подаёт получатель и платит газ сам.
Признаки, по которым распознаётся подмена
Читать квитанцию стоит в заданном порядке. Сначала инициатор, затем список событий, затем адрес контракта.
В событии перевода токена стандарта ERC-20 три поля: откуда, куда, сколько. Поле «откуда» равно вашему адресу в обоих сценариях — и при краже ключа, и при использовании разрешения. Различает их инициатор транзакции, который указан отдельно и в событии не повторяется. Смотрите на него. Расхождение между инициатором и полем «откуда» — это подпись разрешения, а не кража ключа.
| Что видно в квитанции | Кто инициатор операции | Что было скомпрометировано | Первое действие владельца |
|---|---|---|---|
| Событие перевода токена, поле «откуда» — ваш адрес | Чужой адрес, не совпадающий с вашим | Разрешение на расход токена, выданное ранее одному контракту | Отозвать разрешение по этому токену, остальные активы не трогать |
| Событие выдачи разрешения на максимальную величину | Ваш адрес, подпись поставлена в кошельке | Внимание владельца в окне подтверждения, ключ при нём | Снизить разрешение до нуля до того, как контракт успеет им воспользоваться |
| Серия переводов нативной монеты и токенов подряд | Ваш адрес во всех операциях цепочки | Закрытый ключ или seed-фраза, доступ получен полностью | Перевести остатки на новый кошелёк с новой seed-фразой |
| Газ не списан, транзакции от вашего адреса нет вовсе | Операции в сети не было, была подпись вне цепочки | Структурированное сообщение по EIP-712, подписанное владельцем | Проверить разрешения по всем токенам и сменить адрес расчётов |
Третий маркер — адрес контракта. Контракт с нечитаемым именем, развёрнутый за несколько дней до события и имеющий десятки обращений от разных адресов, — типичная картина дрейнера. Разбор того, как распознать вредоносную подпись транзакции, показывает, какие формулировки в окне подтверждения соответствуют каждому из четырёх случаев таблицы.
Проверка за 60 секунд: что открыть и на что смотреть
- Откройте обозреватель и найдите последнюю операцию по своему адресу. Сравните инициатора и поле «откуда» в событии перевода токена.
- Разверните полный список событий квитанции. Событий обычно больше одного: обмен, перевод, выдача разрешения идут друг за другом.
- Откройте страницу выданных разрешений по своему адресу. Величина, равная максимуму для типа данных, означает бессрочное право расхода всего баланса.
- Посмотрите дату создания контракта-получателя и число уникальных адресов, обращавшихся к нему. Свежий контракт с массовым притоком — сигнал.
- Зафиксируйте идентификаторы операций и время в UTC. Это материал для заявления, и он не изменится.

Пошаговые действия, если деньги уже ушли
Дальше порядок определяется тем, какая строка таблицы совпала с вашей картиной. Сценарии не смешивают. Это важно.
- При сработавшем разрешении остаток обычно сохраняется. Отзовите право расхода по пострадавшему токену, затем пройдите остальные токены того же адреса.
- При утечке ключа адрес считается потерянным навсегда. Новая seed-фраза создаётся на чистом устройстве, остатки переводятся туда, старый адрес больше не используется ни для получения, ни для хранения.
- Соберите выгрузку: идентификаторы операций, адреса, время в UTC, суммы в единицах токена и адрес контракта-получателя.
- Подайте заявление в орган внутренних дел. По статье 144 Уголовно-процессуального кодекса решение принимается в срок до трёх суток, с продлением до десяти, а при документальных проверках — до тридцати суток.
- Если перед инцидентом был перевод с банковской карты, уведомите банк. Признаки операции без добровольного согласия клиента закреплены приказом Банка России от 5 ноября 2025 года № ОД-2506, а статистику по ним регулятор публикует в разделе аналитики по информационной безопасности.
Материал о том, как проследить движение украденных средств и подготовиться к худшему сценарию, разбирает ситуацию, когда цепочка уходит в сервис без идентификации клиентов и дальше не читается.
Как закрыть дыру, чтобы не повторилось
Привычка номер один — разделение адресов по назначению. Два кошелька вместо одного. Адрес для взаимодействия с контрактами держит рабочий минимум, хранение живёт отдельно и не подписывает ничего, кроме переводов.
Вторая привычка — чтение структурированного сообщения перед подписью. Формат EIP-712 существует ровно для того, чтобы кошелёк показал поля в читаемом виде: кто получает право, на какой токен, в каком объёме и до какого срока. Окно без этих полей — повод отказаться, даже если страница выглядит знакомой и ссылка пришла от собеседника, которому вы доверяете.
Третья — ревизия разрешений по календарю, а не по тревоге. Раз в квартал. Без исключений. Четвёртая касается восстановления доступа: схемы с «помощью в восстановлении» идут вторым эшелоном после любого инцидента, и то, как защитить аккаунт от схем с восстановлением доступа, стоит прочитать до первого обращения в поддержку.
Чек-лист
- Инициатор операции и поле «откуда» в событии перевода сверены между собой
- Полный список событий квитанции просмотрен, а не только итоговая сумма
- Выданные разрешения по всем токенам адреса проверены и лишние отозваны
- Возраст контракта-получателя и число обращений к нему зафиксированы
- Сценарий определён: разрешение или утечка ключа, без смешивания
- При утечке ключа создана новая seed-фраза на чистом устройстве
- Выгрузка с идентификаторами и временем в UTC сохранена
- Заявление подано, номер регистрации на руках
Материалы по теме:
- Как распознать вредоносную подпись транзакции — формулировки в окне подтверждения по каждому сценарию
- Как проследить движение украденных средств и подготовиться к худшему сценарию — что делать, когда цепочка обрывается
- Как защитить аккаунт от схем с восстановлением доступа — вторая волна после инцидента
- Как проследить движение украденных средств и оценить остаточный риск — работа с остатком на скомпрометированном адресе
Частые вопросы
Токены ушли, а газ остался — как это возможно?
Расход оплатил тот, кто подавал транзакцию. При работе через выданное разрешение инициатором выступает чужой адрес, он же платит газ, а ваш баланс уменьшается только на величину токена. Нативная монета остаётся нетронутой, и это главный признак сценария с разрешением, а не с утечкой ключа.
Нужно ли менять кошелёк, если сработало разрешение?
Не всегда. Ключ в этом сценарии остался у вас, поэтому адрес сохраняет работоспособность после отзыва прав расхода. Менять адрес стоит тогда, когда вы не можете восстановить историю своих подписей и не уверены, что подписанных вне цепочки сообщений больше не осталось.
Можно ли отменить подпись, которую ещё не подали в сеть?
Саму подпись отозвать нельзя, она уже существует. Но её можно обесценить: подпись содержит счётчик, и любая новая операция с тем же счётчиком делает её недействительной. Практический способ — выдать и сразу отозвать минимальное разрешение по тому же токену, сдвинув счётчик вперёд.
Квитанция показывает десять событий — что из них важно?
Читайте те, что меняют балансы: переводы токенов и выдачи разрешений. Служебные события обмена и обёртки нужны для понимания маршрута, но не говорят о компрометации. Ключевой вопрос по каждому событию один: совпадает ли инициатор операции с адресом, с которого ушли средства.
Вердикт
Квитанция отвечает на вопрос, который без неё обсуждают неделями. Два сценария требуют противоположных действий: при сработавшем разрешении адрес остаётся рабочим после отзыва прав, при утечке ключа он потерян окончательно и любое пополнение уйдёт следом. Ошибка в выборе сценария стоит второго списания. Цена высока. Минута на чтение инициатора и списка событий избавляет от этой ошибки целиком.
Разборы квитанций и предупреждения о свежих контрактах-дрейнерах выходят в нашем Telegram-канале.
Обсуждение
Добавить комментарий