Как $323 млн в криптовалюте были украдены с блокчейн-моста под названием Червоточина/Wormhole

Криптовалюта несёт в себе риск – блокчейн-мосты усиливают его.

Это история о том, как простая ошибка в программном обеспечении позволила совершить четвёртую по величине кражу криптовалюты за всю историю.

Изображение: Aurich Lawson | Getty Images
Изображение: Aurich Lawson | Getty Images

Хакеры украли более 323 миллионов долларов в криптовалюте, воспользовавшись уязвимостью в Червоточине/Wormhole, веб-сервисе, который позволяет осуществлять транзакции между блокчейнами. Червоточина позволяет людям перемещать цифровые монеты, привязанные к одному блокчейну, в другой блокчейн; такие блокчейн-мосты особенно полезны для служб децентрализованного финансирования (DeFi), которые работают в двух или более цепочках, часто с совершенно разными протоколами, правилами и процессами.

Страж без зубов

Мосты используют обёрнутые токены, которые фиксируют токены в одном блокчейне в смарт-контракте. После того, как децентрализованный межцепочечный оракул*, называемый "хранителем", удостоверит, что монеты были должным образом заблокированы в одной цепочке, мост создаёт или выпускает токены той же стоимости в другой цепочке. Червоточина соединяет блокчейн Solana с другими блокчейнами, включая блокчейны Avalanche, Oasis, Binance Smart Chain, Ethereum, Polygon и Terra.

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

Но что, если ты не можешь доверять хранителю? В пространном анализе, опубликованном в Twitter через несколько часов после кражи, говорится, что серверная платформа Червоточины не смогла должным образом проверить свои учётные записи хранителей. Создав поддельную учётную запись с подписью, хакер или хакеры, стоявшие за кражей, отчеканили 120 000 ETH–монет на сумму около 323 миллионов долларов на момент совершения транзакций – в сети Solana. Затем хакеры совершили серию переводов, в результате которых около 93 750 токенов были переведены в частный кошелёк, хранящийся в цепочке Ethereum, сообщила аналитическая фирма Elliptic, занимающаяся блокчейном.

Хакеры провернули кражу, используя более раннюю транзакцию для создания набора подписей, который представляет собой тип учётных данных. С помощью этого они создали VAA, или утверждение действия валидатора [validator action approval], которое, по сути, является сертификатом, необходимым для утверждения транзакций.

"Как только у них появился поддельный "набор подписей", было тривиально использовать его для создания действительного VAA и запуска несанкционированной чеканки на свой аккаунт," – написал @samczsun, менеджер Twitter для сотрудника инвестиционной фирмы Paradigm.

"Остальное – история. Резюмируя. Червоточина должным образом не проверила все учётные записи ввода, что позволило злоумышленнику подделать подписи хранителей и отчеканить 120 000 ETH на Solana, из которых они перевели 93 750 обратно в Ethereum".

– samczsun (@samczsun) 3 февраля 2022 года

Ещё один тщательный анализ взлома здесь.

Эта кража является четвёртой по величине кражей криптовалюты за всё время, согласно этому обзору от Statista, всего за $480 млн., похищенных с биржи Mt. Gox в 2014 году, $547 млн, похищенных из Coincheck в 2018 году, и $611 млн, похищенных из Polynetwork в прошлом году (эта рекордная сумма была позже возвращена вором).

В 2021 году убытки от краж криптовалют составили 10,5 миллиарда долларов, по данным Elliptic, по сравнению с 1,5 миллиардами долларов годом ранее.

Нетривиальная задача

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

"Создание мостов наследует всю сложность каждого блокчейна," – говорится в сообщении Дэна Гвидо, генерального директора фирмы Trail of Bits, оказывающей услуги в сфере информационной безопасности. "Они кажутся обманчиво простыми, но на самом деле это один из самых сложных для написания кодов."

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

"Мост не ожидал, что пользователи смогут отправить набор подписей, поскольку изменение, облегчающее это, было недавно внесено во время выполнения Solana," – объяснил Гвидо. "Отправлением данных своих собственных подписей, злоумышленник замкнул проверку подписи, что позволило ему/им стать владельцем/ами большого количества токенов".

