
OMIGOD! OM I GOOD? Бесплатный сканер для обнаружения виртуальных машин, уязвимых к одной из уязвимостей "OMIGOD", обнаруженных командой исследования угроз Wiz, а именно CVE-2021-38647.
Этот репозиторий содержит бесплатный сканер для обнаружения виртуальных машин, уязвимых для одной из уязвимостей "OMIGOD", обнаруженных исследовательской группой Wiz, а именно CVE-2021-38647.
Оригинальная статья в блоге Wiz: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
Сканер требует учетные данные Azure для подключения к API Azure и, при указании подписки и группы ресурсов (или по умолчанию сканирует все доступные), получает список виртуальных машин Linux и сообщает, может ли машина быть уязвимой.
Также обязательно ознакомьтесь с собственным инструментом Microsoft для этой цели: https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck
Для аутентификации в API Azure поддерживаются как azure cli (по умолчанию), так и интерактивная аутентификация в браузере. Проверьте параметр командной строки --auth.
Не существует простого способа определить, уязвимы ли ваши машины для OMI, без выполнения команд на самой машине Linux. Это поддерживается через API Azure с помощью команды RunShellScript через расширение. Собственный инструмент Microsoft (https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck) также использует этот подход.
Стоит отметить, что даже если виртуальная машина уязвима, она может не предоставлять сервер OMI через HTTP/HTTPS (что является поведением по умолчанию), и даже если предоставляет, эти порты могут быть заблокированы сетевыми группами безопасности Azure, следовательно, недоступны. Это не причина избегать исправления, но если у вас много уязвимых виртуальных машин Linux, может быть полезно знать, какие из них более подвержены риску, и расставить приоритеты.
omigood следует этому более комплексному подходу и выдает JSON-вывод с рядом проверок, которые вы можете запускать с помощью параметров командной строки, чтобы определить свою поверхность атаки.
Вот проверки, выполняемые omigood:
1.13.40. Вы можете посмотреть скрипт, который мы запускаем здесь.-e.-r. Используйте на свой страх и риск!/usr/bin/id. Эта проверка необязательна, так как включает попытку эксплуатации ВМ. Включите её с помощью параметра командной строки -a. Используйте только на целях, которые вам разрешено тестировать. Используйте на свой страх и риск!Сгенерированный JSON-файл вывода содержит всю информацию об отсканированных ВМ: ID, операционная система, группы безопасности сети, состояние питания и т.д.
Флаги ('YES'/'NO'), которые имеют отношение к проверкам:
YES, если расширение агента OMS найдено на ВМ.YES, если версия расширения агента OMS ниже 1.13.40.YES, если правила групп безопасности сети, по-видимому, разрешают подключения к портам OMI.YES, если эффективные правила безопасности, по-видимому, разрешают подключения к портам OMI. Только с параметром командной строки -e.YES, если версия сервера OMI была получена через скрипт и определена как ниже 1.6.8-1. Только с параметром командной строки -r.YES, если статус сервера OMI был получен через скрипт и определено, что он прослушивает TCP, а не только UNIX-сокеты. Только с параметром командной строки -r.YES, если атака на публичный IP ВМ была успешной. Только с параметром командной строки .usage: omigood_scanner.py [-h] [-v] [--auth {azurecli,interactivebrowser}] [-r] [-a] [-e] [-s SUBSCRIPTIONS]
[-g RESOURCEGROUPS] [-m VMS] -o OUTPUT
OMIGood scanner for CVE-2021-38647
optional arguments:
-h, --help show this help message and exit
-v, --verbose [OPTIONAL] Verbose mode: Displays additional debug details.
--auth {azurecli,interactivebrowser}
Authentication mode. Default: azurecli.
-r, --runscript [OPTIONAL] Run Script. Runs bash script on target VMs to check for OMI server, agent and
version. Disabled by default. Use at your own risk.
-a, --attack [OPTIONAL] Try to attack the host. Disabled by default. Use at your own risk.
-e, --effective [OPTIONAL] Check Effective Security Rules. Disabled by default. Requires higher permissions on
Azure.
-s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS
[OPTIONAL] Comma separate list of subscriptions IDs. If not specified, it will try all.
-g RESOURCEGROUPS, --resourcegroups RESOURCEGROUPS
[OPTIONAL] Comma separated list of Resource Group names. If not specified, it will try all. If
specified, it will work only with a single subscription provided.
-m VMS, --vms VMS [OPTIONAL] Comma separated list of VM names. If not specified, it will try all. If specified,
it will work only with a single subscription and a single resource group provided.
-o OUTPUT, --output OUTPUT
JSON output file with results.
Программное обеспечение и примеры кода, доступные в этом репозитории, предоставляются "как есть" без каких-либо гарантий, явных или подразумеваемых. Используйте на свой страх и риск.
-r