Я снова посмотрел(а) разбор кроссчейн-моста от марта этого года про @Dusk , и самое важное, что стоит запомнить, — не «с консенсусом основной сети всё было в порядке», а куда более болезненный факт: полномочий одного кошелька для подписи однажды оказалось достаточно, чтобы потянуть ко дну весь мост.
16 января атакующий получил доступ к подписи кошелька сервиса моста Dusk: сначала он вывел средства на стороне Dusk, а затем часть из них отправил в BSC. В официально раскрытой последовательности были похищены 9,000, 89,700, 2,743,310 и 8,068,000 монет $DUSK ; ещё две операции успешно прошли через мост, а последняя попытка на 8,910,000 монет после остановки уже провалилась.
Это не значит, что был сломан консенсус DuskDS или что криптография Phoenix в тот же миг перестала работать. Проблема была в операционном пути моста: подпись, обработка событий и сетевое соединение были сведены в одну линию. Это как если бы сам банковский сейф никто не вскрывал, но у водителя инкассаторской машины одновременно были бы ключ от двери хранилища, маршрутный лист и штамп на выдачу; потеряй водительские учётные данные — и даже самый прочный сейф не остановит машину, если её повезут не туда.
После разборa переделка, надо признать, попала точно в цель: подпись и обработка событий были разделены, события сначала превращаются в задачи, а затем выполняются независимым worker'ом; статус транзакции разбит на seen, submitted, completed, failed, stuck; в горячем кошельке остаётся только минимальный операционный баланс, при падении ниже порога система автоматически ставится на паузу, после чего холодный кошелёк пополняется вручную. Проще говоря, путь «одна дорога до конца» был разрезан на несколько ворот.
Но я не собираюсь считать, что после исправлений история уже закончилась. Самая сложная часть мостов в том, что безопасность протокола и операционная безопасность пользователи часто воспринимают как единое целое. Вы держите тот же DUSK, видите тот же бренд, но фактически можете иметь дело с совершенно другой моделью доверия. Внутри цепочки всё держится на консенсусе, а на шаге кроссчейна в тот момент опора была на путь подписи; как только актив пересёк границу, предпосылки безопасности уже пересели в другую машину.
Мой вывод такой: публичная временная линия и первопричина намного ценнее, чем расплывчатое «всё восстановлено»; но прозрачный разбор — это лишь точка, с которой заново начинают считать, а не знак о том, что проверка пройдена. #dusk То, за чем действительно стоит наблюдать дальше, — могут ли экспозиция горячего кошелька моста, механизм паузы, изоляция подписей и обработка аномалий долгое время работать так, как задумано.
Так что не надо больше спрашивать «безопасен ли Dusk» в таком общем и пустом виде. Правильный вопрос другой: на каком именно уровне сейчас находятся ваши активы, кто их подписывает, и какая именно сломанная «ворота» может задеть деньги? Мост стал сложнее, но действительно ли доверие теперь тоже было разрезано на части? Продолжим разбирать в комментариях.
$BTC
16 января атакующий получил доступ к подписи кошелька сервиса моста Dusk: сначала он вывел средства на стороне Dusk, а затем часть из них отправил в BSC. В официально раскрытой последовательности были похищены 9,000, 89,700, 2,743,310 и 8,068,000 монет $DUSK ; ещё две операции успешно прошли через мост, а последняя попытка на 8,910,000 монет после остановки уже провалилась.
Это не значит, что был сломан консенсус DuskDS или что криптография Phoenix в тот же миг перестала работать. Проблема была в операционном пути моста: подпись, обработка событий и сетевое соединение были сведены в одну линию. Это как если бы сам банковский сейф никто не вскрывал, но у водителя инкассаторской машины одновременно были бы ключ от двери хранилища, маршрутный лист и штамп на выдачу; потеряй водительские учётные данные — и даже самый прочный сейф не остановит машину, если её повезут не туда.
После разборa переделка, надо признать, попала точно в цель: подпись и обработка событий были разделены, события сначала превращаются в задачи, а затем выполняются независимым worker'ом; статус транзакции разбит на seen, submitted, completed, failed, stuck; в горячем кошельке остаётся только минимальный операционный баланс, при падении ниже порога система автоматически ставится на паузу, после чего холодный кошелёк пополняется вручную. Проще говоря, путь «одна дорога до конца» был разрезан на несколько ворот.
Но я не собираюсь считать, что после исправлений история уже закончилась. Самая сложная часть мостов в том, что безопасность протокола и операционная безопасность пользователи часто воспринимают как единое целое. Вы держите тот же DUSK, видите тот же бренд, но фактически можете иметь дело с совершенно другой моделью доверия. Внутри цепочки всё держится на консенсусе, а на шаге кроссчейна в тот момент опора была на путь подписи; как только актив пересёк границу, предпосылки безопасности уже пересели в другую машину.
Мой вывод такой: публичная временная линия и первопричина намного ценнее, чем расплывчатое «всё восстановлено»; но прозрачный разбор — это лишь точка, с которой заново начинают считать, а не знак о том, что проверка пройдена. #dusk То, за чем действительно стоит наблюдать дальше, — могут ли экспозиция горячего кошелька моста, механизм паузы, изоляция подписей и обработка аномалий долгое время работать так, как задумано.
Так что не надо больше спрашивать «безопасен ли Dusk» в таком общем и пустом виде. Правильный вопрос другой: на каком именно уровне сейчас находятся ваши активы, кто их подписывает, и какая именно сломанная «ворота» может задеть деньги? Мост стал сложнее, но действительно ли доверие теперь тоже было разрезано на части? Продолжим разбирать в комментариях.
$BTC

