Управление безопасностью облака (CSPM) важно для защиты и соответствия облачных сред. Вероятность ошибочных конфигураций безопасности значительно увеличивается из-за неправильного управления разрешениями, пробелов в сетевых настройках и других уязвимостей.
Этот подход обеспечивает постоянный мониторинг и оценку облачных рабочих нагрузок для выявления уязвимостей и возможных угроз. Он также дает рекомендации по устранению потенциальных рисков безопасности облачной среды.
Wazuh – это платформа корпоративного уровня с открытым кодом для мониторинга безопасности, которая обеспечивает комплексную защиту облачных, локальных, контейнерных и виртуальных сред.
Microsoft Azure – это облачная платформа, которая предлагает широкий спектр услуг, которые помогают компаниям создавать, развертывать и управлять своими приложениями и инфраструктурой.
В этой публикации продемонстрировано, как использовать Wazuh для мониторинга безопасности Microsoft Azure.
Инфраструктура
Что нужно:
- Предварительно настроенная и готовая к использованию виртуальная машина Wazuh OVA 4.6.0, которая включает основные компоненты решения (сервер, indexer, дешборд).
- Учетная запись Microsoft Azure с активной подпиской и правами глобального администратора.
Интеграция Wazuh с Microsoft Azure
Wazuh интегрируется с Azure с помощью рабочей области Log Analytics. Это уникальная среда для хранения данных журнала с Azure Monitor и других сервисов Azure, таких как Microsoft Defender для облака. Wazuh предоставляет встроенный модуль для интеграции с Azure, который получает журналы из рабочей области Log Analytics.
Ниже предоставлена инструкция для интеграции.
Microsoft Azure
Создание сервисной записи для программы
Это включает в себя регистрацию приложения с Microsoft Entra ID, что автоматически создает сервисную запись.
Microsoft Entra ID (Azure Active Directory) – это интегрированное облачное решение для управления идентичностями и доступом.
Сервисная запись (service principle) – это идентичность программы в Microsoft Entra, чей доступ к ресурсам ограничен приписанными ей ролями.
Нужно создать приложение Microsoft Entra ID, необходимое для аутентификации Wazuh в рабочей области Log Analytics.
1) В строке поиска портала Azure ввести и выбрать Microsoft Entra ID. Затем выбрать App registrations в каталоге Default Directory в меню боковой панели.
2) Нажать + New registration на панели команд, чтобы создать новую сервисную запись для программы.
3) Ввести название программы и нажать Register. Следует обратить внимание на ID приложения (клиента) на странице его обзора.

Регистрация сервисной записи для программы
4) На странице обзора приложения:
- В меню боковой панели выбрать Certificates & secrets.
- Перейти на вкладку Client secrets.
- Нажать + New client secret. Ввести описание секрета, выбрать срок действия и щелкнуть Add.
- Скопировать и сохранить значение секрета клиента.
Примечание: его можно просмотреть только после создания. Необходимо обязательно сохранить секрет, прежде чем покинуть страницу.

Создание секрета клиента
5) На странице обзора приложения нажать API permissions, затем – + Add a permission.
6) На странице Request API permissions:
Перейти во вкладку APIs my organization uses.
Искать и выбрать Log Analytics из списка.
Нажать Application permissions.
Выбрать разрешение Read Log Analytics data.
Щелкнуть Add permissions.
На странице API permissions нажать Grant admin consent for Default Directory.
Щелкнуть Yes.

Добавление разрешения API к сервисной записи для программы
Создание рабочей области Log Analytics
Рабочая область Log Analytics содержит журналы и данные. Она имеет уникальный идентификатор рабочей области и ресурса. Модуль Azure в Wazuh настраивается для запроса новых данных оттуда.
1) В строке поиска портала Azure ввести и выбрать Log Analytics workspaces. Затем выбрать + Create на панели команд для создания новой рабочей области.
2) В открывшемся диалоговом окне нажать Create new, чтобы создать группу ресурсов для Log Analytics. Далее ввести название для Resource group и щелкнуть OK.
3) В разделе Instance details ввести имя рабочей области Log Analytics.
4) Перейти во вкладку Review + Create. После валидации рабочей области щелкнуть Create. Нужно подождать, когда новая рабочая среда будет готова. Это может занять несколько минут.

