Хронология кражи Liquid Network: как аномальная эмиссия вывела почти 4000 BTC
Автор: Гу Юй, ChainCatcher
6 сентября в Bitcoin сайдчейне Liquid Network произошел инцидент безопасности на сумму около 320 миллионов долларов, из резервного кошелька Liquid Federation было выведено около 4000 BTC. В отличие от распространенных утечек приватных ключей или взломов мультиподписей, Liquid заявила, что связанный Peg-out Authorization Key (PAK) сам по себе не был взломан; злоумышленник воспользовался уязвимостью в программном обеспечении Elements, чтобы сгенерировать LBTC аномальным образом и завершить нормальный процесс кросс-чейн выхода.
После инцидента Liquid приостановила сетевую деятельность, несколько торговых платформ приостановили пополнение и вывод LBTC. Затем, самопровозглашенные "белые хакеры" связались с Blockstream через информацию в блокчейне Bitcoin и вернули 3400 BTC после подтверждения завершения ремонта узлов Blockstream. Однако около 598,5 BTC все еще контролируются злоумышленниками, стоимость которых составляет около 47 миллионов долларов.
По состоянию на 8 сентября, когда Liquid Network полностью восстановится, как будут обработаны оставшиеся средства и полные технические детали уязвимости, еще предстоит раскрыть.
На первый взгляд обычный Peg-out, 4000 BTC внезапно покинули резервный кошелек
Liquid Network — это сайдчейн Bitcoin, поддерживаемый технологией Blockstream, который в основном используется для быстрого и конфиденциального расчета BTC, а также поддерживает выпуск стабильных монет, токенизированных ценных бумаг и других активов. Одним из его основных механизмов является 1:1 привязка BTC к LBTC: пользователи могут получить соответствующее количество LBTC после внесения BTC в Bitcoin-кошелек, контролируемый Liquid Federation; при обратной операции LBTC уничтожаются, а Federation освобождает BTC пользователю.
Чтобы избежать произвольного обмена LBTC на BTC основной сети, процесс Peg-out Liquid также вводит механизм PAK. Официальная документация показывает, что пользователи должны подтвердить, что их Bitcoin-адрес принадлежит авторизованной записи PAK, после чего BTC освобождается watchmen в сети.
6 сентября эта система внезапно дала сбой.
Согласно информации, раскрытой SideSwap, один пользователь отправил в их Peg-out сервис около 4000 LBTC. SideSwap по нормальному процессу уничтожила эти LBTC и инициировала Peg-out на указанный Bitcoin-адрес. В конечном итоге Liquid Federation выплатила на этот адрес около 3996 BTC.
Проблема в том, что эти 4000 LBTC не соответствовали ранее действительно заблокированным в кошельке Federation 4000 BTC.
Liquid затем пришла к выводу, что эти LBTC произошли из уязвимости в программном обеспечении Elements. То есть злоумышленник не получил приватный ключ кошелька Federation и не перевел BTC напрямую, а сначала использовал уязвимость программного обеспечения, чтобы создать или получить LBTC, которые не должны были существовать, а затем обменял их на реальные BTC через нормальный механизм Peg-out Liquid.
Это также объясняет, почему в этом инциденте PAK не был взломан. SideSwap заявила, что затронутый Peg-out использовал действующий процесс авторизации, и их система и PAK не были взломаны; проблема заключалась в логике генерации LBTC на более высоком уровне.
С точки зрения результата, злоумышленник фактически использовал уязвимость в базовом предположении Liquid о том, что "LBTC должны поддерживаться эквивалентным количеством BTC": система приняла LBTC, которые не должны были существовать, а затем нормальный процесс Peg-out обработал их как законные активы, в конечном итоге позволив обменять несуществующие LBTC на реальные BTC.
Официальная документация Liquid четко указывает, что LBTC и BTC поддерживают 1:1 привязку, и количество LBTC в обращении не должно превышать количество BTC, заблокированных Federation. Этот инцидент как раз нарушил это основное ограничение.
Около 95% резервов BTC были выведены, Liquid срочно приостановила услуги
Масштаб этой атаки привлек большое внимание не только из-за суммы около 320 миллионов долларов, но и из-за того, что выведенные BTC составили большую часть резервов Liquid на тот момент.
Перед инцидентом в кошельке Liquid Federation было около 4200 BTC. Вывод около 4000 BTC означает, что около 95% резервов были затронуты. Liquid затем закрыла мостовые узлы и приостановила новые сетевые транзакции; некоторые торговые платформы также приостановили пополнение и вывод LBTC.
В первоначальном объявлении Liquid заявила, что инцидент связан с "подозреваемыми белыми хакерами" и сообщила, что Blockstream пытается связаться с контролерами средств через сообщения в блокчейне. Сеть также предупредила, что в период приостановки кошельки пользователей и связанные услуги будут затронуты.
Стоит отметить, что Liquid заявила, что этот инцидент в основном затрагивает резервы BTC и что другие активы Liquid, включая USDT, DePix и некоторые реальные активы, не подверглись такому же прямому воздействию. Однако из-за приостановки работы сети Liquid нормальный перевод и использование связанных активов все равно могут быть затронуты на уровне обслуживания.
Это также делает этот инцидент отличным от традиционного "кражи горячего кошелька". Злоумышленник не просто преодолел систему подписей кошелька, а использовал уязвимость в программном обеспечении сайдчейна и механизме кросс-чейн выкупа.
Спорная идентичность "белого хакера", 3400 BTC уже возвращены
Развитие событий после инцидента претерпело явный поворот.
После вывода средств злоумышленник оставил сообщение в поле OP_RETURN транзакции Bitcoin, назвав себя "белыми шляпами", и потребовал, чтобы Liquid связалась с ними через блокчейн. Затем Blockstream использовал сообщения в блокчейне для общения с ними.
В ходе дальнейшего общения злоумышленник потребовал от Blockstream сначала исправить уязвимость и убедиться, что все связанные узлы завершили обновление, прежде чем они подумают о возврате средств.
7 сентября Blockstream подтвердил через подписанное сообщение в блокчейне: "Мостовые узлы исправлены, безопасно вернуть средства." Затем злоумышленник вернул Liquid Federation адрес 3400 BTC.
Это означает, что на данный момент около 85% выведенных BTC уже вернулись в кошелек, контролируемый Liquid, а оставшиеся около 598,5 BTC все еще находятся под контролем первоначального владельца средств, что по текущим ценам составляет около 47 миллионов долларов.
Тем не менее, вопрос о том, могут ли злоумышленники быть определены как "белые хакеры", все еще вызывает споры. С одной стороны, они добровольно вернули большую часть средств после исправления уязвимости и потребовали от Blockstream приоритизировать исправление уязвимости, что имеет определенное сходство с действиями некоторых белых хакеров по раскрытию уязвимостей; с другой стороны, злоумышленники сначала вывели около 4000 BTC без разрешения, а затем начали общение с проектом.
Поэтому в настоящее время Liquid использует формулировку "самопровозглашенные белые хакеры" с осторожностью. Эксперты по безопасности в отрасли также указывают, что традиционное ответственное раскрытие уязвимостей обычно требует от исследователей сначала сообщить о уязвимости проекту, а не напрямую контролировать активы протокола. CTO Ledger Шарль Гийемет публично усомнился в заявлении о "белых хакерах" в этом инциденте и считает, что такой подход, при котором сначала перемещаются крупные активы, а затем запрашивается исправление уязвимости, вызывает явные споры.
Настоящая проблема, выявленная инцидентом, — это зависимость кросс-чейн систем от программных предположений
Инцидент все еще находится на стадии расследования, и Blockstream еще не раскрыла полные технические детали конкретной уязвимости Elements. Поэтому в данный момент не следует делать окончательные выводы о конкретных кодовых причинах возникновения уязвимости и о том, как злоумышленники обнаружили и использовали ее.
Однако, исходя из уже раскрытой информации, инцидент по крайней мере выявил один ключевой риск в архитектуре Liquid: мультиподписная безопасность кошелька Federation сама по себе не означает, что вся кросс-чейн система свободна от возможности аномального освобождения средств.
Liquid использует федеративную модель для управления BTC, заблокированными в основной сети Bitcoin, и определяет, когда разрешать Peg-out, с помощью программных правил. Официальная техническая документация показывает, что мультиподписная механика Federation требует участия более двух третей watchmen для доступа к средствам, а также разработан механизм экстренного восстановления.
Тем не менее, этот инцидент обошел традиционный путь "кражи приватного ключа". Злоумышленник использовал логические связи между выпуском активов, проверкой LBTC и Peg-out, заставив систему рассматривать аномально созданные LBTC как законные активы, что в конечном итоге привело к освобождению реальных BTC.
Таким образом, с технической точки зрения это не атака на саму основную сеть Bitcoin. Механизм консенсуса Bitcoin, блоки основной сети и проверка прав собственности на BTC не были затронуты этим инцидентом; пострадала Liquid, сайдчейн, построенный на Bitcoin, и его механизм привязки активов.
В то же время инцидент также подчеркивает важность управления жизненным циклом программных уязвимостей. Elements — это открытое программное обеспечение, от которого зависит работа Liquid, и Liquid уже подтвердила, что проблема исходит от Elements. Что касается того, как долго существовала эта уязвимость, почему она не была обнаружена ранее, повлияла ли она на другие развертывания Elements и существуют ли другие потенциальные пути эксплуатации, на эти вопросы все еще требуется ответить в ходе последующих аудитов и официальных раскрытий.
Для пользователей наиболее актуальным вопросом остается, когда восстановятся услуги Liquid и смогут ли оставшиеся около 598,5 BTC в конечном итоге вернуться в кошелек Federation. Для Blockstream и Liquid необходимо будет дополнительно объяснить конкретные причины уязвимости, затронутые версии программного обеспечения, объем исправлений и последующие меры безопасности.
Возврат 3400 BTC снизил финансовое давление на Liquid, но сам инцидент еще не завершен. Пока детали уязвимости, оставшиеся средства и планы восстановления сети не будут подтверждены, полный ответ на этот инцидент все еще остается открытым.













