# Wazuh и PCI DSS 4.0 - маппинг требований и настройка

> Соответствие PCI DSS 4.0 с помощью Wazuh 4.14 - таблица маппинга требований, настройка модулей FIM, SCA, Vulnerability Detector и формирование отчетов

Source: https://opennix.org/docs/wazuh/compliance/wazuh-pci-dss/


Wazuh обеспечивает комплексную поддержку стандарта PCI DSS версии 4.0 через сбор и анализ логов, мониторинг целостности файлов, оценку конфигурации безопасности, инвентаризацию систем, оповещения в реальном времени и автоматическое реагирование. Стандартный набор правил Wazuh содержит предварительно размеченные теги `pci_dss_X.Y.Z`, покрывающие ключевые требования стандарта.

## Обзор PCI DSS 4.0

PCI DSS (Payment Card Industry Data Security Standard) определяет требования безопасности для организаций, обрабатывающих, хранящих или передающих данные платежных карт. Версия 4.0 заменила PCI DSS 3.2.1 и включает обновленные требования к аутентификации, шифрованию и непрерывному мониторингу.

Стандарт состоит из 12 основных требований, сгруппированных в 6 целей. Wazuh покрывает требования, связанные с техническими контролями безопасности.

## Таблица маппинга требований PCI DSS на модули Wazuh

| Требование PCI DSS | Описание | Модуль Wazuh | Группа правил |
|---|---|---|---|
| 1.x | Установка и поддержание сетевых контролей безопасности | [FIM](/docs/wazuh/capabilities/wazuh-file-integrity-monitoring/), [анализ логов](/docs/wazuh/capabilities/wazuh-log-data-collection/) | `pci_dss_1.1.1` |
| 2.2 | Безопасная конфигурация системных компонентов | [SCA](/docs/wazuh/capabilities/wazuh-sca/) | `pci_dss_2.2` |
| 5.x | Защита от вредоносного ПО | [Rootcheck, YARA](/docs/wazuh/capabilities/wazuh-malware-detection/) | `pci_dss_5.1`, `pci_dss_5.2` |
| 6.1 | Выявление и устранение уязвимостей | [Vulnerability Detector](/docs/wazuh/capabilities/wazuh-vulnerability-detection/) | `pci_dss_6.1` |
| 6.2 | Безопасная разработка ПО | Анализ логов приложений | `pci_dss_6.2` |
| 8.x | Идентификация и аутентификация | Анализ логов, SCA | `pci_dss_8.1`, `pci_dss_8.2` |
| 10.x | Журналирование и мониторинг доступа | [Анализ логов](/docs/wazuh/capabilities/wazuh-log-data-collection/) | `pci_dss_10.2.4`, `pci_dss_10.2.5` |
| 10.4.1 | Ежедневный обзор логов безопасности | Дашборд, алерты | `pci_dss_10.4.1` |
| 10.5.1 | Хранение аудиторских записей | Архивирование логов | `pci_dss_10.5.1` |
| 11.5 | Мониторинг целостности файлов | [FIM](/docs/wazuh/capabilities/wazuh-file-integrity-monitoring/) | `pci_dss_11.5` |
| 11.x | Тестирование безопасности | [SCA](/docs/wazuh/capabilities/wazuh-sca/), Vulnerability Detector | `pci_dss_11.2` |
| 12.x | Политики информационной безопасности | Документирование, SCA | `pci_dss_12.1` |

## Требование 1 - сетевые контроли безопасности

Wazuh отслеживает изменения в конфигурации межсетевых экранов через модуль FIM и анализ логов сетевого оборудования.

### Мониторинг конфигурации межсетевого экрана

```xml
<syscheck>
  <directories check_all="yes" realtime="yes">/etc/iptables</directories>
  <directories check_all="yes" realtime="yes">/etc/firewalld</directories>
  <directories check_all="yes" realtime="yes">/etc/pf.conf</directories>
</syscheck>
```

При изменении файлов конфигурации межсетевого экрана FIM генерирует алерт с тегом `pci_dss_1.1.1`, фиксируя кто, когда и какие изменения внес.

## Требование 2.2 - безопасная конфигурация

Модуль [SCA](/docs/wazuh/capabilities/wazuh-sca/) выполняет проверку конфигурации систем на соответствие стандартам CIS Benchmarks. Результаты проверок автоматически маппируются на требование PCI DSS 2.2.

Пример политики SCA для проверки конфигурации SSH:

```yaml
checks:
  - id: 10001
    title: "Ensure SSH Protocol is set to 2"
    compliance:
      - pci_dss: ["2.2"]
      - cis: ["5.2.4"]
    condition: all
    rules:
      - 'f:/etc/ssh/sshd_config -> r:^\s*Protocol\s+2'
```

## Требование 5 - защита от вредоносного ПО

Wazuh обеспечивает многоуровневую защиту от вредоносного ПО:

- **Rootcheck** - обнаружение руткитов и аномалий в системе
- **YARA-интеграция** - сканирование файлов по сигнатурам через [модуль обнаружения вредоносного ПО](/docs/wazuh/capabilities/wazuh-malware-detection/)
- **Мониторинг процессов** - отслеживание подозрительных процессов через [системные вызовы](/docs/wazuh/capabilities/wazuh-system-calls/)

Правила Wazuh с тегами `pci_dss_5.1` и `pci_dss_5.2` срабатывают при обнаружении вредоносного ПО или подозрительной активности.

## Требование 6.1 - управление уязвимостями

[Модуль обнаружения уязвимостей](/docs/wazuh/capabilities/wazuh-vulnerability-detection/) сканирует установленное ПО на наличие известных CVE. Результаты маппируются на требование PCI DSS 6.1.

Конфигурация модуля в `ossec.conf`:

```xml
<vulnerability-detector>
  <enabled>yes</enabled>
  <interval>12h</interval>
  <run_on_start>yes</run_on_start>
  <provider name="canonical">
    <enabled>yes</enabled>
    <os>jammy</os>
    <update_interval>1h</update_interval>
  </provider>
  <provider name="nvd">
    <enabled>yes</enabled>
    <update_interval>1h</update_interval>
  </provider>
</vulnerability-detector>
```

## Требование 10 - журналирование и мониторинг

Требование 10 является одним из наиболее полно покрываемых Wazuh. Платформа обеспечивает:

### 10.2.4 - детализация аудиторских записей

Каждое событие должно содержать идентификацию пользователя, тип события, дату/время, индикатор успеха/неудачи, источник события и идентификатор затронутого ресурса. Wazuh автоматически извлекает эти данные при декодировании логов.

Пример правила для неудачной SSH-аутентификации:

```xml
<rule id="5710" level="5">
  <if_sid>5700</if_sid>
  <match>illegal user|invalid user</match>
  <description>sshd: Attempt to login using a non-existent user</description>
  <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,</group>
</rule>
```

### 10.2.5 - журналирование привилегированного доступа

Wazuh отслеживает все действия привилегированных пользователей, генерируя алерты с идентификацией пользователя, классификацией события и временными метками.

### 10.4.1 - ежедневный обзор логов

Дашборд Wazuh предоставляет визуализацию для ежедневного обзора:

- Логи событий безопасности
- Логи систем хранения и обработки данных карт
- Логи критических систем
- Логи функций безопасности

### 10.5.1 - хранение аудиторских записей

PCI DSS требует хранения записей не менее 12 месяцев, из которых последние 3 месяца должны быть доступны немедленно. Настройка архивирования в Wazuh:

```xml
<ossec_config>
  <global>
    <logall_json>yes</logall_json>
  </global>
</ossec_config>
```

Для управления ретенцией используйте политики индексного управления (ISM) в OpenSearch:

```json
{
  "policy": {
    "policy_id": "pci-dss-retention",
    "description": "PCI DSS 12-month log retention",
    "default_state": "hot",
    "states": [
      {
        "name": "hot",
        "actions": [],
        "transitions": [
          {
            "state_name": "warm",
            "conditions": { "min_index_age": "90d" }
          }
        ]
      },
      {
        "name": "warm",
        "actions": [
          { "read_only": {} }
        ],
        "transitions": [
          {
            "state_name": "delete",
            "conditions": { "min_index_age": "365d" }
          }
        ]
      },
      {
        "name": "delete",
        "actions": [
          { "delete": {} }
        ]
      }
    ]
  }
}
```

## Требование 11.5 - мониторинг целостности файлов

PCI DSS 11.5.2 требует развертывания механизма обнаружения изменений для оповещения о несанкционированных модификациях критических файлов, конфигураций и контента.

### Мониторинг с атрибуцией пользователей

```xml
<syscheck>
  <directories check_all="yes" whodata="yes">/root/credit_cards</directories>
</syscheck>
```

Параметр `whodata` фиксирует пользователя и процесс, ответственные за изменение файла.

### Отслеживание содержимого изменений

