Análisis de registro y configuración con GitHub Copilot

Completado

Tip

Consulte la pestaña Texto e imágenes para obtener más detalles.

Los entornos de nube modernos generan grandes volúmenes de datos de registro. Una Azure Firewall en un entorno ocupado genera miles de entradas de registro por hora. Los registros de actividad capturan todas las operaciones de administración en todos los recursos. Los registros de flujo de NSG registran todas las conexiones de red, permitidas y denegadas.

El desafío no está en recopilar los datos. Azure Monitor, Log Analytics y Microsoft Sentinel administran bien la colección. El desafío consiste en convertir los datos de registro sin procesar en inteligencia accionable rápidamente. Esto significa encontrar el patrón de ataque en 10 000 entradas de firewall, identificar la causa principal de un error de implementación enterrado en un registro de errores de 500 líneas o generar un informe de cumplimiento significativo a partir de un mes de datos de actividad.

GitHub Copilot controla bien el reconocimiento de patrones y el resumen. Usted proporciona los datos; Copilot proporciona el análisis.

Análisis de registros de Azure Firewall

Azure Firewall registros de reglas de red registran todas las conexiones evaluadas por el firewall: la dirección IP de origen, la IP de destino, el puerto, el protocolo y si la conexión se ha permitido o denegado. El análisis de estos registros manualmente es lento. Copilot puede examinarlos en segundos.

La instrucción del análisis básico

Analyze these Azure Firewall network rule logs and provide:
1. The top 5 source IPs generating denied traffic, with connection counts
2. The top 5 destination ports targeted by denied traffic
3. Any source IPs with rapid sequential connections to many different ports
   (port scanning behavior), including the time window
4. The one-hour period with the highest volume of denied connections
5. Any connections that were ALLOWED to unusual external destinations
   (non-standard ports, suspicious IP ranges)

Format the output as a structured report with a section for each finding.

[paste firewall-logs.json content here]

¿Qué buen análisis de registros de firewall revela?

El escaneo de puertos se puede identificar por una única dirección IP de origen que establece conexiones a muchos puertos de destino diferentes en un breve intervalo de tiempo. Un cliente legítimo realiza conexiones a uno o dos puertos repetidamente. Un analizador sondea docenas de puertos secuencialmente.

Los intentos de fuerza bruta se manifiestan como múltiples conexiones denegadas desde una única IP de origen hacia el mismo puerto de destino, normalmente el 22 (SSH) o el 3389 (RDP), en rápida sucesión.

Las anomalías de tráfico permitidas suelen ser más preocupantes que el tráfico denegado. Las conexiones denegadas están bloqueadas. Las conexiones permitidas a destinos inusuales, como puertos no estándar o intervalos IP asociados a amenazas conocidas, representan el movimiento de datos real que se debe investigar.

Convertir los resultados en cambios de infraestructura

El análisis de registros debe retroalimentar directamente las plantillas de Bicep. Después de identificar las direcciones IP de origen del problema, pida Copilot para generar la corrección:

Based on the firewall log analysis, the following source IPs are confirmed
malicious: 185.220.101.45, 91.230.54.112, 194.165.16.78.

Generate:
1. A Bicep snippet for an Azure Firewall Network Rule Collection that explicitly
   denies all traffic from these IPs at the highest priority (100)
2. An Azure CLI command to apply this rule without a full template redeployment
3. A comment explaining the source of each blocked IP

Para cerrar el bucle: analice los registros, identifique las amenazas. Genere IaC para bloquearlos. A continuación, implemente la corrección. Todo el ciclo puede producirse dentro de una sola sesión de Copilot Chat.

Solución de problemas de errores de implementación

Los registros de errores de implementación pueden ser crípticos. Azure Resource Manager devuelve objetos de error JSON anidados con códigos, mensajes y detalles de evaluación de directivas que tardan tiempo en analizarse. Copilot ayuda a reducir el ruido procedente de distintas fuentes hasta identificar una causa raíz clara y su solución en cuestión de segundos.

La instrucción del análisis de errores

This is an Azure resource deployment log that ended in failure.
Analyze the log and provide:
- The root cause of the failure in plain language, not error codes
- Which specific resource failed and why
- The exact change needed in the Bicep template or deployment parameters to fix the issue
- Whether there are multiple issues (sometimes one error masks another)

If there is a policy violation, explain: which policy blocked the deployment,
what the policy requires, and where in the template the requirement is not met.

[paste failed-deployment.log content here]

Categorías comunes de errores de implementación

Errores de dimensionamiento de subred: Azure Firewall requiere una subred mínima de /26. Azure Bastion requiere /26. La puerta de enlace de red virtual requiere un /27. Estos límites son fáciles de perder y generan mensajes de error claros que Copilot pueden analizar y corregir.

Infracciones de directiva: La gobernanza de las suscripciones Enterprise de Azure se basa en Azure Policy. Las directivas comunes requieren etiquetas específicas en todos los recursos, restringen las SKU a tipos aprobados o aplican tamaños mínimos de subred. Una infracción de directiva en el registro de errores incluye el nombre de la directiva y la expresión específica que se evaluó como no conforme.

