Análise de log e configuração com GitHub Copilot

Concluído

Dica

Consulte a guia Texto e imagens para obter mais detalhes!

Ambientes de nuvem modernos geram grandes volumes de dados de log. Um Firewall do Azure em um ambiente ocupado produz milhares de entradas de log por hora. Os logs de atividade capturam todas as operações de gerenciamento em todos os recursos. Os logs de fluxo do NSG registram todas as conexões de rede, permitidas e negadas.

O desafio não é coletar os dados. Azure Monitor, Log Analytics e Microsoft Sentinel manipulam bem a coleção. O desafio é transformar dados brutos de log em inteligência acionável rapidamente. Isso significa encontrar o padrão de ataque em 10.000 entradas de firewall, identificar a causa raiz de uma falha de implantação enterrada em um log de erros de 500 linhas ou produzir um relatório de conformidade significativo de um mês de dados de atividade.

GitHub Copilot lida bem com o reconhecimento de padrões e o resumo. Você fornece os dados; Copilot fornece a análise.

Analisando logs de Firewall do Azure

Os logs de regras de rede do Firewall do Azure registram todas as conexões avaliadas pelo firewall: o IP de origem, o IP de destino, a porta, o protocolo e se a conexão foi permitida ou negada. Analisar esses logs manualmente é demorado. Copilot pode examiná-los em segundos.

O prompt de análise básica

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]

O que uma boa análise de log de firewall revela

Varredura de portas pode ser identificada por um único IP de origem estabelecendo conexões com várias portas de destino em um curto intervalo de tempo. Um cliente legítimo faz conexões com uma ou duas portas repetidamente. Um scanner investiga dezenas de portas sequencialmente.

As tentativas de força bruta aparecem como muitas conexões negadas de um IP de origem para a mesma porta de destino, normalmente 22 (SSH) ou 3389 (RDP), em rápida sucessão.

Anomalias de tráfego permitidas geralmente são mais preocupantes do que o tráfego negado. As conexões negadas são bloqueadas. Conexões permitidas para destinos incomuns, como portas não padrão ou intervalos de IP associados a ameaças conhecidas, representam a movimentação real de dados que deve ser investigada.

Transformando descobertas em alterações de infraestrutura

A análise dos registros deve ser incorporada diretamente aos seus modelos do Bicep. Depois de identificar os IPs de origem do problema, peça Copilot para gerar a correção:

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 fechar o ciclo: analise logs, identifique ameaças. Gere IAC para bloqueá-los. Em seguida, implante a correção. Todo o ciclo pode acontecer em uma única sessão de Copilot Chat.

Solução de problemas de falhas de implantação

Os logs de falha de implantação podem ser difíceis de interpretar. Azure Resource Manager retorna objetos de erro JSON aninhados com códigos, mensagens e detalhes de avaliação de política que levam tempo para serem analisados. O Copilot ajuda a reduzir o ruído em diferentes fontes para identificar com clareza a causa raiz e a solução em segundos.

O prompt de análise de falhas

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]

Categorias comuns de falha de implantação

Erros de dimensionamento da sub-rede: O Firewall do Azure requer uma sub-rede mínima /26. Azure Bastion requer um /26. Rede Virtual Gateway requer um /27. Esses limites são fáceis de não perceber e geram mensagens de erro claras que o Copilot pode analisar e corrigir.

Violações da Política: a governança de assinaturas do Enterprise Azure depende de Azure Policy. As políticas comuns exigem marcas específicas em todos os recursos, restringem SKUs a tipos aprovados ou impõem tamanhos mínimos de sub-rede. Uma violação de política no log de erros inclui o nome da política e a expressão específica que foi avaliada como não compatível.

Conflitos de recursos: Implantando um recurso que já existe com propriedades incompatíveis. Os exemplos incluem uma conta de armazenamento com uma SKU diferente da existente ou um nome Key Vault que já é usado globalmente.

Falhas de permissão do RBAC: A identidade de implantação não tem permissões para criar um tipo de recurso específico. Este é um exemplo comum ao implementar atribuições de funções, em que Microsoft.Authorization/roleAssignments/write requer a função Proprietário ou Administrador de Acesso do Usuário.

Incompatibilidades de versão da API: Um recurso usa uma versão da API que não está mais disponível. Esse cenário é mais comum em modelos desatualizados.

Pedindo uma correção no Bicep

Depois que o Copilot identificar a causa raiz, peça a ele para gerar a correção:

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]

Gerando consultas KQL para Azure Monitor

KQL (Linguagem de Consulta Kusto) é a linguagem de consulta para Azure Monitor, Log Analytics e Microsoft Sentinel. Escrever KQL do zero requer conhecimento dos esquemas das tabelas, das funções KQL e da estrutura dos logs de diagnóstico do Azure. Copilot gera consultas KQL a partir de descrições de linguagem natural, reduzindo significativamente a barreira.

Geração 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.

Exemplo de saída KQL:

// 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

Gerando um conjunto de consultas de segurança

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()).

Gerando KQL para logs de atividades

Os Logs de Atividade usam a tabela AzureActivity do Log Analytics. O esquema é diferente dos logs de diagnóstico e Copilot sabe os nomes das colunas.

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.

Gerando resumos de auditoria de conformidade

As equipes de conformidade e os auditores precisam de relatórios estruturados, não de dados brutos de log. Copilot pode ler arquivos de log e gerar resumos de auditoria profissional.

A instrução de resumo de conformidade

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]

A saída é imediatamente utilizável como um relatório de conformidade, um resumo de revisão de segurança ou uma seção em um pacote de resposta de auditoria. Revise as classificações de risco que o Copilot aplica e ajuste todas as que não correspondam à política de classificação de risco da sua organização.