19 сентября был скомпрометирован контракт в сети Ethereum, который SingularityNET использовал для конвертации активов. С него вывели 8 721 530 FET стоимостью около $1,55 млн на тот момент. Через 29 минут ключ NuNet для выпуска токенов, не использовавшийся несколько лет, создал 408,5 млн NTX и отправил весь объём на тот же кошелёк. Компания Athena, занимающаяся блокчейн-форензикой, считает, что две операции могли быть скоординированы, однако имеющиеся данные пока не подтверждают, что WMTX пострадал по тому же сценарию.
Позднее Fetch.ai приостановила сервис конвертации AGIX в FET и работу мостового контракта в Ethereum. Компания заявила, что затронутая инфраструктура принадлежит SingularityNET и в основном связана с её мостом Ethereum—Cardano. Собственные контракты Fetch.ai и обычные переводы FET продолжили работать.
Контракт SingularityNET опустошили одной транзакцией
В ходе анализа пострадавшим контрактом был назван TokenConversionManagerV3. Это официальный компонент мостовой системы SingularityNET в сети Ethereum, который блокирует и высвобождает активы. Его верифицированный код совпадает с кодом в публичном репозитории SingularityNET. Контракт также связан с токеном FET, используемым Artificial Superintelligence Alliance.
По версии расследования, причиной потери стал компрометированный ключ авторизации бэкенда, а не обход самого мостового контракта. В атакующей транзакции была действительная подпись адреса, которому контракт уже доверял. Это позволило вызвать функцию conversionIn и перевести все FET, находившиеся на контракте, на кошелёк под контролем злоумышленника.
Конструкция контракта увеличила масштаб одной операции. Ограничение в 1 млн FET действовало только для токенов, выводимых из Ethereum, и не применялось к маршруту conversionIn. Поэтому злоумышленник смог вывести около 8,72 млн FET одной транзакцией. Кроме того, подписанное сообщение не связывало операцию с конечным адресом получателя: любой пользователь с действительной авторизацией мог указать кошелёк для зачисления токенов.
Бездействовавший ключ NuNet выпустил 408,5 млн NTX
Хронология в блокчейне показывает, что в 20:50 UTC 19 сентября, примерно через 29 минут после вывода FET, ключ NuNet для выпуска токенов, не использовавшийся с марта 2023 года, создал 408 532 878 NTX. Все новые токены были отправлены на кошелёк, получивший украденные FET. Этот объём соответствовал примерно 42% заявленного предложения токенов NuNet.
Дополнительная трассировка усилила предполагаемую связь между событиями. В 19:36 UTC, за 45 минут до вывода FET, адрес NuNet, связанный с выпуском токенов, напрямую отправил на конечный кошелёк 0,3667 ETH. Другой аккаунт, связанный со злоумышленником, перевёл на тот же адрес 24,3 млн NTX.
До опустошения мостового контракта FET токены NTX уже начали перемещаться через инфраструктуру свопов MetaMask. Это указывает на то, что переводы и попытки монетизации с использованием двух наборов скомпрометированных учётных данных могли начаться ещё до основного вывода FET.
Продажи NTX столкнулись с нехваткой ликвидности
Затем злоумышленник начал обрабатывать оба токена. Большая часть украденных FET была обменена на ETH через инфраструктуру свопов MetaMask, а более 217 млн выпущенных NTX продали через децентрализованные площадки с ликвидностью. Примерно к 01:10 UTC 20 сентября на основном кошельке находилось 547,89 ETH стоимостью около $1,44 млн, а также примерно 230 млн NTX.
Дальнейшие продажи NTX быстро ограничила низкая ликвидность. Четыре транзакции общим объёмом 38,55 млн NTX увеличили баланс злоумышленника всего примерно на 0,30 ETH, поскольку доступная ликвидность в пулах резко сократилась. Отдельная операция на 10 млн NTX прошла через Mayan Protocol и в итоге принесла около 940 USDT, использованных для межсетевого перевода.
Рыночные котировки также резко изменились. NTX торговался по $0,00053, прибавляя 780,38% за 24 часа; ETH стоил $2 747,34, подорожав на 4,23%; связанный с SingularityNET токен AGIX торговался по $0,08, снизившись на 0,47%. Эти значения отражают состояние рынка после инцидента и сами по себе не показывают, что выпуск токенов или связанные с ним потери полностью урегулированы.
Bitvavo остановила операции с WMTX, но связь не доказана
Позднее инцидент затронул WMTX. 20 сентября криптобиржа Bitvavo приостановила ввод и вывод WMTX, сославшись на продолжающийся инцидент безопасности, связанный с токеном, а затем временно остановила и торговлю. Биржа заявила, что средства клиентов остаются в безопасности.
Исторические материалы SingularityNET указывают, что WMTX, FET и NTX использовали инфраструктуру, связанную с её мостовой экосистемой Ethereum—Cardano. Однако проведённый к настоящему моменту анализ подробно рассматривает операции с FET и NTX и не устанавливает, что WMTX пострадал из-за той же уязвимости или тех же учётных данных. Cardano торговался по $0,24, прибавляя 6,75% за 24 часа.
Смена ключей определит восстановление сервисов
Fetch.ai сообщила, что сотрудничает с SingularityNET в расследовании и приостановила соответствующие сервисы конвертации на время проверки. Первые часы отслеживания показали, что примерно через пять часов после атаки адрес авторизации моста FET и учётные данные NuNet для выпуска токенов ещё не были заменены или отозваны. К этому моменту контракт моста FET уже был опустошён и прекратил работу.
Статус этих учётных данных остаётся ключевым условием для восстановления сервисов. Если тот же адрес авторизации по-прежнему считается доверенным контрактом, пополнение ликвидности в контракте конвертации FET может оставить возможность для нового вывода по подписанной операции. NuNet также должна устранить риск дальнейшего выпуска NTX с использованием скомпрометированного кошелька.
К основным операционным сигналам относятся сроки восстановления Fetch.ai конвертации AGIX в FET и сервисов моста в Ethereum, а также подтверждение смены соответствующих ключей. Bitvavo заявила, что торговля и переводы WMTX останутся ограниченными на время проверки. Решение биржи о возобновлении операций и прогресс в обеспечении безопасности ключей определят, когда затронутые сервисы смогут вернуться к работе.