Возможно взломать мост Connext! Более 70 XNUMX XNUMX участников

TLDR: группа исследователей Sayfer обнаружила новую потенциальную уязвимость в смарт-контрактах межсетевого моста Connext. Похоже, что их система вознаграждения для маршрутизаторов (пользователей, которые делают возможными переводы в цепочках отправки и получения) чувствительна к опережению. Действительно, только в блокчейне Ethereum мы обнаружили более 1000 транзакций MEV на общую сумму 70 тысяч долларов украденных сборов.

Возьми меня к техническим деталям.

Web3 — это экстраординарное и революционное видение всемирной паутины, которое предлагает нам множество новых возможностей. Однако, как и все новое, у него есть хорошие и плохие стороны, и знаменитая война между белыми и черными шляпами не щадит web3. Несомненно, web3 стал новой площадкой для хакеров.

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

Что такое Коннект?

Connext — это платформа, основанная на блокчейне Ethereum, которая позволяет пользователям проводить транзакции в различных сетях, совместимых с Ethereum. Connext выполняет свою функцию без использования какого-либо внешнего валидатора. Он работает через некастодиальный протокол передачи Xchain (NXTP) для своих межсетевых переводов.

Соедините архитектуру

NXTP — это простой протокол для полностью некастодиальных переводов между сетями и контрактных вызовов. Ключевым выводом этого протокола является то, что вся информация, необходимая для обеих сторон, доступна в сети

Каждый раз, когда кто-то переводит деньги из одного блокчейна в другой, происходят три шага:

  1. Выбор маршрута: Пользователи выбирают цепочки и активы и начинают аукцион с информацией о передаче. Маршрутизаторы предлагают завершить передачу в пределах диапазона времени/цены.
  2. Подготовить: Пользователи отправляют транзакцию на контракты NXTP в цепочке отправки. Увидев событие контракта, маршрутизаторы блокируют ликвидность в принимающей цепочке.
  3. Выполнить: Пользователи предоставляют подпись, чтобы разблокировать средства в принимающей цепочке, а маршрутизаторы используют раскрытую подпись, чтобы требовать ликвидности в отправляющей цепочке.

Что такое опережение?

Опережение — это действие по размещению транзакции в очереди со знанием будущей транзакции. Опережение на блокчейн-платформе обычно происходит, когда майнер, имеющий доступ к информации о незавершенных транзакциях, размещает заказ, который принесет ему или ей прибыль на основе незавершенной сделки. Например, в блокчейне Ethereum опережение может произойти, когда боты могут указать более высокую цену газа, чем ожидающая сделка, тем самым ускоряя ее обработку. В основном это происходит по арбитражным причинам.

Мемпул — это набор транзакций Ethereum, которые были переданы в сеть и ожидают упаковки в блоки. Это предпосылка для реализации опережающего.

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

Максимальная (или майнерская) извлекаемая стоимость (MEV) относится к прибыли, которую майнеры и другие организации могут получить, используя прозрачность блокчейна для проведения прибыльных транзакций до их подтверждения.

Технические детали

У роутеров есть два источника дохода: аукционные сборы и сборы за отправку ретранслятора.

Как объяснено на Академия Коннект:

Аукционные сборы

Всякий раз, когда пользователь транслирует в сеть Connext, сигнализируя о своем намерении выполнить межсетевую передачу, маршрутизаторы могут ответить закрытыми ставками. Основной процесс для этого описан более подробно здесь: Route Auction. Заявки включают в себя обязательство маршрутизаторов выполнить транзакцию в течение заранее определенного времени и диапазона цен. Затем Connext сопоставляет пользователя с самой дешевой ставкой.

Как только маршрутизатор обнаруживает событие, содержащее подписанную ставку, он отправляет транзакцию. Чтобы побудить маршрутизатор завершить транзакцию, сумма, заблокированная в принимающей цепочке, уменьшается на аукционный сбор, который получает маршрутизатор.

Плата за отправку ретранслятора

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

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

