Уязвимость в прошивках BMC-контроллеров, затрагивающая серверы многих производителей

Компания Eclypsium выявила две уязвимости в прошивках BMC-контроллера, поставляемого в серверах Lenovo ThinkServer, позволяющие локальному пользователю подменить прошивку или выполнить произвольный код на стороне чипа BMC.

Дальнейший разбор показал, что данные проблемы затрагивают и прошивки BMC-контроллеров, применяемые в серверных платформах Gigabyte Enterprise Servers, которые также используются в серверах таких компаний, как Acer, AMAX, Bigtera, Ciara, Penguin Computing и sysGen. В проблемных BMC-контроллерах применялись уязвимые прошивки MergePoint EMS, разработанные сторонним поставщиком Avocent (в настоящее время является подразделением компании Vertiv).

Первая уязвимость вызвана отсутствием криптографической верификации загружаемых обновлений прошивки (используется только проверка контрольной суммы CRC32, вопреки рекомендации NIST использовать цифровые подписи), что позволяет атакующему, имеющему локальный доступ к системе, подменить прошивку BMC. Проблема, например, может быть использована для глубокой интеграции руткита, остающегося активным после переустановки операционной системы и блокирующего дальнейшие обновления прошивки (для устранения руткита потребуется применение программатора для перезаписи SPI flash).

Вторая уязвимость присутствует в коде обновления прошивки и позволяет осуществить подстановку своих команд, которые будут выполнены в BMC c наивысшим уровнем привилегий. Для атаки достаточно изменить значение параметра RemoteFirmwareImageFilePath в файле конфигурации bmcfwu.cfg, через который определяется путь к образу обновляемой прошивки. Во время очередного обновления, которое можно инициировать командой в IPMI, данный параметр будет обработан BMC и использован в составе вызова popen() как часть строки для /bin/sh. Так как строка для формирования shell-команды создаётся с применением вызова snprintf() без должной чистки спецсимволов, атакующие могут подставить свой код для выполнения. Для эксплуатации уязвимости требуется наличие прав, позволяющих отправить через IPMI команду контроллеру BMC (при наличии права администратора на сервере можно отправить команду IPMI без дополнительной аутентификации).

Компании Gigabyte и Lenovo были оповещены о проблемах ещё в июле 2018 года и успели выпустить обновления до публичного раскрытия сведений. Компания Lenovo выпустила обновления прошивок 15 ноября 2018 года для серверов ThinkServer RD340, TD340, RD440, RD540 и RD640, но устранила в них только уязвимость, позволяющую осуществить подстановку команд, так как во время создания линейки серверов на базе MergePoint EMS в 2014 году верификация прошивок по цифровой подписи ещё не была широко распространена и изначально не заявлялась.

8 мая этого года компания Gigabyte выпустила обновления прошивок для материнских плат с контроллером ASPEED AST2500, но как и Lenovo устранила только уязвимость, связанную с подстановкой команд. Уязвимые платы на базе ASPEED AST2400 пока остаются без обновления. Gigabyte также заявил о переходе на использование прошивок MegaRAC SP-X от компании AMI. В том числе новые прошивки на базе MegaRAC SP-X будут предложены для систем, ранее поставлявшихся с прошивками MergePoint EMS. Решение принято после заявления Vertiv о прекращении поддержки платформы MergePoint EMS. При этом об обновлении прошивок на серверах, выпускаемых компаниями Acer, AMAX, Bigtera, Ciara, Penguin Computing и sysGen на базе плат Gigabyte и оснащённых уязвимыми прошивками MergePoint EMS пока ничего не сообщается.

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

Источник: opennet.ru

Добавить комментарий