После атаки на систему управления Neutron 22 сентября валидаторы Cosmos Hub провели экстренное обновление программного обеспечения и перевели 1 227 121,37 ATOM, связанных с атакующим, в мультиподписной кошелек. Средства пока не возвращены: шесть подписантов кошелька заявили, что сначала необходимо одобрение предложения через систему управления Cosmos Hub. Только после этого они готовы перевести активы. Обновление остановило дальнейшее перемещение части средств, однако порядок компенсации пользователей и протоколов, а также распределение токенов остаются нерешенными.
Валидаторы перевели ATOM через обновление сети
Команда сопровождения Neutron сообщила, что 22 сентября злоумышленник использовал предложение по управлению, чтобы получить административный контроль над контрактами Astroport и ряда других протоколов. Затем он перевел часть активов в другие сети, включая примерно 1,73 млн ATOM, отправленных в Cosmos Hub. Сам Hub атакован не был, но стал одной из сетей, где часть средств удалось перехватить.
Пока атакующий обменивал ATOM и перемещал их через мосты, валидаторы Hub остановили сеть на высоте блока 33 086 740 и согласовали ее перезапуск с версией Gaia 28.3.0. В первом блоке после перезапуска патч выполнил одноразовое изменение состояния: 1 227 121,37 ATOM с адреса, связанного с атакующим, были переведены в резервный мультиподписной кошелек. После этого обычные транзакции возобновились. В обновлении команды сопровождения Cosmos Hub от 24 сентября говорилось, что патч затрагивал только один исходный аккаунт и не менял балансы или делегированные ставки других пользователей.
Речь шла о согласованном обновлении программного обеспечения валидаторов, а не о компенсации, одобренной голосованием в блокчейне. Cosmos Labs сообщила, что до сборки и распространения ПО валидаторы получили письменные сведения об адресах отправителя и получателя, шести подписантах и масштабе патча. До перезапуска 23 сентября его установили валидаторы, представлявшие более 67% голосующей мощности Hub. Сеть возобновила работу в 12:00 UTC, а перевод активов состоялся примерно в 12:06 UTC.
Команда сопровождения заявила, что патч протестировали на форке состояния основной сети и распространили с контрольной суммой. Поскольку исправление уязвимости в базовом релизе Gaia v28.2.0 все еще подпадало под эмбарго координированного раскрытия информации, различия в исходном коде сначала не публиковались. 25 сентября Cosmos Labs сообщила, что рассчитывает обнародовать их после окончания эмбарго. Это был объявленный на тот момент план раскрытия, который сам по себе не подтверждает, что материалы впоследствии были опубликованы.
Подписанты ждут формального разрешения Hub
В число подписантов резервного мультиподписного кошелька вошли Nansen, Keplr, Enigma, Silknodes, Kiln и Polkachu. Технически для проведения транзакции кошельку необходимы как минимум четыре из шести подписей. Однако подписанты заявили, что воспользуются этими полномочиями только после принятия предложения Cosmos Hub, прямо разрешающего перевод. Cosmos Labs подчеркнула, что не владеет ключами от кошелька.
Это разделяет две разные задачи: перехват активов и решение о том, кому их компенсировать. Во время остановки сети валидаторы изменили состояние Hub, чтобы не дать атакующему перемещать балансы, уже находившиеся в сети. Теперь подписанты мультиподписного кошелька добиваются публичной процедуры управления, которая определит дальнейшее назначение средств. Экстренный патч не устанавливал полный перечень правомочных получателей и не утверждал сроки распределения.
Следующий этап процесса, как ожидалось, должна была подготовить команда Neutron. Cosmos Labs сообщила, что по состоянию на 25 сентября Neutron принял меры по снижению последствий атаки и возобновил работу. Участники и затронутые протоколы, включая Astroport и Drop, продолжали собирать подтверждения убытков и разрабатывать планы распределения. На тот момент команда реагирования ожидала, что в течение следующей недели внесет предложение в Hub или поддержит его. Необходимость отдельного голосования в системе управления Neutron должна была определяться самой этой сетью.
По состоянию на 15:40 UTC 26 сентября в перечне предложений Cosmos Hub не было принятого постинцидентного решения, разрешающего резервному мультиподписному кошельку распределить средства. Предложение 1057 касалось восстановления IBC light client проекта Realio. Предложение 1056 под названием «ATOM Refund & Justice Bounty» еще проходило голосование и предусматривало другую структуру возвратов и вознаграждения за помощь; оно не давало команде реагирования Neutron права распределять активы из мультиподписного кошелька. Запрошенное подписантами разрешение управления поэтому на тот момент оставалось не получено.
После патча на адрес поступили еще 168 990,9 ATOM
В мультиподписной кошелек попали только ATOM, которые оставались на одном из связанных с атакующим адресов в момент остановки сети. Перевод не отменил последствия всей атаки на Neutron. Cosmos Labs сообщила, что примерно 500 000 ATOM были обменены через THORChain еще до остановки, тогда как другие похищенные активы переместились в сети за пределами Hub. Опубликованные сведения не определяли, какую сумму в итоге сможет заявить каждый пострадавший аккаунт, и не содержали обещания полного возмещения.
Еще 168 990,9 ATOM показали временное ограничение патча. Ожидаемый возврат через THORChain поступил на адрес атакующего вскоре после возобновления работы сети, когда одноразовый перевод уже был выполнен. Cosmos Labs заявила, что валидаторы знали о возможном поступлении возврата, однако его включение потребовало бы нового кода и более длительной остановки: протестированный патч пришлось бы изменить. Впоследствии эти ATOM перевели в Osmosis и продали. Поскольку патч срабатывал только в момент перезапуска, он не мог автоматически вернуть активы, поступившие позднее.
До внесения предложения в Cosmos Hub необходимо, чтобы Neutron проверил размер убытков, определил круг правомочных получателей и подготовил план распределения. Только после этого управление Hub сможет выдать публичное разрешение, которого добиваются подписанты мультиподписного кошелька. Пока эти шаги не завершены, примерно 1,227 млн ATOM остаются на хранении в кошельке, а конечные получатели средств не определены.