В ходе нашего исследования мы обнаружили, что выполнить функции в TransactionManager.sol в контракте отсутствует конкретный механизм аутентификации, что позволяет злоумышленнику MEV опережать транзакцию ретранслятора и украсть его сборы ретранслятора.

Злоумышленники MEV могут искать ожидающие транзакции в Mempool, которые вызывают выполнить функции в Менеджер транзакций договор. Затем они могут выполнить атаку смещения, отправив ту же транзакцию в мемпул, но с более высокой комиссией за газ. Это обходит меры аутентификации, действующие в настоящее время, поскольку злоумышленник просто копирует транзакцию, включая ее подпись.

Уязвимость, стоящая за этой атакой, возникает из-за логической ошибки в TransactionManager.sol:842.

LibAsset.transferAsset(txData.receiveAssetId, подлежащий оплате(msg.sender), relayerFee);

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

Если первоначальная транзакция успешно опережает исходную транзакцию, отправленную ретранслятором, эта легитимная транзакция затем отменяется с '#Ф:019' код ошибки, так как он будет выполняться во второй раз.

Воздействие

Финансовые последствия здесь имеют решающее значение, поскольку это экономическая атака, нацеленная на один из компонентов протокола NXTP — ретранслятор (важно отметить, что средства пользователей в настоящее время не подвержены риску). Используя атаки MEV, злоумышленники потенциально могут украсть комиссию ретранслятора, тем самым лишив ретранслятора стимула для выполнения транзакции.

Без достаточно прибыльных сборов ретрансляторы могут прекратить предоставлять свои услуги, что со временем может помешать работе протокола NXTP.

Этот сценарий вовсе не теоретический. Во время нашего исследования MEV мы обнаружили, что эта атака активно используется изощренными общие боты-лидеры семей, которые мы в настоящее время отслеживаем. Эти боты вызывают потерю огромного количества средств в сети Ethereum. 

С момента его развертывания мы обнаружили более тысячи успешных атак на TransactionManager.sol договор. Один из таких примеров включает:

Транзакция злоумышленника:

  1. https://etherscan.io/tx/0xfeedceaa9be3c8bffc1519ec612d2797d63de63bb22aced0e9eb2635d57f2985
  2. https://ethtx.info/mainnet/0xfeedceaa9be3c8bffc1519ec612d2797d63de63bb22aced0e9eb2635d57f2985/

Потерпевшая транзакция:

  1. https://etherscan.io/tx/0x08b17148c1239a80d7ceead53e888b88fadb0239446b90cf280c0e9cd7b42dff
  2. https://ethtx.info/mainnet/0x08b17148c1239a80d7ceead53e888b88fadb0239446b90cf280c0e9cd7b42dff/

Мы можем сказать, что обе транзакции связаны с одним и тем же межцепочечным переводом, проверив значение параметра подписи в данных транзакции. Поскольку в нашем примере выше подписи одинаковы, мы знаем, что оба отправителя пытаются получить ретрансляторПлата, поэтому один из них пытается опередить другого. Чтобы идентифицировать бота, нам просто нужно сравнить стоимость транзакций, самая дорогая из которых — у злоумышленника.

Наша команда оценила общую сумму сборов только на блокчейне Ethereum примерно в 70 тысяч долларов.

Reporting

Мы сообщили об этой уязвимости в Connext через платформу Immunefi для поиска ошибок. После долгого обмена мнениями Connext сообщил нам, что это не уязвимость и что «это задумано».

Вот их последний ответ:

Мы считаем, что смарт-контракты все еще могут быть недостаточно безопасными для обычных пользователей, и думаем, что подобные истории являются причиной этого. Мы верим, что криптовалюта изменит мир (если еще не изменила). Вот почему мы считаем своей обязанностью информировать мир о том, как некоторые протоколы относятся к своим обязанностям в области кибербезопасности.

Написано
Авигдор Сэзон Коэн

Авигдор — исследователь безопасности web3 в Sayfer. Он увлечен новыми технологиями блокчейна и тем, как мы можем обеспечить их безопасную разработку.

 

перейти к содержанию