Удалённо эксплуатируемая уязвимость в OMI-агенте, навязываемом в Linux-окружениях Microsoft Azure
17 сентября 2021 года
Клиенты облачной платформы Microsoft Azure, использующие Linux в виртуальных машинах, столкнулись с критической уязвимостью ( CVE-2021-38647), позволяющей удалённо выполнить код с правами root. Уязвимость получила кодовое имя OMIGOD и примечательна тем, что проблема присутствует в приложении OMI Agent, которое без лишней огласки устанавливается в Linux-окружения.
OMI Agent активируется при использовании таких сервисов, как Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management и Azure Diagnostics. Например, атаке подвержены Linux-окружения в Azure для которых включён мониторинг. Агент является частью открытого пакета OMI (Open Management Infrastructure Agent) с реализацией стека DMTF CIM/WBEM для управления IT-инфраструктурой.
OMI Agent устанавливается в системе под пользователем omsagent и создаёт настройки в /etc/sudoers для запуска серии скриптов с правами root. В процессе работы создаются слушающие сетевые сокеты на сетевых портах 5985, 5986 и 1270. Сканирование в сервисе Shodan показывает наличие в сети более 15 тысяч уязвимых Linux-окружений. В настоящее время в открытом доступе уже размещён рабочий прототип эксплоита, позволяющий выполнить свой код с правами root на подобных системах.
Метод эксплуатации тривиален - достаточно отправить к агенту XML-запрос, удалив заголовок, отвечающий за аутентификацию. OMI использует аутентификацию при получении управляющих сообщений, проверяя, что клиент имеет право на отправку той или иной команды. Суть уязвимости в том, что при удалении в сообщении заголовка "Authentication", отвечающего за аутентификацию, сервер считает прохождение проверки успешной, принимает управляющее сообщение и допускает выполнение команд с правами root. Для выполнения произвольных команд в системе достаточно использовать в сообщении штатную команду ExecuteShellCommand_INPUT. Например, для запуска утилиты "id" достаточно отправить запрос:
curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body.txt" https://10.0.0.5:5986/wsman <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">... <s:Body> <p:ExecuteShellCommand_INPUT xmlns:p="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:command>id</p:command> <p:timeout>0</p:timeout> </p:ExecuteShellCommand_INPUT> </s:Body> </s:Envelope>
Компания Microsoft уже выпустила обновление OMI 1.6.8.1 с устранением уязвимости, но оно ещё не доведено до пользователей Microsoft Azure (в новых окружениях пока устанавливается старая версия OMI). Автообновление агента не поддерживается, поэтому пользователям необходимо выполнить обновление пакета вручную, используя команды "dpkg -l omi" в Debian/Ubuntu или "rpm -qa omi" в Fedora/RHEL. В качестве обходного пути защиты рекомендуется блокировать доступ к сетевым портам 5985, 5986 и 1270.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.