Telegram (AI) YouTube Facebook X
En
биткоин-кошельки уязвимость, безопасность crypto wallet security

Пользователь Electrum потерял биткоины при попытке ускорить транзакцию

Через уязвимость в биткоин-кошельке Electrum злоумышленники перехватывали транзакции пользователей и подставляли вместо них поддельные. Средства уходили атакующим при попытке ускорить перевод, рассказали разработчики.

По их данным, схема уже применялась на практике. Как минимум один пользователь потерял средства.

Проблема получила идентификатор GHSA-6jp4-8v48-cc5v и высокий уровень опасности. Она затрагивает все версии Electrum до 4.8.3, выпущенной 24 октября.

Как работала атака

Electrum не проверяет транзакции самостоятельно: сведения о них кошелек получает от внешних серверов и через них же отправляет платежи в сеть биткоина. При этом данным сервера о неподтвержденных переводах он доверяет без проверки подписей.

Разработчики подчеркнули, что это задокументированная особенность архитектуры, однако теперь злоумышленники нашли способ ею воспользоваться.

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

Хотя подписи такого перевода были недействительными, Electrum отображал его в истории как неподтвержденный, а настоящая транзакция там не появлялась.

Далее злоумышленник рассчитывал, что пользователь попытается ускорить якобы зависший платеж с помощью механизма Replace-by-Fee (RBF). Эта функция позволяет заменить неподтвержденную транзакцию новой версией с более высокой комиссией.

При использовании RBF Electrum мог создать и подписать действительный перевод на основе поддельной операции. В результате биткоины отправлялись злоумышленнику.

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

Для маскировки подмены злоумышленник также подбирал адреса, у которых последние четыре символа совпадали с адресом настоящего получателя. Это затрудняло обнаружение обмана при беглой проверке.

Сама по себе подмена не приводила к потере средств. Атака не требовала доступа к приватным ключам: монеты уходили злоумышленнику, только если пользователь сам подписывал измененную операцию.

Разработчики подтвердили случай хищения

По словам разработчиков, первое сообщение об уязвимости поступило 11 октября от пользователя кошелька с мультиподписью «2 из 3» и двумя аппаратными устройствами Trezor.

После проверки и отправки перевода он обнаружил в истории Electrum другую транзакцию — на неизвестный адрес. Исходный платеж при этом не попал в сеть биткоина. Пользователь не сообщил о потере средств.

18 октября команда кошелька получила второе обращение. Его автор рассказал, что увеличил комиссию подмененной транзакции и в результате лишился биткоинов.

Сумму ущерба представители проекта не раскрыли. Также неизвестны личности злоумышленников, количество подконтрольных им серверов и общий масштаб атак.

24 октября команда Electrum публично раскрыла уязвимость и выпустила исправленную версию 4.8.3.

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

Разработчики призвали пользователей установить последнюю версию кошелька. Тем, кто пока не обновился, они рекомендовали внимательно проверять адреса получателей и суммы перед подписанием любых операций, включая увеличение комиссии.

Пользователи, подключавшиеся только к доверенным серверам, например собственным, не подвергались описанной атаке.

Напомним, летом злоумышленники украли более 1700 BTC из аппаратных кошельков Coldcard. Из-за ошибки в прошивке устройства генерировали ненадежные приватные ключи, что позволило хакерам их восстановить.

Подписывайтесь на ForkLog в социальных сетях

Telegram (основной канал) Facebook X
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Мы используем файлы cookie для улучшения качества работы.

Пользуясь сайтом, вы соглашаетесь с Политикой приватности.

OK