M365Con 2027 – conferência online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Descobrindo pontos cegos de conformidade do M365 com o Microsoft Graph

By ·

Bem-vindo de volta ao podcast e ao nosso blog técnico complementar! Se você já confiou em um painel de conformidade do Microsoft 365 pronto para uso e presumiu que tudo estava totalmente contabilizado, pode estar caindo em uma falsa sensação de segurança…

Automatically translated with AI from the original post. Read the English original

▶ BLOGUncovering M365Compliance Blindspots…M365.FM
Titelbild: Uncovering M365 Compliance Blindspots with Microsoft Graph

Bem-vindo de volta ao podcast e ao nosso blog técnico complementar! Se você já confiou em um painel de conformidade do Microsoft 365 pronto para uso e presumiu que tudo estava totalmente contabilizado, pode estar caindo em uma falsa sensação de segurança. Os painéis de conformidade padrão são projetados como resumos, não como a verdade absoluta. Sinais críticos, como as ocorrências de Prevenção contra Perda de Dados (DLP), as ações de eDiscovery e os alertas de segurança subjacentes, muitas vezes ficam atrás de endpoints do Microsoft Graph que exigem permissões separadas, parâmetros de consulta avançados e a devida integração de dados. Neste mergulho técnico, vamos explorar por que seus relatórios nativos estão deixando de fora informações cruciais, mapear os endpoints exatos do Graph que você precisa consultar e mostrar como enviar essas evidências brutas diretamente para o Microsoft Purview, para gerar relatórios claros e defensáveis. Para ouvir nossa discussão completa sobre o tema, não deixe de conferir o episódio relacionado do podcast: Find Missing Microsoft 365 Compliance Data with Graph.

Visão geral

Painéis de conformidade padrão são resumos, não a verdade. Sinais críticos (ocorrências de DLP, ações de eDiscovery, alertas de segurança) muitas vezes ficam atrás de endpoints do Graph com permissões separadas. Mapeamos as APIs, os escopos e os padrões de script exatos para extrair evidências com fidelidade total e centralizá-las no Purview, para relatórios claros e defensáveis.

Quem se beneficia

  • Responsáveis por conformidade, jurídico e riscos que precisam de evidências prontas para auditoria

  • Administradores de M365 e Entra que criam relatórios e automações

  • Equipes de segurança que correlacionam telemetria de DLP, eDiscovery e alertas

Os pontos cegos (por que os painéis padrão não enxergam tudo)

  • Agregação e atraso: os resumos da interface omitem detalhes de incidentes aninhados e atividades recentes

  • Lacunas de escopo: correspondências de eDiscovery e de DLP podem estar fora das exportações padrão

  • Permissões divididas: os endpoints de /security e /compliance exigem escopos diferentes

  • Sem junções: os painéis raramente correlacionam incidentes com usuários, custodiantes ou etapas de caso

Os endpoints do Graph de maior valor (lista para copiar)

  • Alertas de segurança (amplitude)

    • Endpoint: /security/alerts ou /security/alerts_v2

    • Permissões de aplicativo (exemplos): SecurityEvents.Read.All (ou Alerts.Read.All nos modelos mais recentes)

    • Uso: linhas do tempo de alertas, gravidade, status, atribuições

  • Políticas e atividade de DLP (perda de dados)

    • Endpoints (a disponibilidade varia por locatário):

      • /security/dataLossPreventionPolicies (inventário de políticas)

      • /security/dlpIncidents ou endpoints avançados de incidentes de DLP no namespace de segurança (depende do locatário)

    • Permissões de aplicativo: SecurityEvents.Read.All (e/ou escopos de leitura específicos de DLP, quando disponíveis)

    • Uso: correspondências, locais (Exchange/SharePoint/Teams) e disposição

  • eDiscovery (casos e ações)

    • /compliance/ediscovery/cases

    • Caminhos filhos: /custodians, /searches, /reviewSets, /noncustodialDataSources, /operations

    • Permissões de aplicativo: eDiscovery.Read.All (e de gravação, se você gerenciar casos)

    • Uso: status do caso, retenções, custodiantes, exportações, ações dos revisores

  • Auditoria e contexto de entrada (evidências de apoio)

    • /auditLogs/directoryAudits, /auditLogs/signIns

    • Permissões de aplicativo: AuditLog.Read.All, Directory.Read.All

    • Uso: quem alterou o quê e quando, contexto da sessão

Dica: muitas cargas de dados de conformidade são profundamente aninhadas. Planeje usar $expand, paginar via @odata.nextLink e fazer a junção com /users/{id} para obter nomes de exibição e departamentos.

Autenticação e permissões (caminho sem complicações)

  • Use permissões de aplicativo (entidade de serviço) para tarefas não supervisionadas

  • Registre aplicativos separados para segurança e para o Graph principal se sua organização exigir privilégios divididos

  • Conceda apenas os escopos de menor privilégio; armazene segredos e certificados no Key Vault

  • Implemente backoff exponencial para respostas 429/503 e registre o x-ms-request-id nos logs

Padrões de script (PowerShell ou Python)

  • Select e expand: solicite apenas os campos necessários, usando $select=… e $expand=… para entidades aninhadas

  • Filtrar e limitar o tempo: $filter=createdDateTime ge {ISO8601} para deltas

  • Paginar: faça loop em @odata.nextLink; nunca presuma que os resultados estão em uma única página

  • Normalizar: mapeie IDs de usuários e objetos para nomes e departamentos logo no início, para que as saídas sejam legíveis

  • Juntar para contexto: enriqueça os incidentes com metadados de usuário, site, equipe ou caso antes da exportação

Integrando tudo ao Purview (transformando dados em decisões)

  1. Padronizar a saída: CSV/JSON com nomes de campos consistentes (tenant, incidentId, workload, userId, userUPN, severity, status, created, lastAction, caseId)

  2. Ingerir: armazene os arquivos em um local de armazenamento seguro que o Purview consiga ler (por exemplo, ADLS Gen2)

  3. Marcar e rotular: aplique rótulos de confidencialidade ou tags personalizadas (por exemplo, “DLP-PII-High”) para o roteamento

  4. Painéis: Purview (ou Power BI sobre os dados do Purview) para tendências, responsáveis e tempo de SLA em aberto

  5. Automações: regras para notificar os responsáveis pelos casos em caso de reincidências ou escalonamentos; resumos semanais em PDF

Piloto de 30 minutos (passo a passo)

  • 0–10 min: registro do aplicativo + SecurityEvents.Read.All / eDiscovery.Read.All; crie o segredo ou certificado

  • 10–20 min: crie um script para um endpoint (alertas ou casos) com paginação + $filter para os últimos 7 dias

  • 20–30 min: enriqueça com /users, exporte para CSV, envie ao caminho do ADLS e visualize um gráfico básico

KPIs que comprovam o valor

  • % de incidentes com responsável e disposição preenchidos

  • Tempo médio do incidente até o caso (ou revisor)

  • Contas e locais com reincidência por 30 dias

  • Diferença em relação às contagens do painel padrão (OOTB), ou seja, redução da lacuna

  • Tempo de ciclo da auditoria (horas economizadas na preparação das evidências)

Armadilhas comuns (e como corrigi-las)

  • Resultados vazios → escopos incorretos ou uso de permissões Delegated quando Application é necessário

  • Detalhes ausentes → esqueceu o $expand ou as coleções aninhadas não foram interpretadas

  • Dados parciais → sem paginação; apenas a primeira página foi capturada

  • Divergências de nomes → sem enriquecimento por junção com /users ou com dados de RH

  • Painéis desatualizados → sem execuções agendadas; adicione um job e alertas para falhas

Ganhos rápidos desta semana

  • Extraia os últimos 7 dias de /security/alerts e compare as contagens com o portal

  • Exporte os casos abertos de eDiscovery e os custodiantes; compartilhe com o Jurídico para validação

  • Execute uma varredura de incidentes de DLP e marque as reincidências; abra os acompanhamentos no Purview

  • Agende um pacote semanal de evidências (CSV + PDF) para uma caixa de correio de conformidade

Perguntas frequentes

  • Preciso ser desenvolvedor? Não. PowerShell ou scripts curtos em Python são suficientes.

  • Por que permissões de aplicativo? A maioria dos endpoints de /security e /compliance exige acesso sem interface e de alta confiança.

  • Posso continuar no PowerShell? Sim. Use o Microsoft Graph PowerShell SDK e trate $top, $filter, $expand e a paginação.

  • O Purview é obrigatório? Não estritamente, mas ele transforma o JSON bruto em fluxos de trabalho auditáveis e painéis.

Conclusão

Os painéis resumem; o Graph conta a história completa. Consulte os endpoints certos, corrija a autenticação, pagine e expanda, e depois centralize tudo no Purview. Você vai sair da conformidade de checklist para uma visibilidade comprovável e em tempo real, sem se afogar em exportações manuais. Para uma conversa aprofundada e dicas de especialistas sobre como tratar diretamente esses pontos cegos, não deixe de ouvir nosso episódio dedicado do podcast Find Missing Microsoft 365 Compliance Data with Graph. Continue refinando seus scripts, proteja suas permissões de aplicativo e comece a exibir os dados que seus painéis vêm escondendo!

Entities in this article

eDiscovery Compliance Dashboards Microsoft Graph Microsoft Purview Data loss prevention (DLP) PowerShell Microsoft 365 Exchange Online JSON

Related articles

RSS