Криптоинвестор под именем Alex сообщил, что потерял 1 904 513 FXRP — примерно $2,1 млн по оценке на момент инцидента. По его словам, путь к атаке начался с обычного вопроса ChatGPT: где обменять sFLR на WFLR. В ответе оказалась ссылка на сайт, имитировавший сервис Sceptre.

В материале
  1. Что произошло 12 июня
  2. Что удалось проследить
  3. Почему unlimited approve опаснее обычного перевода
  4. Источники

Важно разделить два события. Переход по ссылке сам по себе не вывел токены. Деньги стали доступны злоумышленнику после того, как пользователь подключил кошелёк и подписал unlimited approve — неограниченное разрешение стороннему контракту расходовать FXRP.

Как фишинговая ссылка привела к выводу FXRP

Что произошло 12 июня

Согласно опубликованному Alex описанию, он задал вопрос на русском языке и увидел среди вариантов домен sceptre.network. Легитимный сервис Sceptre работает на другом домене — sceptre.fi. Поддельная страница использовала знакомое название и предлагала подключить кошелёк для обмена.

После подключения сайт запросил approve. В сетях, совместимых с Ethereum, такое действие не переводит активы немедленно. Оно записывает в блокчейн разрешение: выбранный адрес или смарт-контракт сможет позже списывать токены через функцию transferFrom. Если лимит не ограничен, под угрозой оказывается весь доступный баланс этого токена.

Именно это, по словам пострадавшего, и случилось. Через несколько секунд после подписи контракт вызвал transferFrom и вывел 1 904 513 FXRP. FXRP — это представление XRP в экосистеме Flare, которое можно использовать в приложениях децентрализованных финансов.

Что удалось проследить

Блокчейн-исследователь VAL изучил движение средств и оценил общий объём, прошедший через связанную фишинговую инфраструктуру, более чем в $2,2 млн. По его данным, часть активов обменивали через OpenOcean на DAI и ETH, а 50 ETH затем отправили в Tornado Cash. Это сервис смешивания транзакций, усложняющий связь между входящими и исходящими переводами.

При этом история о происхождении ссылки держится на сообщениях пострадавшего и опубликованной фотографии экрана. OpenAI публично не подтверждала конкретный инцидент. VAL позже повторил похожие запросы к ChatGPT на нескольких языках и не смог снова получить тот же фишинговый адрес. Это не опровергает рассказ Alex, но не позволяет независимо воспроизвести ошибочный ответ.

Почему unlimited approve опаснее обычного перевода

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

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

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

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

Источники