Harmony, открытый и быстрый блокчейн первого уровня, предлагающий двусторонний мост Ethereum, 24 июня подвергся неудачному взлому. Horizon, его кроссчейн-мост к Ethereum, зафиксировал этот эксплойт на сумму почти 100 миллионов долларов в ETH. Хотя платформа остановила пострадавший мост, некоторые вопросы остаются без ответа.

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

Разоблачение владельца, не так ли?

Эксперты по безопасности команды CertiK в блоге, опубликованном 25 июня, общий глубокий анализ с выделением ключевых событий, приведших к ограблению. Wu Blockchain, известное информационное агентство, позже поделилось этой разработкой на своем сайте. Twitter подача.

Предварительный анализ показал, что предполагаемый адрес составлял 11 сделки с моста за различные жетоны. Кроме того, физическое лицо отправило токены другой кошелек для обмена ETH на Uniswap децентрализованная биржа (DEX), затем отправляется ETH вернуться к исходному кошельку.

После некоторого дальнейшее расследование, экспертный анализ выявил 12 транзакций атак и три адреса атак. В рамках этих транзакций злоумышленник получил различные токены на мосту, в том числе ETHUSDC, WBTC, USDT, DAIBUSD, AAG, FXS, SUSHIAAVE, WETH и FRAX.

«Злоумышленник добился этого, каким-то образом контролируя владельца MultiSigWallet, чтобы тот напрямую вызывал метод confirmTransaction() для передачи большого количества токенов с моста на Harmony. Это привело к полной потере активов на сумму около 97 миллионов долларов. Harmony цепочка, которую злоумышленник объединил в один основной адрес».

Это событие произошло в последовательности, показанной ниже.

Цепочка событий

Владелец контракта MultiSigWallet (0xf845a7ee8477ad1fb446651e548901a2635a915) вызвал функцию submitTransaction() для отправки транзакции. Он включает следующую полезную нагрузку для создания идентификатора транзакции 21106 в транзакции.

Источник: Сертик

Далее, в эксплойтной транзакции, владелец вызвал функцию confirmTransaction() из MultiSigWallet с идентификатором входной транзакции 21106. Функция executeTransaction() вызвала внешний вызов с входными данными. Этот шаг активировал функцию unlockEth() в контракте Ethmanager.

Источник: Сертик

Учитывая тот факт, что злоумышленник контролировал полномочия владельца, разблокировка привела к указанному эксплойту cross-bridge. Блог также добавил,

«Злоумышленник выполнил транзакцию с идентификатором 21106, которая перевела 13 100 ETH на адрес злоумышленника».

Но это не так. Предполагаемый хакер продолжил предыдущий процесс, используя другие идентификаторы транзакций в других контрактах ERC20Manager, чтобы передать огромное количество токенов и стейблкоинов ERC20.

В целом, такие инциденты усугубили весь скептический сценарий использования мостов с перекрестными цепями. Ранее в этом году мы стали свидетелями как Ronin Эксплойт моста и эксплойт червоточины.