ZetaChain отклонила сообщение об ошибке и потеряла $334000

Hooded figure at a laptop on a dark green background beside the Zetachain logo.

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

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

«Об этой ошибке сообщили, а её просто проигнорировали», — написал один пользователь на X. «Так сейчас работают программы вознаграждения за обнаружение ошибок в этих протоколах; вместо того, чтобы платить исследователю за обнаружение и исправление ошибки, они поощряют потери для протокола, TVL и баланса пользователя», — добавил он.

В воскресенье ZetaChain потеряла около $334000 в результате преднамеренной атаки, направленной на ее межсетевой контракт. В результате атаки средства были выведены за девять транзакций в четырех блокчейнах, включая Ethereum, Arbitrum, Base и BSC, все из кошельков, контролируемых ZetaChain. Средства пользователей не пострадали.

Злоумышленник использует небольшие недостатки в конструкции

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

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

«Это не была случайная атака», — заявила ZetaChain в своем анализе произошедшего.

Злоумышленник пополнил свой кошелек через Tornado Cash за три дня до атаки, развернул специально разработанный контракт на ZetaChain и провел кампанию по отравлению адресов, прежде чем внедрить его данные в историю транзакций через «пылевые» переводы.

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

Читайте также: