Биткоин Новость

ИИ нашёл три уязвимости Bitcoin Core: кому обновлять ноду

Редакция BarbadosNews Опубликовано 10 мин чтения
Telegram ↗
Оригинальная редакционная иллюстрация: операторская Bitcoin-ноды с сетевой картой и предупреждением о сбое соединения; изображение концептуальное, не скриншот Bitcoin Core

В Bitcoin Core исправили три ошибки безопасности, из-за которых отдельные узлы сети могли перестать работать. 28 октября 2026 года разработчики раскрыли подробности: самая заметная уязвимость позволяла подключённому злоумышленнику перегрузить память ноды на Windows, macOS или BSD и вызвать аварийное завершение программы. Две другие проблемы связаны с постепенным ростом памяти и обработкой файлов блокчейна.

Исправления вышли в Bitcoin Core 29.5, 30.4, 31.2 и 32.1. При этом сообщение не означает, что кто-то научился подбирать приватные ключи, менять правила Bitcoin или массово похищать BTC. Главный подтверждённый риск - нарушение работы узла, проверяющего блоки и транзакции. Для некоторых устаревших конфигураций отдельное ограничение остаётся и после установки исправленного выпуска.

Необычная деталь этой истории - способ обнаружения. Все три ошибки выявила автоматизированная проверка кода с участием большой языковой модели в рамках Project Loupe, а затем сообщения проверили специалисты. Часть проблем независимо нашли другие исследователи. Случай показывает, почему разработчики недавно изменили правила раскрытия уязвимостей Bitcoin Core из-за ИИ: потенциально доступные автоматическому поиску ошибки теперь стремятся исправлять и раскрывать быстрее.

Что произошло 28 октября и какие версии вышли

Официальные сообщения Bitcoin Core датированы 28 октября. Обновления двух веток, 31.2 и 32.1, разработчики выпустили 27 октября, а исправления для веток 29.x и 30.x - 28 октября. Такой порядок позволил раскрыть технические подробности после того, как пользователям поддерживаемых версий стали доступны патчи.

Первая и вторая уязвимости получили оценку Medium, третья - Low. Это оценки серьёзности самих разработчиков, а не свидетельство состоявшегося взлома всей сети. Они описывают сценарии воздействия на отдельные машины: когда нода теряет доступность, она перестаёт самостоятельно проверять новые данные до восстановления работы.

Bitcoin Core - одна из основных программ, с помощью которых операторы запускают полноценные узлы Bitcoin. Они проверяют соблюдение сетевых правил и передают сведения другим участникам. Это отличается от работы обычного приложения биржи: пользователь, который хранит BTC у посредника и никогда не устанавливал Bitcoin Core, не должен пытаться обновлять несуществующую программу. Для понимания роли независимой проверки полезно разобраться, как устроен блокчейн и кто подтверждает его данные.

Первая уязвимость: ноду Windows или Mac можно было остановить через сеть

Наиболее заметная ошибка касалась обработки нестандартных событий TCP-соединения. В версиях Bitcoin Core для Windows, macOS и BSD используется механизм мониторинга сокетов на основе select(). Программа следит за входящими данными и при необходимости временно прекращает их чтение, чтобы очередь сообщений от одного участника не заняла слишком много памяти.

Но у этого ограничения был обходной путь. Если подключённый узел присылал специальные срочные данные TCP, обработчик продолжал читать информацию даже после установки паузы. Очередь росла без нормального ограничения, пока процессу не становилось недостаточно памяти. По формулировке разработчиков, злонамеренный подключённый участник мог вызвать сбой программы на перечисленных операционных системах.

Важно: наличие уязвимой версии не означает, что любой посетитель сайта мог выключить чужой компьютер. Нужен сетевой контакт с конкретной Bitcoin-нодой. Последствия связаны с доступностью программы: аварийное завершение работы, прекращение синхронизации и необходимость восстановить процесс. Это не описанный способ подписать перевод за владельца кошелька.

Linux в этом конкретном сценарии не затронут, поскольку Bitcoin Core использует там другой механизм ожидания сетевых событий - poll(). Подробности опубликованы в официальном сообщении о переполнении памяти через TCP. Делать из этого вывод, что ноды Linux вообще не нуждаются в обновлении, было бы ошибкой.

Вторая уязвимость: память расходовалась медленно, но без предела

Другая проблема не требовала срочных TCP-данных. Bitcoin Core отправляет подключённым участникам объявления о новых транзакциях. Если удалённый узел слишком медленно читает сообщения, программа ограничивает дальнейшую отправку. Однако отдельные уведомления продолжали добавляться в очередь, даже когда соединение было помечено как временно приостановленное.

Обычно Bitcoin Core проверяет активность удалённой стороны через ping и отключает участника, который не отвечает в течение приблизительно 20 минут. У старого режима совместимости до BIP31 этот механизм работает иначе. Злоумышленник мог выдавать себя за узел без поддержки соответствующих ping-сообщений и очень медленно принимать данные, заставляя очередь постепенно увеличиваться.

В раскрытии разработчики приводят ориентиры до 2 МБ в час на входящее соединение и до 5 МБ в час на исходящее. Это техническая оценка возможного роста очереди, а не статистика подтверждённых атак. При длительной работе и нескольких вредоносных соединениях избыточные данные могли накапливаться, создавая риск исчерпания оперативной памяти.

От первой ошибки эту уязвимость отличают темп и охват. Проблема проявляется постепенно и не ограничивается тем же механизмом select(), поэтому игнорировать её на Linux нельзя. Режим -blocksonly, в котором передача объявлений о транзакциях сильно ограничена, подвергается меньшему воздействию, но это не замена обновления. Разработчики изложили детали в отдельном уведомлении о медленном росте памяти.

Третья ошибка: проблема файлов отката блоков

Самая сложная уязвимость связана с файлами rev*.dat, где Bitcoin Core сохраняет данные для отмены применения блоков при реорганизации цепочки. В старом коде положение записей внутри этих файлов представлялось 32-битным числом. При очень большом размере файла числовое значение могло переполниться: новые данные попадали не туда, куда ожидала программа.

Для злоупотребления таким поведением в обычной 64-битной конфигурации требовалась практически нереализуемая последовательность действий майнера: изготовление огромного числа подходящих блоков, их точное размещение в файлах ноды и затем особая реорганизация цепочки. Именно поэтому разработчики оценили проблему как низкую по серьёзности и подчеркнули непрактичность эксплуатации.

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

Исправление переводит позиции данных на 64-битное представление, но есть исключения: 32-разрядные системы и хранилища блоков с файловой системой FAT32 остаются подвержены описанному ограничению. На FAT32 действует предел размера отдельного файла. Этот нюанс особенно важен тем, кто держит старую ноду на внешнем носителе. Подробная техническая цепочка описана в официальном разборе ошибки файлов отката.

Почему нельзя просто сказать, что Linux безопасен

В заголовках новостей фигурируют Windows и Mac, потому что первый, относительно простой сценарий аварийного завершения узла затрагивал именно такие системы вместе с BSD. Но два других дефекта имеют собственные условия. Медленное накопление объявлений не привязано к одному лишь Windows, а ошибка данных блоков зависит от размера файлов, разрядности и файловой системы.

Оператору важнее проверить реальную конфигурацию, чем успокаиваться названием своей ОС. Нода на современном 64-битном Linux с подходящей файловой системой и исправленной версией находится в иной ситуации, чем старая установка на 32-битной машине. Аналогично, узел на Windows с обновлённым Bitcoin Core не следует считать уязвимым к первому сценарию лишь потому, что он работает под Windows.

Отдельно стоит помнить о самостоятельном узле как о части инфраструктуры сервиса: если он перестанет отвечать, могут задержаться отображение неподтверждённых переводов и операции мониторинга. Это не меняет правила включения транзакций в блоки. Разницу между наблюдением за переводом и его подтверждением объясняет статья BarbadosNews о том, как работает мемпул биткоина.

Какие версии Bitcoin Core устанавливать

Для четырёх веток, по которым выпущены исправления трёх раскрытых ошибок, разработчики называют версии 29.5, 30.4, 31.2 и 32.1. Это не означает, что любая из них лучший выбор для новой установки. Bitcoin Core 32.1 - новая основная версия, а в её примечаниях разработчики отдельно указали, что ветка 29.x достигла окончания жизненного цикла и больше не будет получать обновления.

Установленная ветка Выпуск с исправлениями Что учитывать
29.x 29.5 Исправления включены, но ветка достигла EOL; следует планировать переход на поддерживаемый выпуск
30.x 30.4 Исправления трёх описанных проблем
31.x 31.2 Исправления трёх описанных проблем
32.x 32.1 Текущий основной выпуск на дату новости

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

Официальная страница Bitcoin Core 32.1 и инструкция по обновлению рекомендует штатно завершить старый процесс, дождаться полной остановки и только затем заменять файлы программы. Для узлов со своими кошельками перед крупным обновлением разумно создать проверенную резервную копию данных восстановления и оценить совместимость используемых дополнений.

