Condividi tramite


Tenere traccia delle modifiche al set di regole di Firewall di Azure

Questo articolo illustra come monitorare e tenere traccia delle modifiche apportate ai gruppi di raccolte regole di Firewall di Azure usando Azure Resource Graph. Il rilevamento delle modifiche consente di mantenere la conformità alla sicurezza, controllare le modifiche alla configurazione e risolvere i problemi fornendo una cronologia dettagliata delle modifiche al set di regole.

Azure Resource Graph fornisce dati di analisi delle modifiche che consentono di tenere traccia delle modifiche rilevate nei gruppi di raccolta regole di Firewall di Azure. È possibile visualizzare i dettagli delle modifiche alle proprietà e interrogare le modifiche su vasta scala in base alla tua sottoscrizione, al tuo gruppo di gestione o al tuo tenant.

Il rilevamento delle modifiche per i gruppi di raccolta regole di Firewall di Azure consente di:

  • Monitorare le modifiche alla configurazione: tenere traccia di tutte le modifiche apportate alle regole e ai criteri del firewall
  • Mantenere la conformità: generare audit trail per i requisiti di sicurezza e conformità
  • Risolvere i problemi: identificare quando sono state apportate modifiche che potrebbero influire sulla connettività
  • Analizzare le tendenze: comprendere i modelli nelle modifiche alle regole nel tempo

Prerequisiti

Prima di poter tenere traccia delle modifiche del set di regole, verificare di soddisfare i requisiti seguenti:

  • È disponibile un firewall di Azure con gruppi di raccolta regole configurati
  • Si dispone delle autorizzazioni appropriate per accedere ad Azure Resource Graph
  • Firewall di Azure usa Criteri firewall di Azure (non regole classiche)

Accedere ad Azure Resource Graph Explorer

Per eseguire query di rilevamento delle modifiche, è necessario accedere ad Azure Resource Graph Explorer:

  1. Accedere al portale di Azure
  2. Cercare e selezionare Resource Graph Explorer
  3. Nella finestra di query è possibile eseguire le query di rilevamento delle modifiche descritte nelle sezioni seguenti

Query di rilevamento delle modifiche di base

Usare questa query per ottenere una visualizzazione completa di tutte le modifiche apportate ai gruppi di raccolta regole di Firewall di 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

Informazioni sui risultati della query

La query di rilevamento modifiche restituisce le informazioni seguenti per ogni modifica rilevata:

Campo Description
Timestamp: Quando si è verificata la modifica
SubscriptionId Sottoscrizione di Azure contenente il firewall
ResourceGroup Gruppo di risorse contenente i criteri del firewall
FirewallPolicyName Nome della politica firewall interessata
RuleCollectionName Nome della raccolta di regole interessata
TipoDiModifica Tipo di modifica (Crea, Aggiorna, Elimina)
ChangesCount Numero di proprietà modificate
Modifiche Elenco dettagliato delle modifiche, inclusi i valori precedenti e nuovi
CorrelationId Identificatore univoco che collega modifiche correlate

Filtrare le modifiche in base al periodo di tempo

Per concentrarsi sulle modifiche recenti, è possibile aggiungere un filtro temporale alla query:

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

Filtrare in base a politiche firewall specifiche

Per monitorare le modifiche per una policy di firewall specifica:

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

Configurare il monitoraggio automatizzato

Per il monitoraggio continuo, è consigliabile configurare:

  • Query pianificate: usare App per la logica di Azure o Automazione di Azure per eseguire query in base a una pianificazione
  • Avvisi: creare avvisi di Monitoraggio di Azure in base ai modelli di modifica
  • Report: esportare i risultati in strumenti di archiviazione o visualizzazione per la creazione di report

Procedure consigliate

Quando si implementa il rilevamento delle modifiche del set di regole:

  • Monitoraggio regolare: configurare l'esecuzione regolare delle query per rilevare tempestivamente le modifiche
  • Criteri di conservazione: pianificare l'archiviazione a lungo termine dei dati delle modifiche per la conformità
  • Controllo di accesso: limitare l'accesso ai dati di rilevamento delle modifiche in base ai requisiti di sicurezza
  • Integrazione: prendere in considerazione l'integrazione con gli strumenti di monitoraggio o SIEM esistenti

Risoluzione dei problemi

Se non vengono visualizzate le modifiche previste nei risultati:

  • Verificare di usare Policy del Firewall di Azure (non regole classiche)
  • Verificare che il periodo di tempo nella query copra quando si sono verificate modifiche.
  • Assicurarsi di avere le autorizzazioni necessarie per accedere ad Azure Resource Graph
  • Verificare che i nomi delle risorse nei filtri siano corretti