Анализ взлома моста BSC Token Hub на миллион долларов

Исходный узел: 1721512

Время Читать: 4 минут

Резюме:

7 октября 2022 года произошел эксплойт, затронувший нативный межсетевой мост под названием «BSC Token Hub». Ошибка находится в верификаторе доказательства моста. В общей сложности было снято 2 миллиона BNB, и Binance временно приостановила работу сети BSC, чтобы предотвратить дальнейший ущерб. Средства, снятые с BSC, оцениваются в 100-110 миллионов долларов.

Введение в Binance Smart Chain и Token Hub Bridge:

Binance Smart Chain (BSC) — это сеть на основе блокчейна, используемая для запуска приложений, основанных на смарт-контрактах. BSC работает параллельно с собственной сетью Binance Chain (BC) Binance, позволяя пользователям воспользоваться преимуществами быстрой транзакционной способности BC, а также функциями смарт-контрактов BSC.

  • Сеть маяков BNB (ранее Binance Chain) – Управление сетью BNB (стейкинг, голосование)
  • Смартчейн BNB (BSC) (ранее Binance Smart Chain) – Совместимость с EVM, уровни консенсуса и концентраторы для мультичейнов.

Проверьте наши гайд Больше подробностей.

Токен-хаб BSC:

Токен-хаб BSC — это кроссчейн-мост между цепочкой маяков BNB (BEP2) и цепочкой BNB (BEP20 или BSC). Проверьте официальный документации Binance для более подробной информации.

Анализ уязвимостей и влияние:

Детали транзакции атаки:

Адрес хакера: 0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec

1-й Txn-хэш: 0xebf83628ba893hd35b496121fb8201666b8e09f3cbadf0e269162baa72efe3b8b

2-й транзакционный хэш: 0x05356fd06ce56a9ec5b4eaf9c075abd740cae4c21eab1676440ab5cd2fe5c57a

Контракт токен-хаба BSC: 0x0000000000000000000000000000000000001004

Исходный хэш Txn (с высотой блока 110217401): 0x79575ff791606ef2c7d69f430d1fee1c25ef8d56275da94e6ac49c9c4cc5f433

Ошибка:

BSC Token Hub использует предварительно скомпилированный контракт для проверки деревьев IAVL (Immutable AVL) при выполнении проверки транзакций между цепочками. Эксплуататор использовал ошибку в логике проверки доказательства, адаптировав законное доказательство, чтобы заставить мост чеканить 2M BNB.

Первопричина видимо в этом линия:

Проблема в том, что lpath.Right может не использоваться при вычислении корневого хэша дерева.

Чтобы исправить это, строка должна измениться

От:

```
if !bytes.Equal(derivedRoot, lpath.Right) ...

что-то вроде:

«`

к:

```
expectedHash := lpath.Left
 if len(lpath.Left) == 0 {
   expectedHash = lpath.Right }
 if !bytes.Equal(derivedRoot, expectedHash) ...

«`

Атака:

1. Злоумышленник использовал хэш успешно отправленного блока, созданного 2 года назад (указанный блок: 110217401), для создания полезной нагрузки в виде конечного узла для проверки дерева IAVL. Оригинальные детали транзакции этого можно найти здесь.

2. Злоумышленник внедрил листовой узел, содержащий в качестве ключа текущую последовательность пакетов и в качестве значения злонамеренный хэш полезной нагрузки (т. е. отчеканил 1 миллион BNB на свой адрес). Затем добавил к листу пустой внутренний узел, чтобы удовлетворить доказательству реализации.

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

4. После успешной отправки транзакции и получения 1 млн долларов США в BNB. Злоумышленник повторил шаги еще раз и получил дополнительный 1 миллион BNB. Общая сумма которых составила 2 миллиона BNB, то есть 570 миллионов долларов.

Злоумышленник 17 раз пытался добыть 1 млн BNB, но 15 раз потерпел неудачу, и он добыл только 2 млн BNB. Причина этого заключалась в том, что у них была конкуренция с другими законными транзакциями, которые опережали tx эксплуататора, используя ту же самую packageSequence.

После эксплойта:

Через несколько часов после атаки генеральный директор Binance CZ объявил об инциденте через твит и остановил сеть BSC, чтобы предотвратить дальнейший ущерб.

Через несколько часов Binance исправила проблему в последней версии v1.1.15. Он заблокировал поток средств злоумышленников, занеся адрес злоумышленника в черный список.

Binance внесла адрес злоумышленника в черный список в недавнем совершать.

Статус средств:

Текущие активы, находящиеся у злоумышленника в разных цепочках:

Поток средств:

Image Source: https://twitter.com/BeosinAlert/status/1578290676793384961/photo/1

Дополнительная ссылка/кредит:

https://github.com/emilianobonassi/bsc-hack-analysis-2022-10-06


Безопасность Web3 — потребность часа

Почему QuillAudits для безопасности Web3?

QuillAudits хорошо оснащен инструментами и опытом для предоставления решений в области кибербезопасности, спасая от потери миллионов средств.

9 Просмотры

Отметка времени:

Больше от Квиллхэш