Уязвимость BitcoinCore CVE-2018-17144

Андреас Антонопулос рассказывает об уязвимости CVE-2018-17144 найденой в клиенте Bitcoin Core. Какие последствия могли бы быть для системы Биткойн, если бы эту уязвимость вовремя не исправили? Возможно ли возникновение подобных ошибок в будущем? Как реагировать на такие ошибки и как оценивать их угрозу? Ответы на эти вопросы вы найдете в новом переводе Школы Биткойн.

Подписывайтесь на youtube канал Школи Биткойн

Дэвид просит прокомментировать недавнюю уязвимость CVE-2018-17144, и Дэвид говорит: «Трудно поверить, что могла произойти такая критическая ошибка. Какие уроки мы можем извлечь из этого инцидента?»

Я еще не изучал эту проблему детально, поэтому могу дать вам только краткий обзор.

Суть в том, что в Bitcoin Core была обнаружена ошибка. Эта ошибка была скопирована в другие Биткоин форки, это факт, потому что много других форков, а также другие монеты используют ту же основу кода. И это ошибка проверки транзакций, которая влияет на правила консенсуса. И это позволяет майнерам, использовать эту ошибку, чтобы создать транзакцию, которая не проверена должным образом и имеет дополнительный вход, если я не ошибаюсь.
В худшем случае вы можете создать биткойны из ничего. Однако, никто не воспользовался этой ошибкой, она была исправлена ​​до того как ей могли воспользоваться. Эта ошибка могла быть использована для создания атаки отказа в обслуживании биткойн и вызвать сбой узлов, таким образом, что давало возможность осуществить атаку на сеть Биткойн.

Дэвид говорит: «Трудно поверить, что такая критическая ошибка могла случится».

Ну, с одной стороны, да, такая критическая ошибка, что трудно поверить, что это может произойти, несмотря на проверку кода, и так много людей, которые этим занимаются… Мало того, что случилось, так это еще и осталось незамеченным почти два года и задело широкий спектр версий BitcoinCore и других криптовалют. По-моему, эту ошибку содержали версии с 0.14 до 0.16.

Ошибка была обнаружена и передана программистам в зашифрованном сообщении, так чтобы ее нельзя было использовать пока она еще не исправлена. Она была исправлена, по этой причине вам нужно обновить программу BitcoinCore, если вы используете Bitcoin узел, вам нужно обновить его до версии 0.16.3, которая содержит исправления. Я обновил свой узел в тот день, когда появилось сообщение о том, что существует критическая уязвимость, которая нуждается в обновлении.
Многие узлы уже обновленные, некоторые еще нет. И они по-прежнему уязвимы для удаленного выключения, по сути, вызовы для сбоя из-за неправильно сформированной транзакции. К счастью, одной из худших проблем этой уязвимости не воспользовались.

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

Мы будем продолжать видеть ошибки в программном обеспечении. Нет программного обеспечения без ошибок. Важно смотреть, насколько серьезны эти ошибки, а это была очень серьезная ошибка, насколько быстро они были исправлены, были ли они использованы, прежде чем их исправили, и если они использовались, какие последствия этих ошибок, имеется ли у них глубокое воздействие на систему.
Несмотря на наличие ошибок, мы видим, что сеть очень устойчива. Блокчейн системы Биткоин гораздо устойчивее, чем мы думали, из-за динамического характера системы, потому что есть много независимых операторов, узлов, потому, что есть много разработчиков, которые работают независимо друг от друга, просматривая код, выявляя и исправляя ошибки, а система быстро обновляется когда что-то идет не так, и продолжает работать. Уязвимость не убила Биткоин. Уязвимость сделала Биткоин еще сильнее и еще надежнее чем он был прежде. И один из положительных аспектов Биткоина — это его устойчивость, которая продолжает удивлять.

Уязвимость BitcoinCore CVE-2018-17144 обновлено: 9 ноября, 2018 автором: SchBit