Создание рабочей области Log Analytics
5) В строке поиска портала ввести Log Analytics workspaces и выбрать новую рабочую область. Скопировать Workspace ID из раздела Essentials. Он нужен для конфигурации в Wazuh.

Идентификатор рабочей области Log Analytics
6) В меню боковой панели страницы рабочей области Log Analytics:
- Нажать Access control (IAM).
- Затем щелкнуть +Add на панели команд и выбрать Add role assignment.
- На этой странице искать и выбрать Log Analytics Reader, затем нажать Next.
- На странице Members щелкнуть + Select members.
- В поле Select members искать название сервисной записи для программы и нажать Select.
- Щелкнуть Next, а затем – Review + assign.

Управление доступом в рабочей области Log Analytics
7) На панели поиска портала ввести и выбрать Microsoft Entra ID.
8) Скопировать название Primary domain (основного домена) из раздела Basic Information. Это необходимо для конфигурации в Wazuh.

Основной домен
Включение Microsoft Defender для облака
Необходимо включить и настроить Microsoft Defender для сканирования всех ресурсов в Azure и отправки данных журнала безопасности и рекомендаций в рабочую область Log Analytics. Оповещения обо всех неправильных настройках безопасности генерируются с помощью модуля CSPM (управление безопасностью облака).
1) В строке поиска портала Azure ввести Microsoft Defender, а затем выбрать Microsoft Defender for Cloud.
2) Нажать Getting started в меню боковой панели. На этой странице во вкладке Upgrade выбрать свою подписку, а затем щелкнуть Upgrade внизу страницы.

Включение Microsoft Defender для облака
3) В левом меню Microsoft Defender для облака:
- Перейти в раздел Management и нажать Environment settings.
- Развернуть Azure > Tenant Root Group.
- Выбрать свою подписку Azure.
- На странице Settings убедиться, что возле Status активна метка On, если нет – нажать Enable all plans и Save.

Enable all plans в подписке Azure
4) Щелкнуть Continuous export в меню боковой панели и перейти во вкладку Log Analytics workspace, чтобы настроить Defender на постоянную отправку журналов в рабочую область Log Analytics. Поставить галочки на Security alerts и Regulatory compliance.

Настройка непрерывного экспорта
5) Прокрутить вниз до разделов Export и выбрать группу ресурсов в Resource group, которая создана для рабочей области Log Analytics. Выбрать подписку Azure в Subscription и нужную рабочую область в Select target workplace. Нажать Save.

Настройка непрерывного экспорта
6) В левом меню Microsoft Defender для облака:
- Перейти к разделу Management и выбрать Environment settings.
- Развернуть Azure > Tenant Root Group > свою подписку Azure.
- Выбрать созданную рабочую область Log Analytics.
- Убедиться, что возле Status активна метка On, если нет – нажать Enable all plans и Save.