В электронном письме Дейн Шеррет, архитектор решений в службе сообщений об ошибках HackerOne, объяснил это следующим образом:

Существует verify_signatures функция, которая должна принимать криптографические подписи от хранителей и связывать их вместе. Несмотря на свое название, verify_signatures на самом деле не проверяет себя – она использует встроенную в Solana программу secp256k1. Версия solana-программы, которую использовал Червоточина, неправильно проверяла адрес, что позволило хакеру создать учётную запись, которая могла обойти все проверки.

Благодаря описанным выше шагам хакер смог обойти проверку подписей и перевести ETH в Ethereum, что означало, что в течение определённого периода времени часть wETH [завернутый ETH на Solana] фактически ничем не была обеспечена.

Мне трудно понять суть этого взлома, потому что он был инициирован на блокчейне Solana, который использует язык программирования Rust для своих смарт-контрактов. Поскольку Ethereum использует язык программирования Solidity для своих смарт-контрактов, это пример того, как новые сети с разными особенностями и разными языками теперь коммуницируют друг с другом, что ещё больше усложняет безопасность.

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

Также известная как атака большинства, атака 51% позволяет злоумышленнику, который получает более 50% мощности хэширования в блокчейне, отменить ранее совершенные транзакции, заблокировать подтверждение новых транзакций и изменить порядок новых транзакций. Это открывает дверь к чему-то, известному как двойные траты, взлому, который позволяет злоумышленнику совершать два или более платежа с помощью одних и тех же валютных токенов.

Бутерин написал:

Я не ожидаю, что эти проблемы проявятся немедленно. Применить атаку 51% даже к одной цепочке сложно и дорого. Однако, чем больше используется межцепочечных мостов и приложений, тем сильнее усугубляется проблема. Никто не будет использовать атаку 51% к Ethereum только для того, чтобы украсть 100 Solana-WETH (или, если на то пошло, проводить эту атаку на Solana только для того, чтобы украсть 100 Ethereum-WSOL). Но если на мосту находится 10 миллионов ETH или SOL, то мотивация для атаки становится намного выше, и большие пулы вполне могут скоординироваться, чтобы осуществить атаку. Таким образом, межцепочечная активность имеет антисетевой эффект: принимая во внимание, что её не так много, она довольно безопасна, но чем больше её происходит, тем больше возрастает риск.

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

Отчаянные мольбы

К утру четверга материнская компания Червоточины, Jump Trading, заявила, что покроет расходы, связанные с кражей на сумму 323 миллиона долларов.

".@JumpCryptoHQ верит в многоцепочечное будущее и в то, что @WormholeCrypto является необходимой инфраструктурой," – написала чикагская торговая фирма в Twitter. "Вот почему мы возвратили на место 120 тыс. ETH, чтобы сделать членов сообщества единым целым и поддержать Червоточину сейчас, когда она продолжает развиваться".

– Jump Crypto (@JumpCryptoHQ) 3 февраля 2022 года

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

"Это Развертыватель Червоточины [Wormhole Deployer]," – написали должностные лица Червоточины в сообщении, которое они встроили в эту транзакцию Ethereum, отправленную на учётную запись злоумышленника. "Мы заметили, что вы смогли использовать верификацию Solana VAA и чеканку токенов. Мы хотели бы предложить вам whitehat соглашение [этичного хакинга] и предоставить вам вознаграждение за ошибку в размере 10 миллионов долларов за детали эксплойта и возврат отчеканенных вами монет. Вы можете связаться с нами по адресу contact@certus.one."

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

"Я потеряла 100 000 долларов в результате вашей атаки," – написал пользователь. "Я медсестра. Это все мои сбережения. Я надеюсь, что вы сможете вернуть их мне. Все когда-нибудь заболевают. Подумайте о медсестрах, которые ухаживают за вами, когда вы больны. Я желаю вам всегда быть здоровыми и наслаждаться счастьем этого мира. ДА БЛАГОСЛОВИТ ВАС БОГ".

редактура и адаптация Дмитрий Бобров

11
1 комментарий

Да уж

Ответить