Инфографика: три уязвимости Bitcoin Core - TCP-переполнение памяти, медленный рост памяти pre-BIP31 и ошибка undo-файлов; исправленные версии 29.5, 30.4, 31.2 и 32.1
Три раскрытых 28 октября уязвимости и выпуски с исправлениями. Для 32-разрядных систем и FAT32 сохраняется отдельное ограничение.

Могли ли из-за этих ошибок украсть биткоины

Ни одно из трёх официальных уведомлений не описывает прямой способ украсть seed-фразу, подписать чужую транзакцию или обойти криптографическую проверку Bitcoin. Две проблемы связаны с расходованием оперативной памяти, третья - с обработкой технических данных блоков в очень специфическом сценарии. Поэтому фраза «ИИ взломал биткоин» существенно искажает смысл новости.

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

Наличие исправления не устраняет другие типы рисков: фишинг, заражённые установщики, кражу резервной фразы, уязвимости расширений и ошибки человека при подтверждении перевода. Это особенно заметно на фоне другой октябрьской истории - уязвимости кошелька Electrum при работе с RBF, где модель угроз принципиально иная.

Как ИИ нашёл проблемы раньше массовой эксплуатации

Project Loupe, связанный с исследователем Элиасом Рорером и компанией Spiral, использует автоматизированное сканирование кода с большой языковой моделью. Результат такого поиска - потенциально подозрительный участок программы, а не готовое доказательство эксплуатируемости. В этой истории сообщения проверил и передал команде безопасности Bitcoin Core Грегори Сандерс.

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

Временная шкала тоже показывает различия. Медленное накопление памяти Project Loupe выявил 15 сентября, ошибку undo-файлов - ещё 8 июля, а баг TCP-соединений - 23 октября. Все три официально раскрыты только после выпуска патчей 27-28 октября. По обновлённой политике Bitcoin Core легко обнаруживаемые дефекты могут получать ускоренное исправление и публичное уведомление без длительного ожидания.

Что делать владельцу Bitcoin прямо сейчас

Если вы используете только мобильный кошелёк или учётную запись биржи, не нужно устанавливать Bitcoin Core исключительно из-за этой новости. Вместо этого проверьте, какое приложение действительно хранит ваши ключи, как организовано восстановление и не требует ли ваш сервис собственного обновления. Новые сообщения о «срочном переводе BTC на безопасный адрес» стоит рассматривать как потенциальное мошенничество.

Если вы самостоятельно запускаете Bitcoin Core, проверьте установленную версию и поддерживаемую ветку. Сверьте загрузку с официальным доменом разработчиков, при необходимости проверьте контрольную сумму и подпись релиза. Остановите программу штатным способом и убедитесь, что у вас есть резервные копии критичных кошелёчных данных, прежде чем обновлять узел.

После обновления проверьте, что именно новая версия запущена, синхронизация продолжается, а ресурсные показатели - прежде всего использование оперативной памяти и свободное место на диске - соответствуют обычному режиму. Для старого компьютера дополнительно выясните разрядность системы и формат диска, на котором хранится каталог блоков: установка патча сама по себе не убирает названные ограничения 32-bit и FAT32.

Для владельцев серверов с публичными подключениями полезно временно усилить наблюдение за состоянием процессов и подготовить обычную процедуру восстановления. Это стандартная эксплуатационная мера, не повод отключать проверку блоков или пользоваться непроверенными «антивирусными патчами» из соцсетей.

Что эта история говорит о безопасности Bitcoin

Раскрытие трёх ошибок показывает одновременно две вещи. Программное обеспечение Bitcoin, как и любой сложный сетевой проект, может содержать дефекты, которые долго остаются незамеченными. Но публичные уведомления и выпуски исправлений дают операторам возможность оценить реальные риски и вовремя обновиться, не полагаясь на слухи о «взломе блокчейна».

Главный вывод на 29 октября: собственные ноды Bitcoin Core стоит перевести на исправленный и поддерживаемый выпуск. Владельцам Windows, macOS и BSD особенно важен патч для TCP-ошибки; операторам любых систем не следует забывать о второй проблеме, а устаревшие 32-битные конфигурации и FAT32 требуют отдельного внимания. Для держателей BTC эта новость прежде всего о надёжности инфраструктуры, а не о потере криптовалюты из кошельков.

ПоделитьсяTelegramXFacebook
Автор