Protegendo seu ambiente com notificações automáticas via Microsoft Teams
1. Introdução
No cenário atual de segurança corporativa, aplicações registradas no Azure Active Directory (App Registrations) são peças-chave no controle de acesso e identidade. Essas aplicações frequentemente possuem permissões críticas e, se alteradas sem controle, podem expor sua organização a sérios riscos.
Neste artigo, você aprenderá como criar uma solução automatizada e eficiente para monitorar alterações em App Registrations usando Azure Logic Apps, com envio de alertas para o Microsoft Teams. Ideal para profissionais de infraestrutura, segurança da informação e governança de TI.
2. Por que monitorar alterações em App Registrations?
Riscos de segurança
Modificações indevidas podem representar ameaças como:
-
Inclusão de permissões excessivas
-
Redirecionamento de URIs para endpoints maliciosos
-
Criação de credenciais clandestinas
-
Mudança na autenticação do app
-
Exclusão acidental ou maliciosa de apps críticos
Conformidade e auditoria
Muitas normas de compliance exigem:
-
Monitoramento contínuo de sistemas sensíveis
-
Trilhas de auditoria detalhadas
-
Capacidade de resposta rápida a incidentes
-
Evidências de controles ativos
Detecção rápida
Com um sistema automatizado você garante:
-
Investigação ágil
-
Restauração de alterações indevidas
-
Minimização de riscos e impactos
Casos de uso
-
Monitorar alterações fora do horário comercial
-
Validar mudanças em apps críticos
-
Verificar ações de administradores privilegiados
-
Auditar conformidade com processos de change management
3. Visão geral da solução
Componentes
-
Azure Logic Apps – Orquestra o fluxo
-
Azure Monitor (Log Analytics) – Armazena logs do Azure AD
-
KQL (Kusto Query Language) – Consulta os logs
-
Microsoft Teams – Canal de notificação
Fluxo de funcionamento
-
Logic App roda em intervalos definidos (durante o horário comercial)
-
Executa uma consulta KQL no Log Analytics
-
Verifica se houve alterações em App Registrations
-
Agrupa os dados
-
Se houver alterações, envia uma notificação para o Teams com detalhes
Benefícios
-
Sem código
-
Serverless
-
Custo reduzido
-
Fácil manutenção
-
Integração nativa entre serviços do Azure
4. Pré-requisitos
Acessos necessários
-
Permissão para criar Logic Apps
-
Acesso ao Log Analytics com logs do Azure AD
-
Permissão para postar mensagens em canais do Microsoft Teams
Recursos exigidos
-
Workspace do Log Analytics configurado
-
Diagnóstico do Azure AD habilitado e enviando para Log Analytics
-
Conexão do Teams configurada no Logic Apps
Conhecimentos recomendados
-
Noções de Logic Apps
-
KQL básico
-
Navegação no portal Azure
5. Implementação passo a passo
Criando o Logic App
-
No portal Azure, vá em Logic Apps > + Adicionar
-
Preencha:
-
Nome:
MonitorAppRegistrationsChanges
-
Grupo de recursos
-
Região
-
Tipo: Consumo
-
-
Clique em Revisar + Criar e depois Criar
Configurando o gatilho
-
Tipo: Recurrence
-
Intervalo:
55
-
Frequência:
Minutos
-
Fuso horário:
E. South America Standard Time
-
Horário comercial: 8h às 17h
-
Dias úteis: Segunda a sexta
Recomenda-se 55 min para não sobrepor execuções anterioresConsulta KQL no Log Analytics
-
-
Adicione a ação Run query and list results
-
Configure o Log Analytics Workspace
-
Use a seguinte consulta:
AuditLogs
| where TargetResources[0].type == "Application"
| extend Operation = OperationName
| extend AppName = tostring(TargetResources[0].displayName)
| extend Actor = tostring(InitiatedBy.user.userPrincipalName)
| project TimeGenerated, Operation, AppName, Actor, CorrelationId, Result
| sort by TimeGenerated desc
=====================================================================
Adicione um For Each
Descrição: Itera sobre cada item retornado pela consulta.
Observação: Não há uso de filtros ou condições. Todos os resultados da consulta são processados e notificados.
Observação: Não há uso de filtros ou condições. Todos os resultados da consulta são processados e notificados.
Post message in a chat or channel
Conector: Microsoft Teams
Descrição: Envia uma mensagem no Teams para cada item iterado.
Formato sugerido da mensagem:
App Registration Atualizada
Data/Hora: @{items('For_each_1')?['TimeGenerated']}
Nome da Aplicação: @{items('For_each_1')?['AppName']}
App ID: @{items('For_each_1')?['AppId']}
Modificado por: @{items('For_each_1')?['ModifiedBy']}
Considerações Finais
Este fluxo não aplica filtros lógicos nos resultados da consulta.
É recomendado adicionar uma condição (Condition) caso deseje restringir os resultados (ex: mudanças críticas, alterações fora do horário comercial etc.).
Ideal para auditorias e visibilidade rápida de alterações em aplicações registradas no Azure AD.
Comentários
Postar um comentário