Группа, называющая себя белыми хакерами, вывела из Liquid Network биткоинов на $320 млн в минувшие выходные, воспользовавшись уязвимостью, позволившей им создавать необеспеченные токены и обменивать их на настоящие BTC. После того, как Blockstream — разработчик Liquid — устранил уязвимость, участники возвратили 85 процентов похищенного. По состоянию на вторник примерно 600 BTC — около $47 млн — всё ещё находились в распоряжении хакеров, и ни одна из сторон публично не подтвердила, будут ли эти средства возвращены или считаются вознаграждением.
- Самоназванные белые хакеры вывели примерно 4 000 из 4 200 BTC, находящихся в резерве Liquid Network, сгенерировав L-BTC, не обеспеченные реальными биткоинами.
- Эксплойт был основан на ошибке кэширования в программном обеспечении для валидации транзакций Liquid, позволявшей некорректным данным проходить проверку благодаря ссылке на ранее подтверждённый результат.
- После ончейн-переговоров с Blockstream хакеры вернули 3 400 BTC одной транзакцией, после того как разработчик подтвердил обновление и защиту своих мостовых нод.
Liquid Network работает как сайдчейн Bitcoin, предназначенный для ускоренных расчётов, снижения комиссий и проведения конфиденциальных транзакций для биткоин-финансов. Пользователи вносят BTC и получают L-BTC — токены, которые при штатной работе полностью обеспечены один к одному биткоинами из резерва сети. В воскресенье этот механизм обеспечения дал сбой: хакеры смогли создать L-BTC без депонирования BTC, а затем вывели настоящие биткоины через процесс peg-out в Liquid.
Хакеры связались с Blockstream вскоре после вывода средств, назвав себя белыми хакерами и предложив вернуть большую часть украденного после устранения бага, сделавшего кражу возможной. К среде Blockstream выпустил обновлённое ПО, и Liquid Network вернула 85 процентов похищенного. Переговоры с предполагаемыми белыми хакерами по возврату оставшейся суммы продолжались на вторник.
Этот инцидент подчёркивает, что дополнительные уровни над защищёнными блокчейнами могут нести собственные точки отказа. Сам Bitcoin остался невзломанным; уязвимость была в механизме, который Liquid использовал для выпуска и выкупа привязанных токенов.
Уязвимость валидации транзакций
Уязвимость позволила хакерам обмануть Liquid, заставив сеть принять L-BTC, не обеспеченные реальными депозитами BTC. После того как ПО Liquid признало эти токены легитимными, хакеры обменяли их на настоящие BTC из резерва сети и вывели средства в блокчейн Bitcoin.
Аналогия: представьте, что в онлайн-платформе банка есть баг, разрешающий искусственно увеличить баланс счёта без депозита, а затем вывести этот «фантомный» баланс наличными. В случае Liquid хакеры увеличили свои L-BTC без блокировки соответствующих BTC и вывели около 4 000 настоящих биткоинов через стандартный процесс погашения.
Корень проблемы — в способе проверки транзакций в Liquid. Поскольку Liquid использует Confidential Transactions — функцию приватности, скрывающую суммы переводов, — сеть опирается на криптографические доказательства, чтобы убедиться, что пользователи не создают стоимость из воздуха. Одно из таких доказательств, называемое range proof, предотвращает выпуск необеспеченных активов.
Проверка этих доказательств вычислительно затратна, поэтому ПО Liquid кэширует успешные результаты, чтобы избежать повторных проверок идентичных данных. Уязвимость была в системе идентификации кэшированных результатов: новые данные могли ошибочно соотноситься с уже сохранённым одобрением, даже если отличались от первоначально проверенных.
Хакеры воспользовались этим, сначала отправив валидные данные, прошедшие проверку и попавшие в кэш, а затем подали другие, некорректные данные, которые система ошибочно связала с тем же кэшированным результатом. Задействованные ноды считали некорректные данные уже проверенными, не проводя новую проверку. Это позволило хакерам выпускать L-BTC без нужного обеспечения и обменивать их на реальные BTC из резерва Liquid.
Сообщения внутри Bitcoin-транзакций
После вывода резерва предполагаемые белые хакеры общались с Blockstream, встраивая сообщения в Bitcoin-транзакции через поле OP_RETURN. Часть сообщений была открытым текстом, часть зашифрованной.
В одном из первых открытых сообщений хакеры заявили, что вернут биткоины после того, как Blockstream устранит уязвимость, позволившую совершить кражу. В одном из сообщений говорилось: «Цепь под угрозой на последнем коммите», далее следовала инструкция: «убедитесь, что каждая нода обновлена».
Blockstream подтвердил ончейн, что мостовые ноды были обновлены, а возврат средств не создаст новых рисков. После этого хакеры отправили обратно 3 400 BTC — около 85 процентов выведенного — одной транзакцией. Та же транзакция отправила оставшиеся 600 BTC как сдачу на адрес, контролируемый хакерами.
По состоянию на вторник эти 600 BTC, оцениваемые примерно в $47 млн, не были возвращены. Причина удержания неизвестна. Некоторые наблюдатели предполагают, что эта сумма может стать своего рода вознаграждением, однако ни Blockstream, ни хакеры публично не подтвердили такую договорённость.
Blockstream объявил о внедрении обновлённого ПО и подготовке Liquid Network к перезапуску.
Предполагаемые белые хакеры эксплуатировали уязвимость валидации транзакций Liquid, позволявшую создавать тысячи необеспеченных L-BTC. Затем они вывели примерно 4 000 настоящих BTC из резервов Liquid, что на тот момент составляло около $320 млн. L-BTC, или Liquid Bitcoin, — это токен, используемый в Liquid Network и обычно обеспеченный один к одному BTC, находящимися у Федерации Liquid. Пользователи переходят между Bitcoin и Liquid через процессы peg-in и peg-out. Уязвимость касалась способа, которым ПО Liquid кэшировало результаты криптографической проверки. Атакующие заставили некорректные данные транзакции ссылаться на ранее одобренный кэш, что позволило обойти полную проверку и выпустить L-BTC без соответствующего обеспечения. Около 4 000 из примерно 4 200 BTC из резерва Liquid были выведены в блокчейн Bitcoin, что на тот момент составляло примерно $320 млн. После обмена сообщениями с Blockstream через Bitcoin-транзакции хакеры вернули 3 400 BTC в Liquid. Около 600 BTC, на сумму $47 млн по состоянию на вторник, остались под их контролем, и ни Blockstream, ни хакеры не подтвердили, что будет с этими средствами. Инцидент иллюстрирует различие между безопасностью базового блокчейна и инфраструктуры, построенной вокруг него. По мере того как учреждения всё больше полагаются на сайдчейны, мосты, кошельки, биржи, кастодианов и провайдеров расчётов, оценка устойчивости этих дополнительных уровней становится важной частью управления рисками цифровых активов.
Источник: www.chainalysis.com