Hackers drain 9,400 SOL from bot wallets, and a copied key is blamed
Краткий обзор
- Компания Bitquery сообщает об утечке 9408 SOL с 48 кошельков, связанных с сервисом Bloom, включая кошельки, которые долгое время не использовались через бота.
- Компания Bloom задокументировала механизм блокировки адреса вывода средств, но настройки пострадавших пользователей неизвестны, и только подписи владельцев не могут подтвердить кражу ключа.
- Компания Bloom опровергла факт компрометации ключей и объявила о полном возмещении убытков, в то время как точный способ получения доступа к полномочиям для управления кошельком остается неясным.
Согласно данным, полученным компанией Bitquery, 48 кошельков, связанных с сервисом автоматической торговли Bloom, потеряли 9408 SOL в результате транзакций, подписанных собственными ключами этих кошельков.
Компания Bloom задокументировала механизм блокировки, который предотвращает изменение адреса вывода средств, однако скопированный ключ может авторизовать транзакции за пределами интерфейса этого сервиса.
В обновлении от 26 октября, компания Bloom заявила, что к частным ключам не было доступа и они не были скомпрометированы. Компания объяснила произошедшее уязвимостью в модуле стороннего разработчика и заявила, что кошельки, не подвергшиеся воздействию, находятся в безопасности.
Позднее, 26 октября, компания Bloom объявила о полном возмещении убытков всем девяти пострадавшим пользователям, заявив о возмещении общей суммы в 9408 SOL и указав девять транзакций.
Таким образом, для пользователей остаются две отдельные проблемы: компенсация убытков и механизм, который мог переводить средства с кошелька.
Что контролирует механизм блокировки вывода средств
В разделе часто задаваемых вопросов компании Bloom пользователям рекомендуется блокировать адрес вывода средств, поскольку, согласно информации, адрес не может быть изменен в заблокированном состоянии, а разблокировка запускает 24-часовой период ожидания, прежде чем будут разрешены изменения.
В руководстве по выводу средств функции "Установить адрес", "Заблокировать адрес" и "Разблокировать адрес" находятся в меню "Вывод", доступном с главного экрана или через команду "/withdraw". Задокументированный механизм защиты задерживает замену адреса, используемого в этом процессе.
Блокировка создает препятствие для злоумышленников, получивших доступ к учетной записи сервиса, и предотвращает перенаправление вывода средств через этот процесс.
На главной странице продукта говорится, что продукты "Extension", "Manager" и "Telegram" используют один и тот же механизм выполнения. При использовании одного и того же ключа кошелька через разные интерфейсы, он сохраняет те же права доступа к средствам.
Согласно данным компании Bitquery, утечка средств произошла в период с 01:03:07 до 01:04:41 UTC 26 октября. Каждая транзакция представляла собой простую передачу SOL, подписанную только ключом затронутого кошелька, без использования второго подписанта или одобрения токена.
Документация по транзакциям от Solana Foundation объясняет, что транзакция содержит инструкции, подписи от аккаунтов, авторизующих изменения, и хэш последнего блока. В руководстве по подписи говорится, что каждый необходимый участник должен предоставить действительную подпись.
Для кошелька, контролируемого одним приватным ключом, владение этим ключом дает контроль над его средствами. Злоумышленник, скопировавший этот ключ, может создать новый перевод на другой адрес, не изменяя адрес вывода, сохраненный в торговом сервисе.
Функция блокировки вывода на 24 часа от Bloom предотвращает изменения адреса, но скопированный приватный ключ все равно может авторизовать переводы из обычного кошелька.
Руководство Solana различает владение локальным ключом и запрос подписей через систему управления ключами или управляемый кошелек. Действительная подпись от владельца ключа может быть связана со скопированным материалом ключа или ненадлежащим использованием пути подписи.
Подписи от владельца ключа, описанные Bitquery, сосуществуют с отрицанием со стороны Bloom о компрометации приватного ключа. Определение того, какой путь подписи был использован, позволит установить, связана ли инцидент с копированием секретного ключа или с доступом к системе, которая могла его использовать.
Где сохраняется право подписи
Возраст затронутых кошельков указывает на то, что последствия инцидента выходят за рамки активных пользователей ботов. Bitquery обнаружила, что 24 из 48 кошельков не платили комиссию Bloom за торговлю в течение предыдущего месяца, в то время как пять из них последний раз платили комиссию в период с января по май 2025 года.
Bitquery связала все 48 кошельков с Bloom на основе предыдущих платежей комиссий и сгруппировала их в девять групп трейдеров. Компания признала, что две из этих групп в основном используют функцию вывода средств.
Если кто-то скопировал контролирующий ключ, длительная пауза в торговле не помешает ему подписать новый перевод, пока на кошельке остаются средства.
Отдельный случай взлома TradeWiz является примером постоянной уязвимости в системе подписи, но не устанавливает общей причины с инцидентом в Bloom. Bitquery датирует основную операцию вывода средствами 30 сентября и сообщает о 20 793 кошельках, с которых были выведены средства в SOL.
Торговля с использованием ботов, оплачивающая комиссию, прекратилась через 41 минуту после начала операции вывода средств, но Bitquery сообщает, что бот забрал 73% SOL, оставшихся после основной операции вывода.
Также сообщается, что два адреса TradeWiz, с которых были выведены средства, получили новые депозиты и были опустошены повторно в течение четырех секунд. Пополнение адреса после того, как его контролирующий ключ был скомпрометирован, может передать новые средства под контроль того же злоумышленника.
Если единственный контролирующий ключ был скомпрометирован, перенос активов на новый кошелек, управляемый нескомпрометированным ключом, выводит эти активы из-под контроля старого ключа.
Необходимо хранить новый ключ в месте, недоступном для злоумышленника, поскольку импорт одного и того же секретного ключа в другое приложение сохраняет те же права доступа, как и возврат средств на старый адрес.
Изменение доступа к сервису и изменение контроля над активами имеют разные последствия. Блокировка транзакций может по-прежнему защищать процесс вывода средств из сервиса, в то время как исправление на стороне сервиса может устранить скомпрометированный путь подписи. Ни одно из этих действий не может удалить копию закрытого ключа, которая уже хранится в другом месте.
В своем заявлении о возмещении ущерба компания Bloom сообщила, что средства будут направлены в защищенные кошельки, указанные затронутыми пользователями, а в последующем объявлении было сказано, что возмещение было завершено.
Для пользователей, оценивающих старый кошелек, ключевое различие заключается в том, изменили ли они место входа в систему или полномочия, управляющие активами. Если ключ был скопирован, новый интерфейс сохраняет прежние уязвимости. Свежий, нескомпрометированный ключ меняет того, кто может авторизовать следующую транзакцию.
Контекст статьи.