Conflictos de recursos: Implementación de un recurso que ya existe con propiedades incompatibles. Algunos ejemplos incluyen una cuenta de almacenamiento con una SKU diferente a la existente o un nombre de Key Vault que ya se ha tomado globalmente.

Errores de permisos de RBAC: La identidad de implementación carece de los permisos para crear un tipo de recurso específico. Este ejemplo es común al implementar asignaciones de roles, donde Microsoft.Authorization/roleAssignments/write requiere propietario o administrador de acceso de usuario.

Errores de coincidencia de la versión de API: Un recurso usa una versión de API que ya no está disponible. Este escenario es más común en las plantillas obsoletas.

Solicitar una corrección en Bicep

Después de Copilot identifica la causa principal, pídale que genere la corrección:

The deployment failed because:
1. AzureFirewallSubnet is /27 but must be /26
2. The CostCenter tag is missing from the hub VNet resource

Apply both fixes to this Bicep template. Show only the changed sections,
not the entire template, and explain what you changed and why.

[paste the relevant Bicep sections]

Generación de consultas KQL para Azure Monitor

KQL (lenguaje de consulta Kusto) es el lenguaje de consulta para Azure Monitor, Log Analytics y Microsoft Sentinel. La escritura de KQL desde cero requiere conocimientos sobre esquemas de tabla, funciones KQL y la estructura de los registros de diagnóstico de Azure. Copilot genera consultas KQL a partir de descripciones de lenguaje natural, lo que reduce significativamente la barrera.

Generación básica de KQL

Generate a KQL query for the AzureDiagnostics table in Log Analytics.
The query should:
- Count denied connections grouped by SourceIP
- Filter to the last 24 hours using TimeGenerated > ago(24h)
- Include only rows where Action_s == "Deny"
- Include only rows from Azure Firewall (Category == "AzureFirewallNetworkRule")
- Sort by count descending
- Visualize as a bar chart

Add a comment at the top explaining what this query does and when to use it.

Salida de KQL de ejemplo:

// Top blocked source IPs in the last 24 hours
// Use this query to identify source IPs generating the most denied traffic.
// Useful for firewall rule tuning and threat hunting.
AzureDiagnostics
| where TimeGenerated > ago(24h)
| where Category == "AzureFirewallNetworkRule"
| where Action_s == "Deny"
| summarize DeniedCount = count() by SourceIP = SourceIp_s
| sort by DeniedCount desc
| render barchart

Generación de un conjunto de consultas de seguridad

Generate three KQL queries for Azure Firewall security monitoring:

Query 1: Allowed SSH/RDP connections
Find all connections to port 22 or 3389 that were allowed by the firewall.
These are potential security risks that should be reviewed.

Query 2: Hourly allowed vs. denied traffic trend
Show the count of allowed and denied connections per hour over the last 7 days,
as a time chart with two series (one for allowed, one for denied).

Query 3: New source IPs in the last 24 hours
Find source IPs that appear in today's denied traffic but did not appear
in the 7 days prior. These are new sources of malicious traffic.

For each query: add explanatory comments, use the AzureDiagnostics table,
and make them production-ready (handle null fields with isnotempty()).

Generación de KQL para registros de actividad

Los registros de actividad usan la tabla AzureActivity en Log Analytics. El esquema es diferente de los registros de diagnóstico y Copilot conoce los nombres de columna.

Generate a KQL query for the AzureActivity table that finds:
- All role assignment changes (RBAC) in the last 30 days
- Only operations where OperationNameValue contains "roleAssignments"
- Include: TimeGenerated, Caller, OperationNameValue, ActivityStatusValue,
  ResourceGroup, Properties

Sort by TimeGenerated descending. Add a comment explaining how to use
this query for access control auditing.

Generación de resúmenes de auditoría de cumplimiento

Los equipos de cumplimiento y los auditores necesitan informes estructurados, no datos de registro sin procesar. Copilot puede leer archivos de registro y generar resúmenes de auditoría profesionales.

La instrucción del resumen sobre cumplimiento

Analyze these Azure Activity Log entries and generate a compliance audit summary
in markdown format for the period [date range].

Structure the report as follows:

## Executive Summary
[2-3 sentences summarizing the overall compliance posture]

## Access Control Changes
[Table: Date | Actor | Action | Resource | Risk Rating]

## Resource Deletions
[Table: Date | Actor | Resource | Resource Group | Risk Rating]

## Policy Exemptions
[Table: Date | Actor | Policy | Exemption Scope | Expiry | Risk Rating]

## After-Hours Activity
[Table: Date | Time | Actor | Action | Risk Rating]
[Note: Business hours are 09:00-18:00 in your local time zone]

## Risk Summary
[Count by risk level: High / Medium / Low]

## Recommended Actions
[Bulleted list of follow-up actions based on findings]

Apply risk ratings:
- High: role assignments, policy exemptions, resource deletions in production
- Medium: configuration changes to security resources (Key Vault, NSG, Firewall)
- Low: read operations, tag updates, scaling events

[paste activity-log.json content here]

La salida se puede usar inmediatamente como un informe de cumplimiento, un resumen de revisión de seguridad o una sección de un paquete de respuesta de auditoría. Revise las clasificaciones de riesgo que aplica Copilot y ajuste las que no coincidan con la política de clasificación de riesgos de su organización.