Управління безпекою хмари (CSPM) важливе для захисту та відповідності хмарних середовищ. Ймовірність помилкових конфігурацій безпеки значно збільшується через неправильне керування дозволами, прогалини в мережевих налаштуваннях та інші вразливості.
Цей підхід забезпечує постійний моніторинг та оцінку хмарних робочих навантажень для виявлення вразливостей і можливих загроз. Він також надає рекомендації для усунення потенційних ризиків безпеки хмарного середовища.
Wazuh – це платформа корпоративного рівня з відкритим кодом для моніторингу безпеки, що забезпечує комплексний захист хмарних, локальних, контейнерних і віртуальних середовищ.
Microsoft Azure – це хмарна платформа, що пропонує широкий спектр послуг, які допомагають компаніям створювати, розгортати та керувати своїми додатками та інфраструктурою.
Ця публікація демонструє, як використовувати Wazuh для моніторингу безпеки Microsoft Azure.
Інфраструктура
Що потрібно:
- Попередньо налаштована та готова до використання віртуальна машина Wazuh OVA 4.6.0, що включає основні компоненти рішення (сервер, indexer, дешборд).
- Обліковий запис Microsoft Azure з активною підпискою та правами глобального адміністратора.
Інтеграція Wazuh з Microsoft Azure
Wazuh інтегрується з Azure за допомогою робочої області Log Analytics. Це унікальне середовище для зберігання даних журналу з Azure Monitor та інших його сервісів, як-от 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) На панелі пошуку порталу Azure ввести й обрати 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







