February 26

Bybit. Отчёт о взломе №01. Перевод

Bybit - чудаки на м, которым всё мало

Перевод

Сам отчёт: QmZ13YHHrajNtmscZY4FT9S881KURdaGpGfsBZX8eeuyxd - на английском языке.

Суть

Итак, Bybit опубликовали отчёты о взломе и... тут же их закрыли:

Отчёт закрыт

Но кто ищет - тот всегда найдёт. Пойдём по порядку. Начнём вот с этого:

Обложка отчёта

Отчёт Bybit о промежуточном расследовании

1. Общая информация

21 февраля 2025 года Bybit обнаружила несанкционированную активность, связанную с одним из своих ETH-холодных кошельков.

Инцидент произошёл во время проведения мультиподписной транзакции ETH через Safe{Wallet} из "холодного" кошелька в "тёплый".

В этот момент злоумышленник вмешался и изменил параметры транзакции, получив контроль над активами и переведя их на свой кошелек.

Компания Sygnia была привлечена Bybit для проведения судебного расследования, определения первопричины атаки, выявления источника и масштаба компрометации, а также для минимизации текущих и будущих рисков.

1.1 Ключевые выводы

Проведенное расследование выявило следующие факты:

  • Анализ всех устройств, использовавшихся для инициирования и подписания транзакции, показал, что в JavaScript-код, загружаемый из AWS S3-буфера Safe{Wallet}, была внедрена вредоносная модификация.
  • По временным меткам изменения файлов и архивам веб-страниц установлено, что вредоносный код был добавлен непосредственно в S3-буфер Safe{Wallet}.
  • Анализ кода показал, что его основной задачей было изменение содержимого транзакции во время подписания.
  • Код активировался только в случае, если источник транзакции совпадал с одним из двух контрактных адресов: контрактным адресом Bybit или неизвестным адресом, вероятно, связанным с тестовым контрактом злоумышленника.
  • Через две минуты после выполнения вредоносной транзакции новые версии JavaScript-файлов были загружены в S3-буфер Safe{Wallet} уже без вредоносного кода.
  • Все признаки указывают на то, что атака была инициирована через инфраструктуру Safe{Wallet}.
Компрометации инфраструктуры Bybit на данный момент не выявлено.

2. Технические выводы

2.1 Кэш браузера Chrome

Файлы кэша браузера Chrome, сохранённые на устройствах всех трёх подписантов транзакции, содержали JavaScript-ресурсы, загруженные в момент подписания.

Анализ этих файлов показал, что JavaScript-код, загруженный из AWS S3 Safe{Wallet} 21 февраля 2025 года, в последний раз изменялся 19 февраля 2025 года — за два дня до атаки.

2.2 Внедрение вредоносного JavaScript-кода

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

Код был настроен на срабатывание только при отправке средств на определенные контрактные адреса (адрес Bybit и неизвестный адрес).

После атаки злоумышленники быстро загрузили новую версию скриптов, удалив вредоносные изменения.

2.3 Текущее состояние AWS S3-буфера Safe{Wallet}

В момент расследования вредоносный код отсутствовал в S3-буфере Safe{Wallet}.

Установлено, что файлы JavaScript были изменены в AWS S3 21 февраля 2025 года в 14:15:13 и 14:15:32 UTC – примерно через две минуты после атаки.

2.4 Архивы веб-ресурсов Safe{Wallet}

Анализ общедоступных интернет-архивов показал наличие двух снимков JavaScript-ресурсов Safe{Wallet} от 19 февраля 2025 года.

В первом снимке содержался оригинальный безопасный код.

Во втором снимке уже присутствовал вредоносный код, что указывает на его добавление непосредственно через инфраструктуру Safe{Wallet}.

3. Заключение

Проведенное расследование подтверждает, что источник атаки находился в инфраструктуре Safe{Wallet}.

Компрометации инфраструктуры Bybit не выявлено.


Расследование продолжается для окончательной проверки всех выводов.

Menaskop

Проще говоря:

  1. Атака была только на кошелёк Bybit: об этом свидетельствует проверка;
  2. Только на компьютерах Bybit: об этом указано в отчёте;
  3. Проверки никакие дополнительные не проводились - только через 1 интерфейс, хотя это противоречит принципам, внедрённым после Radiant-взлома.
  4. Но виноваты Safe, но не Bybit.

Смотрим дальше...

До!