Эксперты компании Eclypsium сообщили, что десятки тысяч серверов и рабочих станций Supermicro уязвимы перед удаленными атаками из-за проблем, связанных с BMC (Baseboard Management Controller) материнских плат. Баги получили общее название USBAnywhere.
По сути, BMC является частью IPMI (Intelligent Platform Management Interface) и представляет собой отдельный компьютер, встроенным в серверную платформу, и он оснащается собственным программным обеспечением, CPU, системой хранения данных и LAN-интерфейсом, через который удаленный администратор может подключиться и отдать серверу или ПК команду на выполнение различных операций (изменение настроек ОС, переустановка ОС, обновление драйверов и так далее).
Уязвимости USBAnywhere, обнаруженные специалистами в прошивке Supermicro BMC, связаны с функциональностью подключения виртуальных USB-устройств, которая позволяет администратору подключить USB к собственному компьютеру, но «увидеть» его как виртуальный USB-девайс, подключенный к удаленно управляемой системе. Эта функция представляет собой небольшое Java-приложение, которое работает через стандартный веб-интерфейс BMC в системах Supermicro.
Эксперты обнаружили сразу четыре проблемы с аутентификацией в этом Java-приложении:
- аутентификация открытым тестом: хотя приложение использует уникальный ID сессии для аутентификации, служба также позволяет клиенту использовать имя пользователя и пароль в формате простого текста;
- незашифрованный сетевой трафик: шифрование доступно, но его должен запросить клиент. Упомянутое Java-приложение использует шифрование для начального аутентификационного пакета, но после использует незашифрованные пакеты для остального трафика;
- слабое шифрование: когда шифрование включено, пейлоад шифруется с помощью RC4, с использованием фиксированного ключа, скомпилированного в BMC. Проблема в том, что этот ключ используется всеми BMC Supermicro, а RC4 имеет множество известных криптографических проблем и запрещен к использованию в TLS (RFC7465);
- обход аутентификации (только в Supermicro X10 и X11): после того как клиент прошел надлежащую аутентификацию в службе виртуальных носителей, а затем отсоединился, служба некорректно определяет внутреннее состояние для данного клиента. Проблема в том, что ОС BMC, наследует это внутреннее состояние. В итоге это позволяет новому клиенту наследовать авторизацию предыдущего, даже если новый клиент пытается пройти аутентификацию с неверными учетными данными.
Наиболее опасным и всех багов USBAnywhere определенно является четвертый, позволяющий полностью обойти аутентификацию. И хотя это «слепая» уязвимость, исследователи не советуют компаниям рисковать.
При помощи обнаруженных багов, злоумышленник может сделать практически то же самое, что и с физическим доступом к USB-порту. Так, атакующий получит возможность загрузить машину с вредоносного USB-образа, использовать виртуальный USB Rubber Ducky, который выполнит последовательность тщательно продуманных нажатий клавиш, а также осуществлять практически любые виды атак, направленные против BMC, прошивки или лежащего в основе сервера (внедрение малвари, хищение данных, полное отключение устройства и так далее).
Разработчики Supermicro уже выпустили исправления для всех обнаруженных проблем и поблагодарили специалистов Eclypsium за помощь в создании «заплаток». Патчи вышли для Supermicro X9, X10 и X11.
Эксперты Eclypsium предупреждают, что сканирование TCP-порта 623 выявило в сети более 47 000 BMC с доступной службой виртуальных носителей в 90 странах мира.