Pular para o conteúdo
Skillpedia
Agentes35 mil · #5639

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/detecting-azure-service-principal-abuse/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/detecting-azure-service-principal-abuse/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-abuse

Ou 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.md
Conteú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

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5639
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas