Wazuh. Управління безпекою хмари Google Cloud

Управління безпекою хмари (CSPM) відіграє велику роль у безпеці та відповідності в хмарних середовищах. Вірогідність виникнення неправильних налаштувань безпеки помітно зростає через некоректне управління дозволами, прогалини в мережевих конфігураціях та інші слабкі місця.

Цей підхід передбачає постійний моніторинг і оцінку робочих навантажень у хмарі для виявлення вразливостей і потенційних загроз. Крім того, він надає рекомендації для усунення ризиків безпеки в хмарному середовищі.

Wazuh – open-source платформа корпоративного рівня для моніторингу безпеки, що забезпечує комплексний захист в хмарних, локальних, контейнерних і віртуальних середовищах.

У цій публікації описано, як використовувати Wazuh для управління безпекою Google Cloud Platform (GCP).

Інфраструктура

Що потрібно:

  • Попередньо налаштована та готова до використання остання доступна версія віртуальної машини Wazuh OVA, що включає основні компоненти рішення (сервер, indexer, дешборд).
  • Обліковий запис GCP з правами адміністратора. Рекомендовано використовувати тестовий акаунт без важливих робочих навантажень.

Інтеграція Wazuh з GCP

Wazuh інтегрується з GCP за допомогою Google Cloud publisher and subscriber service (GCP Pub/Sub).

Google Cloud Pub/Sub – це служба обміну інформацією, що дозволяє програмам надсилати та отримувати дані про події. Wazuh надає модуль для інтеграції з GCP, що отримує журнали зі служби Pub/Sub.

Огляд інтеграції GCP з Wazuh

Google Cloud

Налаштування облікового запису GCP

Потрібно створити новий проєкт в GCP і обліковий запис сервісу, що дозволить модулю Wazuh GCP отримувати дані журналу з Google Pub/Sub. Потім треба налаштувати служби Pub/Sub і Sink. Сервіс Sink відправляє журнали щодо стану безпеки хмари з центральної служби Cloud Logging GCP до служби Pub/Sub.

Для налаштування необхідно виконати наведені нижче дії.

1) Створити новий проєкт в GCP. Слід також звернути увагу на його ID.

Створення нового проєкту

2) Перейти до IAM and admin та вибрати Service accounts, щоб створити новий обліковий запис служби, як показано нижче. На цій сторінці треба додати ролі Pub/Sub Publisher і Pub/Sub Subscriber до акаунту.

Створення облікового запису служби

3) Відкрити цей обліковий запис та створити приватний ключ у форматі JSON, як продемонстровано нижче. Браузер автоматично завантажує ключ. Wazuh використовує його для автентифікації у проєкті GCP.

Створення ключа облікового запису служби

4) Шукати та вибрати Pub/Sub у полі пошуку консолі у верхній частині сторінки. Натиснути Create Topic. На цій сторінці ввести ідентифікатор теми (Topic ID) та переконатися, що встановлено прапорець на Add a default subscription. Потім треба натиснути Create. Варто також звернути увагу на ідентифікатор підписки (Subscription ID).

Конфігурація Pub/Sub

5) Шукати та вибрати Log Router у консолі GCP. Натиснути Create Sink. Потім ввести назву та клацнути Next. У службі Sink destination обрати Cloud Pub/Sub topic. Далі вибрати назву теми з кроку 4 і натиснути Create Sink.

Конфігурація SInk

Сервіси Log Router і Sink у проєкті GCP відповідають за керування та направлення журналів.

6) Треба налаштувати безперервний експорт журналу зі служби GCP Findings до GCP Pub/Sub, як показано нижче.

Налаштування безперервного експорту

Сервер Wazuh

Потрібно виконати наведені нижче дії для налаштування сервера Wazuh на отримання журналів від GCP.

Примітка: необхідно виконувати ці команди з дозволом root.

1) Створити файл credentials.json у каталозі /var/ossec/wodles/gcloud/:

touch /var/ossec/wodles/gcloud/credentials.json

2) Додати до файлу /var/ossec/wodles/gcloud/credentials.json вміст файлу JSON із приватним ключем. Модуль Wazuh GCP використовує файл ключа для автентифікації облікового запису GCP.

3) Додати наведений нижче код до файлу конфігурації /var/ossec/etc/ossec.conf. Конфігурація визначає, як Wazuh підключається до GCP за допомогою ID проєкту, ID підписки GCP PubSub та облікових даних.

<ossec_config>
  <gcp-pubsub>
    <pull_on_start>yes</pull_on_start>
    <interval>5m</interval>
    <project_id><PROJECT_ID></project_id>
    <subscription_name><SUBSCRIPTION_ID></subscription_name>
     <credentials_file>/var/ossec/wodles/gcloud/credentials.json</credentials_file>
  </gcp-pubsub>
</ossec_config>

Замінити:

<PROJECT_ID> – на ID проєкту.
<SUBSCRIPTION_NAME> – на ID підписки GCP Pub/Sub.

4) Створити файл правил gcp_posture.xml у каталозі /var/ossec/etc/rules/ і додати наступні кастомні правила:

<group name="gcp,">

  <!-- Misconfiguration detection -->
    <rule id="100200" level="10">
        <if_sid>65000</if_sid>
        <field name="gcp.finding.findingClass">MISCONFIGURATION</field>
        <description>A $(gcp.finding.findingClass) with $(gcp.finding.severity) severity has been discovered on the GCP project $(gcp.resource.projectDisplayName). $(gcp.finding.description)</description>
        <mitre>
          <id>T1562</id>
        </mitre>
    </rule>
    

  <!-- Threat detection -->
    <rule id="100201" level="10">
        <if_sid>65000</if_sid>
        <field name="gcp.finding.findingClass">THREAT</field>
        <description>A $(gcp.finding.findingClass) with $(gcp.finding.severity) severity has been discovered on the GCP project $(gcp.resource.projectDisplayName). $(gcp.finding.category).</description>
        <mitre>
          <id>T1562</id>
        </mitre>
    </rule>
   
</group>

Де:

Правило ID 100200 активується у разі виявлення неправильної конфігурації облікового запису за допомогою Wazuh.

Правило ID 100201 спрацьовує, якщо GCP виявляє загрозу.

5) Перезапустити менеджер Wazuh, щоб застосувати зміни:

systemctl restart wazuh-manager

Імітація недоліків

Модуль The Findings – це служба GCP Security Command Center, що записує некоректні налаштування безпеки в проєкті GCP. Імітація недоліків створить зразки неправильних конфігурацій, які будуть відправлені в Wazuh.

Неправильні конфігурації мережі

Потрібно виконати наведені нижче дії на консолі GCP.

1) Увімкнути Compute Engine API, як показано нижче. Це ввімкне внутрішній брандмауер VPC.

API Compute Engine

2) Створити правило брандмауера в Network security, що дозволяє підключення з усіх IP-адрес і портів.

Створення правила брандмауера

3) Видалити це правило брандмауера зі списку правил безпеки мережі GCP.

Видалення правила брандмауера

Аномальна активність керування ідентичностями та доступом

1) Створити тестову адресу електронної пошти Gmail у разі її відсутності.

2) Перейти до IAM & Admin і вибрати IAM. Натиснути Grant Access. На цій сторінці ввести тестову Gmail-адресу в New principal. Далі призначити роль Project > Owner в Role і натиснути Save.

Симуляція IAM і адміністратора

Результат

Можна візуалізувати результати, перейшовши до Modules > Security events і застосувавши фільтр для ідентифікаторів правил 100200, 100201.

Підписатися на новини