Фонд LitecoinLTC$56.29-0.06% заявил, что перестройка блокчейна на 13 блоков, произошедшая в минувшие выходные, не является zero-day-уязвимостью. Однако анализ коммитов в GitHub репозитории litecoin-project показывает, что проблема с консенсусом была приватно исправлена ещё в период с 19 по 26 марта — более чем за четыре недели до атаки. Это противоречие ставит под сомнение прозрачность процесса исправления критической ошибки в коде сети.
Почему перестройка цепочки на 13 блоков — аномалия для Litecoin
В минувшие выходные в блокчейне Litecoin произошла перестройка цепочки на 13 блоков (reorg). Такое событие крайне редко встречается в устоявшихся криптовалютах и обычно свидетельствует о серьёзной проблеме в протоколе консенсуса. Разработчики сети оперативно отреагировали, и цепочка была восстановлена, однако инцидент вызвал волну вопросов.
Ранее мы подробно разбирали, как рынок zero-day уязвимостей работает и как спецслужбы покупают взлом за криптовалюту.
После стабилизации сети представители Litecoin Foundation выступили с заявлением, в котором назвали произошедшее не zero-day, а скорее эксплуатацией известной уязвимости. Детали этого заявления вступили в конфликт с техническими данными, доступными публично.
Коммиты в GitHub: патч появился за месяц до атаки
Изучение истории коммитов в официальном репозитории litecoin-project на GitHub показывает иную картину. Согласно логам, патч, закрывающий уязвимость в механизме консенсуса, был добавлен в приватную ветку кода между 19 и 26 марта. Это означает, что разработчики знали о проблеме как минимум за месяц до того, как она была использована злоумышленниками.
Разрыв между приватным исправлением ошибки 19 марта и реальной атакой в конце апреля ставит под вопрос эффективность процедур безопасного раскрытия информации (responsible disclosure).
Сам факт того, что уязвимость была исправлена в приватном репозитории, а затем представлена как не-zero-day, вызывает недоверие у части сообщества. Обычно zero-day называют уязвимость, о которой разработчики не знают и для которой не существует патча. В данном случае патч существовал, но не был опубликован для нод сети.
Как приватные патчи подрывают доверие к Proof-of-Work
Подобные инциденты подрывают доверие к механизмам управления сетями на основе Proof-of-Work. Если разработчики могут приватно исправлять критические ошибки, а затем не форсировать обновление сети, это создаёт окно возможностей для атаки. В случае Litecoin окно между патчем и атакой составило более месяца. Для сравнения, в других крупных сетях подобные уязвимости обычно раскрывают и закрывают в течение нескольких дней после обнаружения.
Для держателей Litecoin этот случай — напоминание о важности своевременного обновления клиентского программного обеспечения. Даже если разработчики знают об ошибке, уязвимыми остаются все ноды, работающие на старой версии кода. Отсутствие принудительного обновления (хардфорка) в таких ситуациях — это всегда компромисс между децентрализацией и безопасностью.
Пока официальный фонд Litecoin настаивает на версии с не-zero-day, технические данные указывают на обратное. Сообществу предстоит разобраться, была ли задержка с публикацией патча ошибкой координации или сознательным решением, и какие выводы из этого следуют для безопасности сети в будущем.