detecting-azure-service-principal-abuse
Ajuda seu agente a identificar o uso indevido de contas de serviço no Azure. Detecta quando essas contas são usadas para obter mais acesso.
O que ela faz
Esta ferramenta ajuda a encontrar atividades suspeitas relacionadas a 'service principals' no Azure. 'Service principals' são como contas para aplicativos que precisam acessar recursos do Azure. A ferramenta procura por maneiras que um invasor poderia ter usado essas contas para obter mais acesso ou manter o controle.
Quando usar
- ✓Quando você suspeita que alguém mal-intencionado está usando contas de aplicativos para acessar seus recursos do Azure.
- ✓Ao criar verificações automáticas para alertar sobre atividades perigosas com contas de aplicativos.
- ✓Para investigar como um invasor pode ter conseguido mais permissões usando essas contas.
Exemplo do que pedir para a IA
“Procure por atividades suspeitas em contas de aplicativos no Azure.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa os registros de atividades e logins do Azure para identificar padrões de abuso. Ela procura por coisas como novas senhas adicionadas, permissões elevadas concedidas ou tentativas de obter informações sobre as contas de aplicativos.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill detecting-azure-service-principal-abuseOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-azure-service-principal-abuse/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Detecção de Abuso de Principal de Serviço do Azure
Visão Geral
Principais de serviço do Azure são objetos de identidade usados por aplicativos, serviços e ferramentas de automação para acessar recursos do Azure. Atacantes exploram principais de serviço para escalonamento de privilégios, movimento lateral e acesso persistente. Padrões chave de abuso incluem: adicionar credenciais a principais existentes, atribuir funções privilegiadas, contornar consentimento de administrador e enumerar principais de serviço para caminhos de ataque. A propriedade de aplicativo concede a capacidade de gerenciar credenciais e configurar permissões, criando caminhos ocultos de escalonamento de privilégios.
Quando Usar
- Ao investigar incidentes de segurança que exigem a detecção de abuso de principal de serviço do Azure
- Ao construir regras de detecção ou consultas de caça a ameaças para este domínio
- Quando analistas de SOC precisam de procedimentos estruturados para este tipo de análise
- Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas
Pré-requisitos
- Assinatura do Azure com licença Microsoft Entra ID P2
- Acesso aos Logs de Auditoria do Azure AD e Logs de Logon
- Microsoft Sentinel ou Splunk para detecção baseada em SIEM
- Permissões da API do Microsoft Graph para investigação
- Função Leitor Global ou Leitor de Segurança no mínimo
Principais Padrões de Abuso
1. Novas Credenciais Adicionadas ao Principal de Serviço
Atacantes adicionam novos segredos de cliente ou certificados para obter acesso persistente:
Consulta de Detecção (KQL - Sentinel):
AuditLogs
| where OperationName has "Add service principal credentials"
or OperationName has "Update application - Certificates and secrets management"
| extend InitiatedBy = tostring(InitiatedBy.user.userPrincipalName)
| extend TargetSP = tostring(TargetResources[0].displayName)
| extend TargetSPId = tostring(TargetResources[0].id)
| project TimeGenerated, InitiatedBy, OperationName, TargetSP, TargetSPId
| sort by TimeGenerated desc
Consulta de Detecção (SPL - Splunk):
index=azure sourcetype="azure:aad:audit"
operationName="Add service principal credentials"
OR operationName="Update application*Certificates and secrets*"
| stats count by initiatedBy.user.userPrincipalName, targetResources{}.displayName, _time
| sort -_time
2. Atribuição de Função Privilegiada ao Principal de Serviço
AuditLogs
| where OperationName == "Add member to role"
| extend RoleName = tostring(TargetResources[0].modifiedProperties[1].newValue)
| where RoleName has_any ("Global Administrator", "Application Administrator",
"Privileged Role Administrator", "Cloud Application Administrator")
| extend TargetSP = tostring(TargetResources[0].displayName)
| extend InitiatedBy = tostring(InitiatedBy.user.userPrincipalName)
| project TimeGenerated, InitiatedBy, TargetSP, RoleName, OperationName
3. Detecção de Enumeração de Principal de Serviço
MicrosoftGraphActivityLogs
| where RequestMethod == "GET"
| where RequestUri has "/servicePrincipals"
| summarize RequestCount = count() by UserAgent, IPAddress, bin(TimeGenerated, 1h)
| where RequestCount > 10
| sort by RequestCount desc
4. Contorno de Consentimento de Administrador
AuditLogs
| where OperationName == "Consent to application"
| extend ConsentType = tostring(TargetResources[0].modifiedProperties[4].newValue)
| where ConsentType has "AllPrincipals"
| extend AppName = tostring(TargetResources[0].displayName)
| extend InitiatedBy = tostring(InitiatedBy.user.userPrincipalName)
| project TimeGenerated, InitiatedBy, AppName, ConsentType
5. Escalonamento de Permissões de Aplicativo OAuth
AuditLogs
| where OperationName == "Add app role assignment to service principal"
| extend AppRoleValue = tostring(TargetResources[0].modifiedProperties[1].newValue)
| where AppRoleValue has_any ("RoleManagement.ReadWrite.Directory",
"Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All",
"Directory.ReadWrite.All", "Mail.ReadWrite")
| extend TargetApp = tostring(TargetResources[0].displayName)
| project TimeGenerated, TargetApp, AppRoleValue, CorrelationId
Procedimentos de Investigação
Etapa 1: Identificar principal de serviço comprometido
# Listar principais de serviço com credenciais adicionadas recentemente
Connect-MgGraph -Scopes "Application.Read.All"
$suspiciousSPs = Get-MgServicePrincipal -All | ForEach-Object {
$sp = $_
$creds = Get-MgServicePrincipalPasswordCredential -ServicePrincipalId $sp.Id
$recentCreds = $creds | Where-Object { $_.StartDateTime -gt (Get-Date).AddDays(-7) }
if ($recentCreds) {
[PSCustomObject]@{
…
Perguntas frequentes
O que é um 'service principal'?
É uma identidade usada por aplicativos, serviços ou ferramentas de automação para acessar recursos do Azure, como se fosse uma conta de usuário, mas para máquinas.
Por que um invasor usaria um 'service principal'?
Invasores podem usar 'service principals' para obter acesso contínuo aos seus recursos, mover-se para outras partes da rede ou aumentar suas permissões sem serem detectados facilmente como um usuário humano.
Preciso de alguma licença especial para usar isso?
Sim, geralmente é necessária uma licença do Microsoft Entra ID P2 e acesso aos logs de auditoria e de login do Azure AD.
Detalhes
Descrição original do autor
Detect Azure service principal abuse in Microsoft Entra ID using KQL detection queries (Sentinel/Splunk) against Azure AD Audit and Sign-in Logs, covering added credentials, privileged role assignment, admin consent bypass, and service principal enumeration. Use when investigating suspected privilege escalation or persistence via service principals, or building threat-hunting queries for Entra ID
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5639
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC