Google Cloud Promo Code Detecting Multi-Accounting Azure Abuse
Detecting Multi-Accounting Azure Abuse
Multi-account Azure abuse is the kind of problem that feels like finding a raccoon in your attic: technically there’s only “one” creature, but it’s running in multiple directions, stealing your snacks, and leaving tiny clues everywhere. In the Azure world, the “raccoon” isn’t always a single villain with one username. More often it’s a cunning setup using multiple accounts, identities, and sometimes even multiple tenants—designed to blend in, evade rate limits, and delay detection.
This article is about detecting that pattern. Not just “watch for bad things,” but detecting the structure of the bad things: how they’re orchestrated, what signals betray them, and how to turn those signals into useful alerts and investigations. We’ll focus on practical techniques you can implement with Azure-native telemetry, then we’ll walk through a realistic investigation workflow you can adapt when the incident desk calls and says, “Uh… why is our bill doing parkour?”
What “Multi-Accounting” Means in Azure Abuse
“Multi-accounting” is a catch-all term for abuse that uses multiple identities or accounts to carry out, distribute, and conceal actions. In Azure, this can manifest in several ways:
- Multiple Azure users performing similar actions across subscriptions.
- Google Cloud Promo Code Multiple service principals that look unrelated but share characteristics (naming patterns, creation timing, permissions, or credential access paths).
- Google Cloud Promo Code Multiple tenants joined or invited into your environment, either legitimately or via compromise.
- Credential reuse where the same secret, certificate, or access method is used across accounts.
- “Account hopping” where activity is spread across identities to reduce per-account risk scores, throttle visibility, or confuse human reviewers.
At first glance, each identity’s behavior might seem “not that bad.” The abuse relies on the sum of the parts: many small actions that collectively cause large impact—compute sprawl, storage churn, unexpected network egress, or silent exfiltration attempts that look like “normal” traffic when each piece is small.
So the detection goal becomes: find the relationships. Identify clusters of accounts that behave like they belong to the same operation, even if the accounts are “separate” in the directory.
Google Cloud Promo Code Common Multi-Accounting Abuse Patterns
Let’s talk about the bread-and-butter patterns. The names are unofficial, but the behaviors are painfully familiar.
Resource Sprawl That Doesn’t Match the Calendar
One compromised account spins up resources at 2 a.m. on a random Tuesday. Another compromised account spins up resources two hours later with a slightly different naming pattern. A third identity cleans up the evidence later (or rather, tries). None of the identities alone triggers a dramatic alert.
In many real incidents, the most honest clue isn’t the “bad command.” It’s the mismatch between resource creation behavior and your expected operational rhythm: consistent tags missing, new regions chosen without business justification, or subscriptions suddenly behaving like a startup that just discovered cloud is infinite.
Cross-Subscription Similarity
Abusers often operate across subscriptions to:
- avoid per-subscription budgets or quotas,
- evade scoped detections,
- reduce the odds that an investigator will notice “this one subscription looks weird.”
The key for detection is similarity: accounts performing the same resource types, same deployment templates, or same storage patterns across multiple subscriptions. Similarity is a relationship signal. Relationships are where multi-accounting hides its face behind a scarf.
Permission Escalation in Multiple Places
Multi-account abuse sometimes involves incremental permission escalation. One identity adds itself as owner of a resource group. Another identity later assigns roles at a subscription scope. A third identity creates a new service principal. Each change might be plausible on its own—someone did it, right?—but the timeline and the actors are suspicious when mapped together.
Detection doesn’t require you to prove intent. You just need to show that the sequence looks like a playbook.
Inconsistent or Missing Tagging
Organizations with mature governance usually have tagging requirements: cost center, owner, environment, application, data classification, and so on. Multi-account abuse often comes from “drive-by deployments” using automation where tags are missing, defaulted, or inconsistent.
Yes, tagging is not a magic shield. But missing tags across many identities and multiple subscriptions is often a loud alarm bell, especially when the identities are newly created or recently granted permissions.
Credential Reuse Across Identities
Abusers may reuse artifacts such as:
- the same client secret or certificate value pattern,
- similar application names,
- similar creation times,
- similar redirect URI or audience patterns (depending on auth type),
- the same IP ranges and user agents.
Even if the accounts are different, reuse tells you someone is pulling multiple levers from the same toolbox.
Abuse That Hides in “Low-and-Slow” Activity
Instead of launching a giant compute job that triggers every alarm, attackers might spread workloads across accounts and regions. One account runs moderate workloads, another runs networking reconnaissance, another creates storage blobs. The result: everything looks like “small issues” that never quite earn an incident ticket—until your bill arrives and says, “Surprise, you’re funding the attacker’s hobbies.”
Signal Sources: What to Collect and Where It Lives
Azure is generous with logs, but only if you actually collect them. To detect multi-account abuse, you want signals that capture identity actions, resource changes, and cost/network outcomes. The main sources:
Azure Activity Logs
Activity Logs record management plane events: resource create/update/delete, role assignments, policy changes, and other control-plane operations. For detection, Activity Logs are critical because multi-account abuse often involves orchestration actions—assigning roles, creating resources, deploying templates, and modifying configurations.
Azure Sign-in Logs
Sign-in Logs capture authentication events: successful and failed sign-ins, conditional access outcomes, MFA status, and more. Multi-account abuse often has a signature in sign-in behavior: unusual locations, abnormal times, repeated failures across accounts, or new tokens being issued.
Microsoft Entra ID (Azure AD) Audit and Identity Events
Entra ID provides the audit trail for identity-related events: user and application creation, group membership changes, role assignments, and consent to apps. This is a great place to find “new identities that suddenly gain influence.”
Azure Resource Graph
Resource Graph helps you query resources across subscriptions efficiently. You can correlate resource sprawl, tag coverage, VM sizes, storage usage spikes, and unusual distributions across resource types.
Cost Management / Billing Data
Google Cloud Promo Code Cost anomalies are often the first thing people notice. But in an investigation, you want to map cost back to identities, resource groups, and time windows. Cost data becomes a “who and when” narrative when paired with Activity Logs.
Network and Data Access Logs (If You Have Them)
Depending on your setup, you may also have:
- NSG flow logs or Azure Firewall logs,
- Application Gateway/WAF logs,
- Storage access logs,
- Key Vault access events.
These signals help confirm whether multi-account activity is just resource abuse or also data access/exfiltration.
Detection Strategy: Look for Relationships, Not Just Single Events
Traditional detection often focuses on single-user anomalies: “User X created resource Y.” Multi-account abuse demands a more relational strategy. Think of it like social networking for attackers: the individual posts might be modest; the pattern of friends reveals the plot.
Here’s a practical framework:
- Cluster identities by behavioral similarity (time, actions, resource types, IP ranges, agents).
- Correlate across scope (subscription, resource group, region, template names).
- Attach impact signals (cost spikes, data access, network egress).
- Prioritize novelty (new accounts, newly granted roles, newly created service principals).
- Use heuristics when exact indicators are absent (because attackers rarely provide perfect fingerprints).
Concrete Detection Ideas You Can Implement
Now let’s move from philosophy to actionable detection patterns. Not all of these are “one-click rules,” but each one can be expressed as queries in a SIEM or analytics platform fed by Azure logs. You can implement them using Azure Monitor, Sentinel, or another logging pipeline as long as you can query the underlying events.
1) New Identity + Role Assignment Spike
Idea: Find identities created recently (users, service principals, managed identities where applicable) that rapidly receive privileged roles or role assignments.
Why it works: Multi-account abuse often involves quickly obtaining operational control. Even if the attacker uses multiple identities, each identity tends to follow the “create → gain access → deploy” rhythm.
Heuristic examples:
- Identity created within last 7 days.
- Role assignment events within the first 24 hours after creation.
- Assignment at subscription or management group scope, not just resource group scope.
False positives: Automated onboarding pipelines can do similar things. Mitigate by allow-listing known automation identities and checking whether those identities follow your standard deployment flow.
2) Shared Deployment Template Patterns Across Multiple Identities
Idea: Detect repeated resource deployments that look like the same template or deployment structure executed by different identities within a short timeframe.
Why it works: Attackers often reuse scripts and infrastructure-as-code templates across multiple identities, because they’re efficient and because they don’t care about your governance model.
What to look for:
- Same resource types and configurations across different identities.
- Same deployment mode (incremental vs complete) or similar parameter sets.
- Same naming convention patterns (prefixes, suffixes, random strings).
Implementation note: You might extract deployment names or template-related metadata from Activity Logs. If you don’t have enough details, you can approximate similarity by matching the “shape” of resources created.
3) Tag Coverage Drop for Newly Created Resources
Idea: Track tag completeness and alert when a group of resources created by a set of identities has a significantly lower tag coverage than your baseline.
Why it works: Abusers deploying via scripts often skip required tags. When multiple accounts all omit tags, the pattern becomes hard to ignore.
Google Cloud Promo Code Heuristic examples:
- Resources created by identities (new or recently active) over last 24 hours have fewer required tags.
- Missing tags exceed a threshold (for example, only 10% have “owner” tag vs 95% baseline).
- Correlate with increased cost or unusual regions.
False positives: If your tagging enforcement is inconsistent, the baseline might already be low. Fix your baseline first, or the detection will be like yelling into a pillow.
4) Cross-Subscription Resource Creation by a “Shared Actor Set”
Idea: For a given time window (say 6 hours), find identities that each created resources in more than one subscription, and where the set of identities overlaps strongly.
Why it works: Multi-account abuse frequently “fans out” across subscriptions. Even if identities differ, the operational cluster tends to overlap.
Heuristic examples:
- Identity A creates resources in Subscription 1 and 2 within the same window.
- Identity B creates resources in Subscription 2 and 3 within the same window.
- Identity A and B appear together across multiple subscriptions.
Outcome: You flag an incident tied to the cluster rather than the individual identity.
Google Cloud Promo Code 5) Sign-in Anomalies with Similar Source IPs Across Multiple Accounts
Idea: Find sign-in events where multiple accounts (users or service principals) are accessed from the same IP range or network path with similar user agents or device characteristics.
Why it works: If the attacker is using a single tool or host, you’ll see it. Even if they rotate accounts, the underlying network “fingerprint” often stays consistent.
Heuristic examples:
- Multiple identities sign in within 1–2 hours from the same unusual IP range.
- Successful sign-ins followed by rapid management operations.
- Same geolocation pattern inconsistent with your users’ normal travel.
False positives: Corporate NAT, VPNs, or service endpoints can cause shared IPs. Combine with account age, role changes, and resource deployment events to reduce noise.
6) Rapid Ownership / Contributor Role Assignments Across Many Identities
Idea: Detect when multiple identities assign privileged roles to other identities, or when multiple privileged roles are assigned to a cluster.
Google Cloud Promo Code Why it works: Multi-account abuse often involves building a foothold repeatedly. Different identities may perform parts of the permission chain.
What to look for:
- Role assignments to “Owner” or “Contributor” role at subscription/resource group scope.
- Frequent assignments to service principals.
- Role assignment events that happen in bursts around resource creation.
7) Cost Spike Attribution to a Small Set of Identities Across Many Subscriptions
Idea: Attribute cost anomalies (for example, sudden compute/storage/network cost increase) to identities and find when a small identity set drives cost across multiple subscriptions.
Why it works: Even if the actions are spread out, the financial impact tends to aggregate quickly enough to correlate with suspicious actions.
Heuristic examples:
- Cost increase exceeds threshold relative to baseline over a 24–72 hour period.
- Multiple identities are responsible for the majority of the cost increase.
- Those identities also share deployment patterns or missing tags.
Building a Multi-Account Detection Model (Without Needing Magic)
You don’t have to build an AI monster. You can start with a rules-plus-graph approach: derive features, then compute “cluster suspiciousness.” Here’s a straightforward approach:
Step 1: Define Your Identity Entities
Create a list of relevant identity types:
- Users
- Service principals (enterprise applications)
- Managed identities (where applicable, depending on your logging completeness)
Normalize identity IDs and map them to sign-in and Activity Log events. If you treat “user” and “service principal” as different worlds, your detection will miss connections.
Step 2: Extract Action Features
For each identity, extract features over time windows:
- Google Cloud Promo Code Number of resource create/update/delete operations
- Number of role assignment events
- Types of resources created (VM, storage, network, etc.)
- Geography/IP consistency from sign-in logs
- Tag completeness from Resource Graph
Then compute derived signals like “resource sprawl index” (how many resource groups/subscriptions touched) and “privilege velocity” (how quickly roles were granted after identity creation).
Step 3: Cluster Identities by Shared Signals
Cluster using simple similarity rules:
- shared IP ranges within window
- shared deployment template fingerprints (or resource type sequences)
- overlapping subscriptions touched
- similar tag-missing ratios
If you don’t want to run clustering explicitly, you can approximate with correlation detections: “when this set of identities appears together in management events within a time window.”
Step 4: Score Clusters for Alerting
Create an alert score based on severity factors:
- Privileged role assignments included? (high weight)
- Resources created across many subscriptions? (high weight)
- New identities involved? (high weight)
- Cost anomaly present? (very high weight)
- Data access signs? (very high weight)
- Tag gaps present? (medium weight)
Then trigger alerts when score passes threshold. This reduces noise and focuses attention where it matters.
Incident Response: What to Do When You Suspect Multi-Accounting Abuse
Detection is only half the story. The other half is stopping the bleeding while maintaining enough evidence to learn what happened (and maybe to convince the budget team that yes, security is worth funding).
Immediate Triage Checklist
When an alert fires, do these tasks quickly:
- Identify the identity cluster: list involved users/service principals and their IDs.
- Determine scope: which subscriptions/resource groups were impacted.
- Check privilege changes: role assignments, policy changes, access policy edits.
- Check resource inventory: newly created resources, especially compute and storage.
- Look for active workloads: running VMs, active jobs, network forwarding rules, newly deployed apps.
- Assess cost impact: confirm whether you see budget anomalies or sharp cost increases.
Containment: Don’t Just Stop One Door
Multi-account abuse means stopping one identity might not stop the operation. Containment steps often include:
- Disable or revoke tokens/credentials for the identified identities.
- Remove suspicious role assignments across subscriptions (not just one).
- Disable or delete malicious service principals and applications (with care; confirm dependencies).
- Block suspicious IPs or enforce stricter conditional access temporarily if you can do it safely.
- Quarantine resource groups where necessary, especially if data exfiltration is suspected.
Important: if you remove things too aggressively, you might destroy evidence. If you do nothing, you might pay for the attacker’s marathon. Choose your level of chaos carefully.
Eradication: Remove the Root Cause
Google Cloud Promo Code After containment:
- Rotate secrets/certificates related to compromised apps and Key Vault access paths.
- Audit automation pipelines and CI/CD identities: confirm whether the attacker gained access via a weak integration.
- Review conditional access policies: were any modified? Were any exemptions added?
- Verify RBAC assignments across the tenant: look for persistence mechanisms (service principals with broad rights).
Recovery: Validate and Monitor
Recovery isn’t just “everything works again.” It’s:
- Confirm that the malicious resources are removed.
- Ensure tagging and governance controls are enforced again (policy settings).
- Keep enhanced monitoring running for a short period to catch follow-on activity from other identities.
A Practical Investigation Workflow (Story Mode)
Let’s walk through a plausible scenario. Imagine your operations team notices that compute costs spiked by 300% overnight. The security alert dashboard shows a handful of mild issues: some new service principals created, a few role assignments, and several “resource deployments succeeded.” Nothing screams “HOLY FIRE,” but the bill is screaming.
Phase 1: Identify the Cluster
You pull a list of identities that performed management actions in the last 48 hours. You group events by identity and map them to subscriptions. You notice three service principals and two user accounts performing similar actions in overlapping windows. None of the five identities has privileged roles at baseline, but they each gained Contributor permissions in at least two subscriptions.
Already, that’s suspicious. Normal admins might touch multiple subscriptions, but the pattern of multiple new identities quickly gaining permissions is an “operation,” not a “mistake.”
Phase 2: Correlate Deployment Patterns
Next, you examine resource creation events. The resources share:
- Google Cloud Promo Code similar naming conventions (same prefix + random suffix),
- same regions and VM sizes,
- missing required tags (owner and environment are absent on most resources),
- deployments happening within minutes of each other across multiple subscriptions.
You also check sign-in logs. All identities signed in from the same suspicious IP block. The user accounts failed MFA multiple times before a successful sign-in occurred—suggesting the attacker was brute-forcing or reusing a session.
Now you have a relationship graph: shared IP + shared deployment patterns + shared privilege changes. Multi-accounting is no longer a vague concept; it’s a visible structure.
Phase 3: Confirm Impact
You check for data access. One storage account shows unusual read operations in addition to high egress. Another resource group contains a Key Vault with new access policies added by one of the service principals. Even if the attacker’s exfiltration attempt wasn’t fully successful, the intent is present in the action trail.
At this point, you also inspect any unusual network configurations, like public IPs attached to workloads, open ports, or unexpected outbound rules.
Phase 4: Contain
You disable the identities and revoke any active service principal credentials. Then you remove the role assignments at the subscription and resource group scopes that enabled resource creation. You also check for persistence mechanisms—like additional applications consenting to access, or new secrets created in Key Vault.
Finally, you quarantine the affected resource groups and stop the highest-cost workloads first. You’re not playing “delete everything” until you confirm what matters for evidence.
Phase 5: Eradicate and Post-Mortem
After recovery, you identify how the initial access happened. It might have been a compromised admin workstation, a vulnerable automation credential, or a missed conditional access requirement. You fix the root cause.
And then, the human part: you update detection rules. Because next time, you want this incident to trigger earlier than the invoice.
Reducing False Positives (Because Alerts Should Be Useful)
Multi-account detection can be noisy if you don’t account for legitimate automation and operations. Some strategies to reduce false positives:
- Allow-list known automation identities (CI/CD service principals, internal deployment bots).
- Require privilege changes for high severity alerts, not just resource creation.
- Combine signals: missing tags alone is not enough; combine with cost or sign-in anomalies.
- Use time windows: attackers often act in bursts; legitimate changes might be steady or follow change management timelines.
- Check baselines: if your environment is already chaotic, you’ll need to improve governance to make detection meaningful.
Remember: an alert that cries wolf too often will eventually get adopted by the “ignore me” folder. Denial is not a security control, even if it feels emotionally comforting.
Governance and Prevention: Detection Is Great, But Set the Trap Anyway
Detection is like having a smoke alarm. Prevention is like installing the fire extinguisher, and maybe not storing gasoline next to the toaster. A few governance ideas that reduce multi-account abuse blast radius:
Enforce Tagging and Policy
Use Azure Policy to require tags on resource creation. This doesn’t stop attackers outright, but it improves your ability to detect anomalies and sometimes prevents unauthorized deployments.
Least Privilege with RBAC
Ensure identities are granted only what they need, and ideally at the narrowest scope possible. Multi-account abuse often works because identities have broad permissions.
Restrict Service Principal Creation and App Consent
By limiting who can create service principals and who can grant app permissions, you reduce the attack’s ability to spawn new operational identities on the fly.
Conditional Access and MFA Strength
Multi-account abuse sometimes relies on weaker sign-in controls. Conditional access policies and strong MFA reduce the “easy credential acquisition” path.
Budget Alerts and Cost Visibility
Budget alerts don’t replace security detections, but they give you earlier visibility. Early visibility is good, and shouting earlier is still shouting.
Operationalizing Detection: Monitoring, Tuning, and Ownership
Even the best detection logic is only as good as its operational lifecycle. To make multi-account detection sustainable:
- Document the detections: what they look for, what thresholds mean, and how to triage.
- Assign owners: who investigates, who responds, and who approves allow-lists.
- Tune thresholds based on real telemetry from your environment.
- Test with tabletop exercises: simulate multi-account deployment in a sandbox and confirm you catch it.
- Measure outcomes: time to detect, time to contain, and false positive rate.
If you don’t tune and own the detections, they’ll drift into irrelevance or annoyance. Kind of like a houseplant that you forget to water: it might be alive, but it’s not thriving.
Summary: How to Detect Multi-Accounting Azure Abuse
Multi-account Azure abuse hides in relationships: identity clusters, shared deployment patterns, cross-subscription sprawl, tag anomalies, and correlated sign-in behavior. To detect it effectively, you should:
- Collect and query Azure Activity Logs, Sign-in logs, Entra ID identity audit events, and Resource Graph data.
- Build detections around relationships, not just single-event anomalies.
- Use heuristics combining novelty (new identities), privilege escalation, deployment similarity, and cost impact.
- Investigate with a cluster-based workflow and contain across all involved identities and scopes.
- Tune detections to reduce noise and integrate governance controls like least privilege and tagging policies.
The attacker’s goal is to make you look at the wrong unit of analysis. Your job is to zoom out just enough to see the orchestration. And if you do it right, you’ll catch the raccoon before it redecorates your cloud bill.

