Из Liquid Network вынесли $320 млн. Хакеры назвали себя “белыми” и потребовали сначала закрыть дыру

leer en español

3469
Из Liquid Network вынесли $320 млн. Хакеры назвали себя “белыми” и потребовали сначала закрыть дыру

После странного вывода сеть пришлось остановить, а судьба $320 млн теперь зависит от обещаний самих хакеров.

image

Иногда «спасение» сотен миллионов долларов начинается с того, что почти весь резерв без разрешения выводят на собственный адрес. 6 сентября из кошелька федерации Liquid Network ушли около 4000 BTC стоимостью примерно $320 млн. До инцидента резерв содержал около 4200 BTC, поэтому за несколько транзакций система лишилась примерно 95% биткоинов, обеспечивавших L-BTC. Liquid отключила bridge-узлы, остановила новые операции и попросила биржи приостановить ввод и вывод L-BTC.

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

Самое необычное выяснилось после разбора вывода. 6 сентября в 14:05 UTC клиент передал сервису SideSwap 4000 L-BTC для peg-out. SideSwap обработал заявку как обычную, уничтожил токены с корректной авторизацией, а через 23 минуты федерация выплатила около 3996 BTC на указанный Bitcoin-адрес. Ключ Peg-out Authorization Key, разрешавший операцию, не был украден, инфраструктура SideSwap также не считалась скомпрометированной.

Проблема находилась глубже. SideSwap сообщил, что Blockstream связала происхождение использованных L-BTC с ошибкой в Elements, открытом программном обеспечении, на котором работает Liquid. Уязвимость позволила появиться L-BTC без соответствующего количества биткоинов в резерве. Для SideSwap такие токены выглядели как обычные L-BTC, поэтому штатный механизм peg-out уничтожил их и потребовал выдать настоящие BTC. Иными словами, злоумышленникам не пришлось ломать ключ от хранилища. Достаточно было заставить систему поверить, что предъявленные к погашению активы существуют законно.

Полный технический postmortem Blockstream пока не опубликован. Независимые исследователи изучают механизм Confidential Transactions и кэш проверки криптографических range proof. Незадолго до инцидента разработчики Elements внесли изменение в код, которое привязывает запись в кэше проверки range proof также к активу и scriptPubKey. Связь конкретной ошибки с атакой выглядит технически правдоподобно, но без официального разбора считать найденный коммит окончательно установленной причиной нельзя. Известно другое. После инцидента Blockstream сообщила участникам операции, что затронутые bridge-узлы уже исправлены.

Люди, контролировавшие выведенные средства, назвали себя белыми хакерами и выбрали довольно необычный канал переговоров. Сообщения для Blockstream записывали непосредственно в транзакции Bitcoin через OP_RETURN, часть технической переписки шифровали PGP. Сначала на блокчейне появилось сообщение «we are whitehats. contact us on chain», затем владельцы средств потребовали исправить уязвимость на всех узлах и только после этого обещали вернуть большую часть биткоинов. Самоназвание не делает операцию согласованным тестированием безопасности, поскольку разрешения на вывод почти всего резерва заранее не было.

7 сентября Blockstream отправила подписанное своим PGP-ключом сообщение о том, что bridge-узлы исправлены и средства можно возвращать. После этого владельцы монет действительно вернули ровно 3400 BTC в кошелёк федерации. Транзакция вошла в блок 965950. Обратно владельцу ушли 598,49955894 BTC, которые по состоянию на 8 сентября всё ещё оставались вне контроля Liquid. При текущей на тот момент цене речь шла примерно о $47 млн.

Публичного подтверждения, что оставшиеся почти 600 BTC согласованы с Blockstream как награда за найденную уязвимость, нет. Поэтому называть $47 млн официальным bug bounty преждевременно. Более того, переговоры продолжились и после возврата 3400 BTC, причём часть дальнейших сообщений снова была зашифрована. Такая схема сильно отличается от обычного багбаунти, где исследователь заранее работает в рамках опубликованных правил и согласованных лимитов.

К 8 сентября Liquid оставалась остановленной. Blockstream и участники федерации продолжали устанавливать исправления, устранять возникшее расхождение цепочки и готовить согласованный перезапуск. Пользователей попросили пока не отправлять BTC на адреса peg-in. Возврат 3400 BTC существенно сократил дефицит обеспечения, но почти 600 BTC всё ещё не вернулись, поэтому история не закончилась вместе с первой крупной транзакцией возврата.

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

Похожий класс проблем уже встречался в криптовалютных мостах. Весной атакующий использовал уязвимость Hyperbridge между Polkadot и Ethereum, получил возможность выпустить миллиард необеспеченных DOT и обменял часть токенов на реальные активы. Реализация и масштаб у Liquid другие, но принцип риска совпадает. Если система ошибочно создаёт или признаёт актив, который должен представлять ценность из другого хранилища, штатный механизм погашения превращает программную ошибку в прямой доступ к настоящим деньгам.

Рекламодатель
ООО «СерчИнформ»
ИНН: 7704306397
searchinform.ru↗
ИИ-ассистент СерчИнформ