Одного из крупнейших производителей оборудования для майнинга Bitmain обвинили в возможности удаленно отключить практически все устройства Antminer, произведенные со второй половины 2016 года. Этот инструмент под названием Antbleed способен вывести из строя больше половины действующих мощностей хэширования сети Биткоина.

«Даже если у Bitmain не было дурных намерений, это все равно серьезная дыра в безопасности», - заявляет «анонимный источник», обнаруживший уязвимость.

Соответствующий код из прошивки Antminer можно найти на Pastebin и репозитории Bitmain на GitHub, а также на только что открытом сайте, посвященном Antbleed.

Как это работает

Код «черного хода» «прост до безобразия», как его описывает анонимный источник. Всякий раз, когда Antminer появляется в сети, примерно каждые 11 минут он связывается по порту 7000 с доменом auth.minerlink.com, который принадлежит Bitmain. В настоящее время доменное имя не задействовано, то есть не связано к каким-либо IP-адресом, следовательно, ничего не делает. Однако «в ближайшем будущем» домен может быть задействован. Если это произойдет, майнер при подключении к сервису сообщит Bitmain серийный номер Antminer, а также его MAC и IP адреса. Этих данных может быть достаточно для того, чтобы компания могла сопоставить конкретную машину с IP-адресом, с которого он работает.

«Bitmain может использовать эти данные, чтобы осуществлять мониторинг действий пользователя и идентифицировать его. Майнинг биткоинов – не очень крупная отрасль, поэтому найти связь между оборудованием и конкретными пулами или блоками не так уж сложно», - отмечает анонимный источник.

После подключения, сервер, к которому обращается Antminer (сервер Bitmain) согласно указанному выше коду отвечает на сообщение. Если сообщение имеет статус «true», то устройство продолжает майнинг. Однако, если устройство получает статус «false», то код генерирует следующий текст – «Stop mining!!!». Анонимный источник утверждает, что эта команда останавливает майнинг. Любой обладатель Antminer может проверить это на себе – на сайте antbleed.com рассказывается, как это можно сделать.

Разработчик Bitcoin Core Питер Тодд (Peter Todd), который быстро отреагировал на ситуацию в своем Твиттере и на Reddit, отмечает:

«Вероятно, Bitmain недооценил тщательность исследования своего кода – считается, что код никто не читает. Помимо этого, если ты хочешь добавить «черный ход», нужно иметь в запасе правдоподобное объяснение такой истории, на тот случай, если он будет обнаружен. Лучше всего такие вещи скрываются на поверхности – среди тысяч строк недокументированного кода. Возможно, Bitmain в итоге заявит, что это "не баг, а фича"».

На что это влияет

Этот бэкдор, вероятно, может быть использован на большинстве устройств Antminer, используемых сегодня - S9, T9 и R4, а также L3 и L3+ для майнинга LTC. Дата последнего изменения кода указывает на то, что бэкдор мог был добавлен в июле 2016 года. Все устройства, выпущенные после июля 2016 года, таким образом, могут быть отключены Bitmain в любой момент. Устройства, которые были выпущены ранее, а затем обновлены, также могут быть уязвимы.

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

При этом, не только Bitmain может получить неограниченную власть над Antminer. Так как соединение не является аутентифицированным, майнер может подключаться ко всему, что выглядит как «auth.minerlink.com», что может быть использовано третьей стороной. Помимо Bitmain, отключать Антмайнеры смогут, например, интернет-провайдеры, сервис CloudFlare, к услугам которого прибегает Bitmain, или любой, кто может подменить записи DNS – ICANN, хакеры, правительство США и другие.

«Самое лицеприятное объяснение сложившейся ситуации – компания Bitmain некомпетентна в вопросах безопасности и подвергает риску всю сеть Биткоина», - отмечает Питер Тодд. 

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

Как вылечить Antbleed

На данный момент, существует достаточно простой способ нейтрализовать действие Antbleed  - для этого достаточно сопоставить запись DNS домена auth.minerlink.com с адресом локального компьютера - 127.0.0.1 (или любым адресом в локальной сети). Таким образом, при попытке связаться с этим сайтом, Antminer будет "стучаться" на порт 7000 самого себя и просто не получит никакого ответа а значит, ничего не передаст и его нельзя будет удаленно отключить. 

Провести эту операцию можно с помощью большинства домашних или корпоративных маршрутизаторов, таким образом, одновременно обезопасив все свои ASIC-майнеры производства Bitmain от потенциальной реализации этой угрозы.

Также, можно провести эту операцию на самом Antminer:

  1. Войти на устройство с помощью SSH.

  2. Запустить команду:  echo “127.0.0.1 auth.minerlink.com” >> /etc/hosts

  3. Сохранить изменения командой:   sync


Ответ Bitmain

Bitmain в своем блоге признала наличие уязвимости и опубликовала новую версию прошивки для всех перечисленных выше устройств, которая устраняет возможность удаленного отключения Антмайнеров. Компания связывает наличие уязвимости с крупными хищениями устройств, которые произошли в 2014 и 2015 годах. Однако, это средство не слишком эффективно, так как обойти Antbleed может не только законный покупатель, но и вор. Произвести указанные выше операции может любой специалист, обладающий навыками системного администратора, или даже продвинутый пользователь, который сможет найти причину отключения майнинга на устройстве.

Новые прошивки можно скачать с официального сайта компании:

Antminer S9 firmware

Antminer T9 firmware

Antminer R4 firmware

Antminer L3 firmware

Antminer L3+ firmware

При том, насколько просто оказалось найти Antbleed (код открыт и опубликован в официальном репозитории Bitmain), трудно подозревать производителя в каком-то заговоре. С другой стороны, поскольку устройства Antminer действительно останавливают процесс майнинга при получении команды с удаленного сервиса - даже если это не злой умысел, то очень серьезная брешь в безопасности. В плюс Bitmain можно поставить оперативное признание существования бага и быстрый выпуск исправления.. Однако, как и в случае с ASICboost, у сообщества остается негативный осадок - если не в преступных намерениях, то в непрофессиональных действиях, которые могли привести к плачевным последствиям для всей сети.