Новость

Кража 1 млн USDT через фишинг: как работают атаки на approve

8 июля 2026 года анонимный пользователь потерял 999 999 USDT в сети Ethereum, подписав фишинговый approve на токен. Инцидент зафиксировали аналитики Scam Sniffer.

Кража 1 млн USDT через фишинг: как работают атаки на approve

Архитектура вывода: multicall и три транзакции

Атака прошла в два этапа. Сначала злоумышленники попытались вывести ровно 1 млн USDT через multicall-функцию — стандартный пакетный вызов, позволяющий объединить несколько операций в одну транзакцию. Затем остаток вывели тремя отдельными переводами: 639 999 USDT, 159 999 USDT и 200 000 USDT. Суммарный оверхед на газ минимален — это именно тот сценарий, при котором автоматизированный sweeper показывает свою эффективность: одобренный allowance позволяет сливать средства без повторного взаимодействия с жертвой.

Адрес пострадавшего: 0x8c949361b49320c48a51f4b1c6f9f83862530f89. Расчёт на то, что пользователь подпишет approve не глядя, — классическая социальная инженерия, но в обёртке из фейкового dApp-интерфейса.

Контекст: фишинг как доминирующий вектор

Инцидент 8 июля не единичен. 4 июля другой владелец кошелька потерял $1,65 млн после подключения к поддельной бирже и подписания вредоносного контракта. Как отмечает исследователь Райан Коулман, approval предоставил атакующим неограниченный доступ — automated sweeper опустошил кошелёк в автоматическом режиме.

По данным CertiK, за первое полугодие 2026 года криптоиндустрия потеряла $1,32 млрд из-за инцидентов безопасности. В первом квартале фишинг был крупнейшим источником ущерба. Цифра показательна: при всей шумихе вокруг эксплойтов смарт-контрактов и мостов, простейшая социальная инженерия через token approval продолжает генерировать максимальные потери.

Что проверить на практике

Scam Sniffer дают прямолинейные рекомендации: перед подписанием любого запроса на approve проверять адрес контракта, не торопиться с транзакциями и использовать расширения для детекции скама. Но этого недостаточно. Архитектурно единственный надёжный контроль — ревок всех неиспользуемых allowances. Для этого существуют инструменты вроде Revoke.cash или аналогичные.

Практический чек-лист для аудита собственного кошелька:

  • Проверить текущие approvals через Etherscan (вкладка Token Approvals) или Revoke.cash. Любой unlimited allowance на неизвестный контракт — красный флаг.
  • Не подписывать approve на MAX_UINT256, если сумма транзакции это не требует. Кастомный лимит на конкретную сумму снижает потенциальный ущерб.
  • Использовать кошелёк с предпросмотром calldata — строки approve(address,uint256) и setApprovalForAll должны быть видны до подписания. Если интерфейс скрывает их — это повод отказаться.

Фишинг через token approval не требует от атакующего знания Solidity на уровне эксплойта. Нужен фейковый UI, скопированный или хомографный домен и одна подписанная транзакция. С математической точки зрения соотношение затрат и прибыли для злоумышленника асимметрично в его пользу. Пока пользователи продолжают подписывать approve на автомате, этот вектор будет оставаться основным по объёму украденного.

Отслеживать стоит статистику CertiK по итогам второго квартала: если фишинг сохранит лидерство, вопрос к экосистеме — а не пора ли перейти на Permit2 или аналогичные механизмы с ограниченным scope по умолчанию.