Создатели раскрыли информацию о уязвимости двухгодовой давности в Bitcoin Core

Создатель Adem Создатели раскрыли информацию о обнаруженной два года вспять уязвимости в Bitcoin Core, которая позволяла злодеям украсть BTC, отложить расчеты либо поделить сеть на конфликтующие версии.

Согласно статье, размещенной инженером Purse Брейдоном Фуллером (Braydon Fuller) и главным разрабом протокола Handshake Джаведом Ханом (Javed Khan), уязвимость была найдена в июне 2018 года. Ей был присвоен уровень серьезности 7.8 по шкале от 1 до 10, что считается «высочайшим» (9 либо выше является «критичным» уровнем). По словам Хана, это было вызвано тем, что «удаленные узлы» не смогли убрать недействительные транзакции из собственной памяти.

Невозможность удалить эти транзакции могла привести к тому, что злодей передаст узлу-жертве огромное количество устаревших данных. Это приведет к «неконтролируемому потреблению ресурсов», и в итоге станет предпосылкой остановки работы узла. Решение второго уровня, к примеру, Lightning Network, подвергались риску из-за уязвимости, но риск утраты средств не затрагивал полные узлы Биткоина.

«Не было механизма, позволяющего удостовериться в реальности деталей ожидающей обработки транзакции. В неких вариантах возникала возможность наполнения удаленной памяти недействительными транзакциями», – произнес Хан.

Создатели говорят, что никаких попыток пользоваться данной уязвимостью найдено не было. По словам Фуллера, информация о ней не раскрывалась в течение 2-ух лет, так как операторам узлов потребовалось больше времени для обновления, чем ожидалось. Хотя уязвимость была исправлена, ее раскрытие подчеркивает трудности построения глобального валютного эталона на языках программирования, не говоря уже о больших технических барьерах для роли в разработке ведущей криптовалюты.

Уязвимость возникла в Bitcoin Core в ноябре 2017 года. Согласно документу, около 50% узлов Биткоина в то время были подвержены атаке, но наиболее ранешние версии Bitcoin Core не были затронуты. Хан отметил, что уязвимость открывала злодеям возможность украсть средства с узлов, у каких были открытые каналы на Lightning. Версии 0.16.0 и 0.16.1 Bitcoin Core были подвержены уязвимости и исправлены разрабом Мэттом Коралло (Matt Corallo) опосля того, как Фуллер сказал о дилемме в июле 2018 года.

За открытием Фуллера, который также был ведущим разрабом протокола децентрализованного пасмурного хранилища Storj, последовала еще одна ошибка, устраненная 2-мя месяцами позднее в версии 0.16.3. Один из качеств данной ошибки дозволял майнерам «раздувать предложение Биткоина», так как они могли два раза издержать определенные суммы, как писала в то время команда Bitcoin Core. Критический патч, выпущенный в данной версии Bitcoin Core, также избавляет обнаруженную Фуллером ошибку. 

В реестре Common Vulnerabilities and Exposures (CVE) Государственного института эталонов и технологий в 2018 году под номером CVE-2018-17145 было зарезервировано пространство для уязвимости, связанной с потреблением ресурсов, но оно еще не заполнено подробной информацией. CVE представляет собой общедоступный классификатор приметных ошибок программного обеспечения. Bitcoin Core – это эталонная реализация либо обычная версия сетевого программного обеспечения. Уязвимость также могла быть в нескольких остальных реализациях ПО Биткоина и его ответвлений:

  • Bitcoin Knots v0.16.0

  • Все бета-версии Bcoin до v1.0.0-pre

  • Все версии Btcd до v0.20.1-beta

  • Litecoin Core v0.16.0

  • Namecoin Core v0.16.1

  • Все версии Dcrd до v1.5.1.

Ко всем сиим реализациям были использованы патчи, устраняющие уязвимость. Напомним, что не так давно юзер Electrum растерял 1 400 BTC опосля загрузки старенькой версии кошелька, работающей на вредных серверах. Эта уязвимость устранена в версиях 3.3.4 и выше.

Источник

Author: Zero