```xml
<syscheck>
  <frequency>3600</frequency>
  <directories check_all="yes" report_changes="yes">/root/credit_cards/cardholder_data.txt</directories>
</syscheck>
```

Параметр `report_changes` отображает разницу содержимого файла между сканированиями.

### Обнаружение удаления файлов в реальном времени

```xml
<syscheck>
  <directories check_all="yes" realtime="yes">/root/credit_cards</directories>
</syscheck>
```

Режим реального времени генерирует алерты при модификации, добавлении и удалении файлов немедленно.

## Группы правил PCI DSS

Wazuh использует синтаксис `pci_dss_` с последующим номером требования для маппинга правил. Полный список тегов можно получить через поиск в наборе правил:

```bash
docker exec wazuh-manager grep -r "pci_dss_" /var/ossec/ruleset/rules/ | \
  grep -oP 'pci_dss_[\d.]+' | sort -u
```

Основные группы правил:

| Группа | Требование |
|---|---|
| `pci_dss_1.1.1` | Сетевые контроли безопасности |
| `pci_dss_2.2` | Безопасная конфигурация |
| `pci_dss_5.1` | Защита от вредоносного ПО |
| `pci_dss_6.1` | Управление уязвимостями |
| `pci_dss_6.5` | Безопасная разработка |
| `pci_dss_8.1` | Идентификация пользователей |
| `pci_dss_10.2.4` | Детализация аудит-логов |
| `pci_dss_10.2.5` | Привилегированный доступ |
| `pci_dss_10.5.1` | Хранение аудиторских записей |
| `pci_dss_11.5` | Мониторинг целостности |

## Модуль PCI DSS в дашборде

Wazuh Dashboard содержит специализированный модуль PCI DSS в разделе **Modules > Regulatory compliance > PCI DSS**. Модуль предоставляет:

- **Обзорная панель** - общая статистика алертов по требованиям PCI DSS
- **Фильтрация по требованиям** - выбор конкретных требований для детального анализа
- **Временная шкала** - визуализация алертов во времени с группировкой по требованиям
- **Агенты** - статистика соответствия по отдельным агентам и группам

Дашборд отображает информацию в реальном времени, позволяя фильтровать по типам полей алертов, включая контроли соответствия.

## Формирование отчетов PCI DSS

Для формирования отчетов используйте возможности дашборда:

1. Перейдите в **Modules > PCI DSS**
2. Настройте временной диапазон отчетного периода
3. Примените фильтры по агентам или группам агентов
4. Экспортируйте данные в формате CSV или PDF через кнопку **Generate report**

Для автоматизации формирования отчетов используйте API Wazuh Indexer:

```bash
curl -sk -u admin:$WAZUH_ADMIN_PASS \
  "https://localhost:9200/wazuh-alerts-*/_search" \
  -H "Content-Type: application/json" \
  -d '{
    "size": 0,
    "query": {
      "bool": {
        "must": [
          { "range": { "timestamp": { "gte": "now-30d" } } },
          { "exists": { "field": "rule.pci_dss" } }
        ]
      }
    },
    "aggs": {
      "pci_requirements": {
        "terms": { "field": "rule.pci_dss", "size": 50 }
      }
    }
  }' | jq '.aggregations.pci_requirements.buckets'
```

## Устранение неполадок

### Алерты PCI DSS не отображаются в дашборде

1. Убедитесь, что правила содержат теги `pci_dss_` в поле `<group>`
2. Проверьте, что модуль PCI DSS активирован в настройках дашборда
3. Проверьте корректность временного диапазона фильтра

### Отсутствуют данные FIM для PCI DSS 11.5

1. Проверьте конфигурацию `<syscheck>` в `ossec.conf`
2. Убедитесь, что мониторинг включен (`<disabled>no</disabled>`)
3. Проверьте, что указаны правильные пути для мониторинга

### Отсутствуют данные уязвимостей для PCI DSS 6.1

1. Проверьте конфигурацию `<vulnerability-detector>` в `ossec.conf`
2. Убедитесь, что провайдеры баз уязвимостей включены и обновляются
3. Проверьте наличие модуля [инвентаризации системы](/docs/wazuh/capabilities/wazuh-system-inventory/) - он необходим для работы детектора уязвимостей

### Логи не архивируются для PCI DSS 10.5.1

1. Проверьте, что параметр `logall_json` установлен в `yes`
2. Перезапустите менеджер Wazuh после изменения конфигурации
3. Настройте политику ISM в OpenSearch для управления ретенцией