Enable all plans в рабочей области Log Analytics
Сервер Wazuh
Необходимо настроить сервер Wazuh для получения журналов от Microsoft Azure.
Примечание: нужно выполнить следующие команды от пользователя root.
1) Создать каталог учетных данных в каталоге /var/ossec/wodles/:
mkdir /var/ossec/wodles/credentials
2) Создать файл /var/ossec/wodles/credentials/log_analytics_credentials:
touch /var/ossec/wodles/credentials/log_analytics_credentials
3) Обновить файл /var/ossec/wodles/credentials/log_analytics_credentials, как показано ниже:
application_id = <SERVICE_PRINCIPAL_APPLICATION_ID>
application_key = <CLIENT_SECRET_VALUE>
Заменить:
- <SERVICE_PRINCIPAL_APPLICATION_ID> на ID сервисной записи для программы.
- <CLIENT_SECRET_VALUE> на значение секрета клиента.
4) Добавить следующее содержимое в файл конфигурации /var/ossec/etc/ossec.conf. Это определяет, как Wazuh подключается к Azure:
<ossec_config>
<wodle name="azure-logs">
<disabled>no</disabled>
<run_on_start>yes</run_on_start>
<interval>5m</interval>
<log_analytics>
<auth_path>/var/ossec/wodles/credentials/log_analytics_credentials</auth_path>
<tenantdomain><PRIMARY_DOMAIN></tenantdomain>
<request>
<tag>azurefindings</tag>
<query>SecurityRecommendation</query>
<workspace><LOG_ANALYTICS_WORKSPACE_ID></workspace>
<time_offset>1d</time_offset>
</request>
<request>
<tag>azurefindings</tag>
<query>SecurityAlert</query>
<workspace><LOG_ANALYTICS_WORKSPACE_ID></workspace>
<time_offset>1d</time_offset>
</request>
</log_analytics>
</wodle>
</ossec_config>
Примечание: значение interval отображает время между выполнением каждого модуля Azure-Logs.
Заменить:
- <PRIMARY_DOMAIN> на скопированное название домена Azure.
- <LOG_ANALYTICS_WORKSPACE_ID> на ID рабочей области Log Analytics.
5) Создать файл правил azure_posture.xml в каталоге /var/ossec/etc/rules/ и добавить следующие кастомные правила:
<group name="azure,">
<rule id="100200" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityRecommendation</field>
<description>Azure Security Posture: $(RecommendationName).</description>
</rule>
<rule id="100201" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityAlert</field>
<field name="ResourceId">Microsoft.Compute</field>
<description>Azure Security Posture: $(DisplayName).</description>
<mitre>
<id>T1651</id>
</mitre>
</rule>
<rule id="100202" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityAlert</field>
<field name="ResourceId">microsoft.keyvault</field>
<description>Azure Security Posture: $(DisplayName).</description>
<mitre>
<id>T1098.004</id>
</mitre>
</rule>
<rule id="100203" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityAlert</field>
<field name="ResourceId">Microsoft.Web</field>
<description>Azure Security Posture: $(DisplayName).</description>
<mitre>
<id>T1648</id>
</mitre>
</rule>
<rule id="100204" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityAlert</field>
<field name="ResourceId">Microsoft.ApiManagement</field>
<description>Azure Security Posture: $(DisplayName).</description>
<mitre>
<id>T1059.009</id>
</mitre>
</rule>
<rule id="100205" level="10">
<if_sid>87801</if_sid>
<field name="Type">SecurityAlert</field>
<field name="ResourceId">Microsoft.ContainerService|cluster</field>
<description>Azure Security Posture: $(DisplayName).</description>
<mitre>
<id>T1609</id>
</mitre>
</rule>
</group>
Где активируется правило, когда Wazuh обнаруживает:
- ID 100200 – новую рекомендацию безопасности в Azure.
- ID 100201 – атаку на виртуальную машину Azure.
- ID 100202 – атаку в Azure Key Vault (хранилище криптоключей).
- ID 100203 – атаку в Azure App Service (службе приложения).
- ID 100204 – атаку в Azure API Management (управлении API).
- ID 100205 – атака в контейнере или кластерах Azure.
6) Перезапустить менеджер Wazuh, чтобы применить настройки:
systemctl restart wazuh-manager
Моделирование образцов оповещений в Microsoft Defender для облака
Для этого нужно выполнить следующие действия.
1) На панели поиска портала Azure ввести Microsoft Defender, а затем выбрать Microsoft Defender for Cloud.
2) Нажать Security alerts в меню боковой панели. В открывшемся окне оповещений безопасности выбрать Sample alerts на панели команд. Далее надо выбрать свою подписку и нужную службу Azure в Defender for Cloud plans и нажать Create sample alerts.
3) Обновить страницу для отображения сгенерированных оповещений.

Создание образцов оповещений
Результаты на дешборде Wazuh
Можно визуализировать результаты, перейдя во вкладку Modules > Security events и применив фильтр для группы правил Azure.

События безопасности на дешборде Wazuh







