Поделиться через


Отслеживание изменений набора правил брандмауэра Azure

В этой статье показано, как отслеживать и отслеживать изменения групп коллекций правил брандмауэра Azure с помощью Azure Resource Graph. Отслеживание изменений помогает поддерживать соответствие безопасности, изменения конфигурации аудита и устранять проблемы, предоставляя подробный журнал изменений набора правил.

Azure Resource Graph предоставляет данные анализа изменений, которые помогают отслеживать, когда изменения были обнаружены в группах коллекций правил брандмауэра Azure. Вы можете просматривать сведения об изменениях свойств и запрашивать изменения в масштабах подписки, группы управления или клиента.

Отслеживание изменений для групп коллекций правил брандмауэра Azure позволяет:

  • Мониторинг изменений конфигурации. Отслеживание всех изменений правил и политик брандмауэра
  • Соблюдение нормативных требований: создание аудиторских следов для обеспечения безопасности и соответствия нормативам
  • Устранение неполадок. Определите, когда были внесены изменения, которые могут повлиять на подключение
  • Анализ тенденций: понимание шаблонов в изменениях правил с течением времени

Предпосылки

Прежде чем отслеживать изменения набора правил, убедитесь, что выполнены следующие требования:

  • У вас есть брандмауэр Azure с настроенными группами коллекций правил
  • У вас есть соответствующие разрешения для доступа к Azure Resource Graph
  • Брандмауэр Azure использует политику брандмауэра Azure (а не классические правила)

Доступ к обозревателе Azure Resource Graph

Чтобы выполнить запросы отслеживания изменений, необходимо получить доступ к обозревателе Azure Resource Graph:

  1. Войдите на портал Azure
  2. Выполните поиск и выберите Resource Graph Explorer
  3. В окне запроса можно запустить запросы отслеживания изменений, описанные в следующих разделах.

Базовый запрос отслеживания изменений

Используйте этот запрос, чтобы получить комплексное представление всех изменений в группах коллекций правил брандмауэра Azure:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| extend parsedProperties = parse_json(properties)
| extend TargetResource = tostring(parsedProperties.targetResourceId),
         Timestamp = todatetime(parsedProperties.changeAttributes.timestamp),
         Changes = todynamic(parsedProperties.changes),
         ChangeType = tostring(parsedProperties.changeType),
         PreviousSnapshotId = tostring(parsedProperties.changeAttributes.previousResourceSnapshotId),
         NewSnapshotId = tostring(parsedProperties.changeAttributes.newResourceSnapshotId),
         CorrelationId = tostring(parsedProperties.changeAttributes.correlationId),
         ChangesCount = toint(parsedProperties.changeAttributes.changesCount),
         TenantId = tostring(tenantId),
         Location = tostring(location),
         SubscriptionId = tostring(subscriptionId),
         ResourceGroup = tostring(resourceGroup),
         FirewallPolicyName = extract('/firewallPolicies/([^/]+)/', 1, tostring(id))
| mv-expand ChangeKey = bag_keys(Changes)
| extend ChangeDetails = todynamic(Changes[tostring(ChangeKey)])
| extend RuleCollectionName = extract('properties\\.ruleCollections\\["([^"]+)"\\]', 1, tostring(ChangeKey))
| where isnotempty(RuleCollectionName)
| summarize Changes = make_list(pack("ChangeKey", ChangeKey, "PreviousValue", tostring(ChangeDetails.previousValue), "NewValue", tostring(ChangeDetails.newValue)))
    by Timestamp = format_datetime(Timestamp, 'yyyy-MM-dd HH:mm:ss'),
       TenantId,
       SubscriptionId,
       ResourceGroup,
       Location,
       TargetResource,
       FirewallPolicyName,
       RuleCollectionName,
       ChangeType,
       PreviousSnapshotId,
       NewSnapshotId,
       CorrelationId,
       ChangesCount
| project Timestamp,
          TenantId,
          SubscriptionId,
          ResourceGroup,
          Location,
          TargetResource,
          FirewallPolicyName,
          RuleCollectionName,
          ChangeType,
          PreviousSnapshotId,
          NewSnapshotId,
          CorrelationId,
          ChangesCount,
          Changes
| order by Timestamp desc

Общие сведения о результатах запроса

Запрос отслеживания изменений возвращает следующие сведения для каждого обнаруженного изменения:

Поле Description
Метка времени Когда произошло изменение
SubscriptionId Подписка Azure, содержащая брандмауэр
ResourceGroup Группа ресурсов, содержащая политику брандмауэра
FirewallPolicyName Имя затронутой политики брандмауэра
RuleCollectionName Имя затронутой коллекции правил
ChangeType Тип изменения (создание, обновление, удаление)
КоличествоИзменений Количество измененных свойств
Изменения Подробный список изменений, включая предыдущие и новые значения
CorrelationId (Идентификатор корреляции) Уникальные идентификаторы, связывающие связанные изменения

Фильтрация изменений по периоду времени

Чтобы сосредоточиться на последних изменениях, можно добавить фильтр времени в запрос:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where todatetime(properties.changeAttributes.timestamp) >= ago(7d)  // Last 7 days
// ... rest of query

Фильтрация по определенной политике брандмауэра

Чтобы отслеживать изменения для определенной политики брандмауэра, выполните следующие действия.

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where id contains "/firewallPolicies/your-policy-name"
// ... rest of query

Настройка автоматического мониторинга

Для непрерывного мониторинга рекомендуется настроить:

  • Запланированные запросы. Использование Azure Logic Apps или службы автоматизации Azure для выполнения запросов по расписанию
  • Оповещения. Создание оповещений Azure Monitor на основе шаблонов изменений
  • Отчеты: экспорт результатов в хранилище или средства визуализации для создания отчетов

Лучшие практики

При реализации отслеживания изменений набора правил:

  • Регулярный мониторинг: настройка регулярного выполнения запросов для быстрого перехвата изменений
  • Политики хранения: планирование долгосрочного хранения измененных данных для соответствия требованиям
  • Управление доступом: ограничение доступа к данным отслеживания изменений на основе требований безопасности
  • Интеграция. Рассмотрите возможность интеграции с существующими средствами SIEM или мониторинга

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

Если в результатах не отображаются ожидаемые изменения:

  • Убедитесь, что вы используете политику брандмауэра Azure (не классические правила)
  • Убедитесь, что период времени в вашем запросе включает моменты, когда произошли изменения.
  • Убедитесь, что у вас есть необходимые разрешения для доступа к Azure Resource Graph
  • Убедитесь, что имена ресурсов в фильтрах верны