Вт. Май 21st, 2024

Хакерская атака на кроссчейн-мост Allbridge стала возможна из-за ошибки в математической формуле расчета ликвидности и публичного характера информации о кодовой базе смарт-контракта. Об этом в комментарии ForkLog сообщил сооснователь проекта Андрей Великий.

Ошибка в математике

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

«Мост устроен таким образом, что он все время старается выровнять ликвидность. Грубо говоря, если есть какой-то перекос, он в одну сторону начинает штрафовать, а в другую — доплачивать. Это позволяет пользователям зарабатывать на арбитраже», — рассказал Великий. 

Однако в граничных значениях формулы была ошибка — допустимая сумма входящих и исходящих транзакций оказалась значительно выше находящейся в пулах ликвидности. 

«Атакующий положил деньги в пул ликвидности, провел серию свопов, и мы неправильно посчитали на уровне математики, сколько ему выдать денег при таком большом перекосе ликвидности. Вышло так, что он забрал не только свои, но и чужие деньги, фактически опустошая пул BNB Chain», — объяснил сооснователь Allbridge.

Затем хакер перевел активы на сумму $570 000 в BNB и отправил их на Tornado Cash.

Вскоре после этого другой неизвестный повторил атаку. Он забрал порядка $160 000 в стейблкоинах. На момент написания эти средства находятся на его адресе без движения.

Кроме того, когда пул на BNB Chain опустел, другие пользователи также попытались заработать, пересылая деньги между истощенным и остальными пулами до момента остановки моста. 

Личность хакера

Команде протокола удалось связаться с первым взломщиком и договориться о возврате 1500 BNB из похищенных средств. Оставшуюся часть суммы он забрал себе в качестве вознаграждения.

По предположению Allbridge, за атакой стоял молодой хакер из Гонконга, который занимается взломом протоколов на BNB Chain. Свои действия он подробно описывал в Twitter, в частности, опубликовал приватный ключ адреса, с которого был осуществлен хак. Изначально злоумышленник не планировал возвращать средства. 

«В диалоге с нами он никак не объяснил мотивы своего поступка, однако согласился отправить нам 1500 BNB частями через Tornado Cash. Эту сумму мы сразу конвертировали в стейблкоины, чтобы не усугублять ситуацию с волатильностью курса. Также по договоренности с хакером после возврата средств мы опубликовали твит, что признаем его whitehat и не намерены его каким-либо образом преследовать», — добавил Великий. 

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

Действия сторонних пользователей в рамках инцидента Allbridge не планирует трактовать как взлом. 

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

План компенсации

Сейчас Allbridge готовит план компенсации. В частности, разрабатывается форма, через которую пользователи смогут верифицировать количество активов, которые стала им недоступна из-за инцидента.

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

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

«Мы возобновим работу протокола, перераспределять активы и постоянно наполнять пулы. Если второй хакер тоже откликнется, это очень сильно упростит всем жизнь», — добавил он.

Стоит ли платить хакеру?

Андрей Великий считает, что в критической ситуации договоренность с хакером о возврате части средств — это меньшее из зол. В качестве примера он привел взлом кроссчейн-протокола Wormhole на $319 млн в феврале 2022 года. Тогда переговоры с хакером по каким-то причинам не удались и стоящая за разработчиком фирма Jump Trading погасила ущерб из собственных средств. Со временем хакера удалось взломать и вернуть часть денег. 

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

«Является ли это решение лучшим, чем решение договориться с хакером на возврат большей части суммы? Пользователи получают деньги обратно, у протокола есть средства на выплаты зарплат, чтобы продолжить работу, реабилитироваться в глазах общественности и заработать денег. На мой взгляд, это win-win», — объяснил Великий. 

Векторы атак на кроссчейн-протоколы

Вектор атаки через математику, с которым столкнулся Allbridge, является одним из вариантов взлома мостов, ориентированных на свопы между пулами ликвидности.

В числе других популярных способов — атака на содержащий уязвимость смарт-контракт или атака на мессенджер-протокол с подменой данных в сообщениях.

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

https://forklog.com/cryptorium/chto-takoe-krosschejn-mosty

Напомним, 2 апреля кроссчейн-мост Allbridge потерял цифровые активы стоимостью около $570 000 в результате хакерской атаки. Неизвестный манипулировал ценой свопа, чтобы вывести токены из пула в сети BNB Chain. Команда отключила мост на время расследования.