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

Разрешение на списание — это запись в контракте токена, которая позволяет указанному адресу тратить ваши средства в пределах заданного лимита без вашей отдельной подписи на каждую операцию. В стандарте ERC-20 эта запись называется allowance, живёт до тех пор, пока владелец не обнулит её своей транзакцией, и не зависит ни от смены пароля на площадке, ни от переустановки приложения кошелька на новом устройстве.

Как выглядит схема со стороны жертвы

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

Второй слой истории — разрешения. Здесь механика другая. Дрейнер действует иначе: он выводит владельца на страницу, где подпись меняет allowance, а не отправляет средства. Отсюда и расхождение, которое читатели замечают поздно: отравление адреса крадёт одну отправку, а выданное разрешение держит дверь открытой месяцами и срабатывает в момент, когда на кошельке появляется остаток. Chainalysis в разборе от 23 октября 2024 года зафиксировала 82 031 подсеянный адрес и 2 774 кошелька, с которых средства ушли на подделки, при суммарных потерях жертв в 69,7 млн долларов.

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

Признаки, по которым распознаётся подмена

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

Тип доступа или записи Что получает другая сторона Как снимается Чего снятие не отменяет
Разрешение approve с конечным лимитом на один токен. Право списывать этот токен в пределах указанной суммы, повторно до исчерпания лимита. Транзакция, устанавливающая лимит в ноль для этого получателя. Списания, которые прошли до обнуления лимита.
Разрешение approve с предельно большим лимитом. Право списывать весь будущий баланс токена, включая средства, полученные позже. Та же транзакция обнуления, но её приоритет в списке — первый. Аналогичные разрешения в других сетях на тот же адрес кошелька.
Разрешение setApprovalForAll для коллекции NFT. Право распоряжаться всеми предметами коллекции на кошельке, текущими и будущими. Вызов того же метода с параметром «ложь» для оператора. Предметы, уже переведённые оператором на другой адрес.
Подписанное разрешение permit по стандарту EIP-2612. Готовую подпись, которую любой адрес может предъявить контракту вместо транзакции approve. Расход счётчика nonce собственной операцией permit либо истечение срока deadline. Кнопка отзыва разрешений в интерфейсе: подписи вне состояния контракта она не видит.
Активная сессия подключения кошелька к сайту. Право запрашивать у кошелька новые подписи без повторного сканирования кода. Разрыв сессии в разделе подключений кошелька. Разрешения, которые были выданы в течение этой сессии.

Проверка за 60 секунд: как распознать отравление истории адресов и убрать лишние доступы

Схема из шести шагов: снимок состояния, карта разрешений по сетям, сортировка по риску, обнуление лимитов, разрыв сессий и ключей, повторная сверка через сутки
Схема из шести шагов: снимок состояния, карта разрешений по сетям, сортировка по риску, обнуление лимитов, разрыв сессий и ключей, повторная сверка через сутки

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

  1. Откройте журнал операций и найдите входящие записи на нулевую сумму или на пыль. Это кандидаты на подсев.
  2. Сверьте адрес получателя предстоящего перевода с документом вне кошелька, целиком, включая середину строки.
  3. Постройте карту разрешений кошелька по каждой сети, где он использовался. Один адрес живёт в нескольких сетях одновременно.
  4. Отметьте в карте неограниченные лимиты и разрешения на целые коллекции. Они идут первыми на отзыв.
  5. Откройте в кошельке список подключённых сайтов и разорвите сессии, которые не нужны сегодня.
  6. Проверьте на площадках доверенные устройства и активные ключи доступа к интерфейсу торговли.
Стандарт EIP-2612, опубликованный 13 апреля 2020 года, вводит метод permit с полями owner, spender, value, nonce и deadline. Подпись по схеме EIP-712 заменяет транзакцию approve, и предъявить её контракту может любой адрес. Отсюда практический вывод: подписанное разрешение не исчезает после обнуления allowance в интерфейсе, потому что живёт не в состоянии контракта, а в руках того, кому подпись передана.

Пошаговые действия, если деньги уже ушли

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

  1. Сохраните хеши: входящей пылевой записи, подписи, которая выдала разрешение, и исходящего списания.
  2. Снимите карту разрешений в текущем виде и сохраните её файлом с датой.
  3. Обнулите лимиты, начиная с неограниченных, и разорвите все активные сессии подключений.
  4. Переведите остаток на кошелёк, созданный на другой seed-фразе. Старый адрес после утечки подписи считается скомпрометированным.
  5. Подайте заявление в полицию; обращение в электронной форме принимают на официальном сайте МВД, срок рассмотрения — 30 дней по Федеральному закону от 02.05.2006 № 59-ФЗ.
Отзыв разрешения — это транзакция, и она требует газа в нативной монете сети. Если на кошельке газа нет, а разрешение неограниченное, отзыв не пройдёт: пополнять такой кошелёк приходится точной суммой под одну операцию, и редакция рекомендует делать это после переноса остатка, а не до. Возврата средств не обещает ни один инструмент, включая платные сервисы с таким названием.

Как закрыть дыру, чтобы не повторилось

Гигиена доступов строится на одном принципе: право тратить выдаётся под конкретную операцию и снимается после неё. Четыре привычки закрывают оба сценария сразу, и ни одна из них не требует ни покупки оборудования, ни платных подписок на мониторинг.

Чек-лист

  • Пылевые входящие записи помечены и не используются как источник адресов.
  • Карта разрешений построена по всем сетям, где работал кошелёк.
  • Неограниченные лимиты обнулены первыми.
  • Разрешения на целые коллекции NFT сняты.
  • Активные сессии подключений разорваны.
  • Доверенные устройства и ключи доступа на площадках проверены.
  • Остаток переведён на кошелёк с другой seed-фразой, если подпись утекла.
  • Снимок карты разрешений сохранён с датой как эталон для следующей сверки.

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

Отзыв разрешения вернёт списанные токены?

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

Можно ли отозвать все разрешения одной транзакцией?

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

Помогает ли смена seed-фразы от отравления истории адресов?

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

Как понять, что лимит выдан «на весь баланс»?

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

Фоновую фактуру по необратимым списаниям держат регулятор и аналитики маршрутов: сообщение Банка России об операциях без добровольного согласия клиентов за I квартал 2026 года и разбор кампании отравления адресов от Chainalysis. По обзору Банка России, опубликованному 14 мая 2026 года, за I квартал 2026 года банки отразили 16 776 474 попытки хищения на сумму около 1,81 трлн рублей, а доля возмещённых средств по состоявшимся операциям составила 5,7%. Данные в материале проверены на 14 октября 2026 года.

Вердикт

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

Новые схемы и разборы инцидентов — в Telegram-канале Cryptium.