Поломка: как хакер украл 80 тысяч ETH с моста Солана-Червоточина PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Разбивка: как хакер украл 80 тысяч ETH с моста Solana Wormhole

Один из худших взломы против блокчейна Solana произошло в среду, когда хакеру удалось перевести 80,000 214 эфиров (ETH), более XNUMX миллионов долларов на момент написания статьи, из системы Solana в блокчейн Ethereum через мост червоточины — услугу, предоставляющую возможность передачи средства между разными блокчейнами.

Объяснено в твите нить по псевдонимному профилю в Твиттере смартконтракты, хакер доработал эксплойт, переведя 80,000 XNUMX ETH из смарт-контракта червоточины на Ethereum за один раз. сделка. Как оказалось, это был лишь последний шаг в серии взломов, позволивших хакеру украсть средства. 

«Несмотря на то, что это драматично, эта сделка является лишь самым концом интересной серии событий. Мне пришлось начать работать в обратном направлении, чтобы понять, как это вообще возможно», — говорится в твиттере смартконтрактов.

Опекуны подписали ложный перевод

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

Стражи червоточины каким-то образом подписали этот перевод 80,000 100 ETH, как будто он был на XNUMX% законным.

«Транзакция, которая вывела 80,000 XNUMX ETH на самом деле злоумышленник перевел 80,000 XNUMX ETH из Соланы в Ethereum. Первоначально я думал, что в контракте могли быть неправильно подтверждены подписи при передаче, но подписи [были] полностью проверены».

Согласно смарт-контрактам, первый прорыв и частичное объяснение пришли из сделка на Солане, которая каким-то образом накопала 120,000 XNUMX «Червоточины ETH», обернув эфир на Солане из ниоткуда. Так как хакер смог добыть эфир червоточины на Солане, он смог корректно вывести его обратно в Эфириум.

«Солана какая-то странная»

Изучая историю транзакций хакера, мы обнаружили транзакцию, которая произошла прямо перед чеканкой 120,000 XNUMX червоточин ETH. В этом сделка, хакер чеканит только 0.1 червоточины ETH, как будто хакер тестировал функцию с небольшой суммой.

Дальнейшее изучение истории транзакций хакера показывает, что хакер действительно совершил пополнять счет 0.1 ETH из Ethereum в Solana. Хотя злоумышленник не вносил депозит в размере 120,000 XNUMX ETH в смарт-контракт Wormhole на Ethereum, в этом депозите есть кое-что интересное.

Как смартконтракт объясняет в своем твите, транзакции, которые чеканили червоточину ETH на Солане, запускали смарт-контракт червоточины. функция под названием "Complete_wrapped“. Одним из параметров, которые принимает эта функция, является «сообщение о передаче». сообщение подписанный хранителями моста, в котором говорится, какой жетон чеканить и сколько.

«Солана довольно странная, так что эти параметры сами по себе являются смарт-контрактами. Но важно то, как создаются эти контракты «передачи сообщений». Вот сделка это сделало сообщение о переводе 0.1 ETH», — говорится в твиттере смартконтрактов.

Кто проверяет шашки?

Этот контракт «передача сообщения» создается путем запуска функция под названием "post_vaa“. Самое главное, что post_vaa проверяет валидность сообщения, проверяя подписи хранителей. Эта часть кажется достаточно разумной, говорят смартконтракты, но именно этот шаг проверки подписи сломал все.

Функция «post_vaa» на самом деле не проверяет подписи. Вместо этого, в типичной для Соланы манере, есть еще один смарт-контракт, который создается путем вызова «Verify_signatures функция Одна из затраты к функции «verify_signatures» — это встроенная «системная» программа Solana, которая содержит различные утилиты, которые может использовать контракт.

В «verify_signatures» программа червоточины пытается проверить, что выполнение, которое произошло непосредственно перед запуском этой функции, секп256к1 выполнена функция проверки подписи.

«Эта функция проверки является встроенным инструментом, который должен проверять правильность данных подписей. Таким образом, проверка подписи была передана этой программе. Но вот тут-то и возникает ошибка», — говорится в твиттере смартконтрактов.

Контракты червоточины использовали функцию load_instruction_at чтобы убедиться, что функция Secp256k1 была вызвана первой, но функция load_instruction_at устарела относительно недавно, потому что она не проверяет, что он выполняется по фактическому системному адресу!

Game Over

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

Вот этот системный адрес, используемый в качестве входных данных для «verify_signatures» для законного депозита в 0.1 ETH:

Правильный ввод системного адреса
Правильный ввод системного адреса

Но вот транзакция «verify_signatures» для поддельного депозита в 120 тыс. ETH:

Ввод системного адреса
Ввод ложного системного адреса 

Это не системный адрес!

«Используя эту «фальшивую» системную программу, злоумышленник мог эффективно солгать о том, что программа проверки подписи выполнялась. Подписи вообще не проверялись!», — говорится в твиттере смартконтрактов.

«После этого момента игра была окончена. Злоумышленник сделал вид, что стражи подписали депозит в 120 тысяч в Червоточине на Солане, хотя это не так. Все, что нужно было сделать злоумышленнику сейчас, — это сделать свои «игровые» деньги реальными, выведя их обратно в Ethereum. И один вывод 80 10 ETH + XNUMX XNUMX ETH позже (все в бридже на Ethereum), все исчезло».

Эвердоум

Информационный бюллетень CryptoSlate

Содержит краткое изложение самых важных ежедневных новостей в мире криптовалюты, DeFi, NFT и многого другого.

Получить край на рынке криптоактивов

Получите доступ к дополнительным сведениям о криптовалюте и контексту в каждой статье в качестве платного участника Край КриптоСлейт.

Ончейн анализ

Снимки цен

Больше контекста

Присоединяйтесь сейчас за 19 долларов в месяц Узнайте обо всех преимуществах

Источник: https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

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

Больше от CryptoSlate