Sysdig Details Azure Tenant Takeover via Leaked Service Principal Secret

Summary
Sysdig says an attacker used a leaked Azure service-principal secret to gain Global Administrator and root-level access, harvest keys, and add credentials to 26 app registrations, exposing visibility gaps across five Azure permission planes.
Key points
- Sysdig says the service-principal secret was exposed for about two weeks before the observed abuse; sign-ins came from rotating VPN, Tor exit, and hosting infrastructure.
- The attacker reportedly gained Global Administrator in about two and a half minutes by using the service principal’s existing Microsoft Graph RoleManagement.ReadWrite.Directory permission.
- The attacker then used elevateAccess to obtain User Access Administrator at the root scope and assigned itself Owner-class access at subscription scope.
- The reported activity included harvesting keys from four storage accounts and two Event Hub namespaces, and adding access policies to three Key Vaults.
- Attacker-controlled client secrets were added to 26 application registrations for persistence; Sysdig says one was later reused to confirm the backdoor worked.
- The investigation found access spread across Entra roles, Azure RBAC, Key Vault policies, bearer keys, and Graph API permissions, with separate views and logs complicating impact analysis.
- Sysdig says immutable off-tenant logs enabled reconstruction, while data-plane diagnostics were absent for the affected storage accounts and Event Hubs; it recommends cross-plane monitoring, credential inventory, and disabling shared keys where possible.
Article Details
- Attack Vectors
- Initial access used a leaked Azure service-principal client secret that had been exposed for about two weeks.
- The service principal's admin-consented Microsoft Graph permission, RoleManagement.ReadWrite.Directory, enabled it to assign itself Global Administrator.
- The attacker used Microsoft.Authorization/elevateAccess/action to grant User Access Administrator at the Azure root scope, then self-assigned an Owner-class role at subscription scope.
- The attacker retrieved storage account keys and Event Hub root keys, and added itself to Key Vault access policies and role assignments before reading secrets.
- The attacker added attacker-controlled client secrets to 26 application registrations to establish persistence.
- Defensive Notes
- Review permissions across Entra directory roles, Azure RBAC, resource-local policies, bearer keys, and Graph API application permissions.
- Inventory service-principal credentials and Graph permissions; monitor credential additions and restrict high-risk permissions such as RoleManagement.ReadWrite.Directory.
- Alert on elevateAccess, privileged role grants, Key Vault access-policy changes, role assignments, and listKeys or SAS issuance.
- Disable shared-key access where possible and prefer identity-based data-plane authorization.
- Enable and route Entra audit and sign-in logs, Microsoft Graph activity logs, Azure Activity logs, and resource data-plane diagnostics before an incident.
- Keep durable copies of logs in immutable, off-tenant storage and correlate events across permission planes by identity.
MITRE ATT&CK
T1078.004 · Cloud AccountsThe attacker used the leaked service-principal client secret to sign in to Azure.T1087.004 · Cloud AccountThe article reports reconnaissance that included enumerating identities through Azure and Graph.T1098.001 · Additional Cloud CredentialsThe attacker added attacker-controlled client secrets to 26 application registrations for persistence.T1098.003 · Additional Cloud RolesThe attacker self-assigned Global Administrator and User Access Administrator roles.T1580 · Cloud Infrastructure DiscoveryDuring reconnaissance, the attacker enumerated Azure resources, including storage and Key Vault.
Vendors
MicrosoftThe incident exposed how Azure permission data is fragmented across Entra roles, Azure RBAC, Key Vault policies, bearer keys, and Microsoft Graph permissions, making full impact analysis difficult.SysdigThe Sysdig Threat Research Team (TRT) recently watched as an attacker started with a single leaked service-principal credential and, by the next morning, owned the tenant.
Products
AzureA leaked Azure service-principal secret let an attacker self-assign Global Administrator, elevate to root-level resource access, harvest keys, and plant persistence across 26 application registrations.Azure RBACThe incident exposed how Azure permission data is fragmented across Entra roles, Azure RBAC, Key Vault policies, bearer keys, and Microsoft Graph permissions, making full impact analysis difficult.Entra IDThe Global Administrator (GA) grant lives in Entra ID (formerly Azure AD), in directory role management.Event HubsStorage accounts, Event Hubs, Service Bus, Cosmos DB and others support shared keys and Shared Access Signatures (SAS) – long, high-privilege secrets that grant data-plane access to whoever holds them.Key VaultThe incident exposed how Azure permission data is fragmented across Entra roles, Azure RBAC, Key Vault policies, bearer keys, and Microsoft Graph permissions, making full impact analysis difficult.Microsoft GraphThe incident exposed how Azure permission data is fragmented across Entra roles, Azure RBAC, Key Vault policies, bearer keys, and Microsoft Graph permissions, making full impact analysis difficult.
Tools
Countries
Germany[Infrastructure / network sources ] Replay origins for the stolen credential – commercial VPN ranges, Tor exit nodes, hosting providers in the US, Germany, Sweden, Hong Kong, and the NetherlandsHong Kong[Infrastructure / network sources ] Replay origins for the stolen credential – commercial VPN ranges, Tor exit nodes, hosting providers in the US, Germany, Sweden, Hong Kong, and the NetherlandsNetherlands[Infrastructure / network sources ] Replay origins for the stolen credential – commercial VPN ranges, Tor exit nodes, hosting providers in the US, Germany, Sweden, Hong Kong, and the NetherlandsSweden[Infrastructure / network sources ] Replay origins for the stolen credential – commercial VPN ranges, Tor exit nodes, hosting providers in the US, Germany, Sweden, Hong Kong, and the NetherlandsUnited States[Infrastructure / network sources ] Replay origins for the stolen credential – commercial VPN ranges, Tor exit nodes, hosting providers in the US, Germany, Sweden, Hong Kong, and the Netherlands
