Azure Red Team
CONFIDENTIAL

Cloud Security Assessment

Contoso Cloud — Sample Assessment

ClientFictional Demo Corp (not a real customer)
Engagement IDsample-acme-2026-q2
Moderead-only-assessment
Assessment date2026-06-09
Subscriptions00000000-0000-0000-0000-000000000000 · 00000000-0000-0000-0000-000000000001
1 Critical4 High2 Medium1 Low1 Informational

Contents

Read-only assessment. This report is generated from supplied, read-only findings and methodology output; it performs no live scanning and contains no exploit payloads. Distribution is restricted to authorized recipients.

1

Executive Summary

The assessment recorded 9 findings in the in-scope environment (1 Critical, 4 High, 2 Medium, 1 Low, 1 Informational).

The highest-severity modeled attack path, AZ-PATH-001 (Critical), “Public web app to subscription Owner,” traces a route ending in Subscription Owner.

9 of 9 findings are in an open or unresolved state and warrant remediation tracking.

4 findings participate in at least one modeled attack path and should be prioritized to break those chains.

1Critical
4High
2Medium
1Low
1Informational
2

Attack Paths

Modeled routes an adversary could take through the environment. Nodes linked to a finding are clickable and jump to the detailed finding.

Critical AZ-PATH-001 Public web app to subscription Owner
modeledEntry Public App ServiceEnd state Subscription Owner
IMDS token · T1552.005secret read · T1555.0…SP credentialroleAssignments/write…Public App Service /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-web-prod/providers/Microsoft.Web/sites/contoso-public-portal Finding AZ-WEB-009ENTRYPublic App ServiceAZ-WEB-009App managed identityPIVOTApp managed identityKey Vault secret /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-web-prod/providers/Microsoft.KeyVault/vaults/kv-web-prod Finding AZ-LOG-005PIVOTKey Vault secretAZ-LOG-005sp-deploy-prod Finding AZ-AUTH-014PIVOTsp-deploy-prodAZ-AUTH-014Subscription Owner Finding AZ-PATH-001TARGETSubscription OwnerAZ-PATH-001
Break the chain: Remove Microsoft.Authorization/roleAssignments/write from sp-deploy-prod (finding AZ-AUTH-014). Without the escalation primitive, the chain terminates at a low-privilege identity.
High AZ-AUTH-014 Service principal holds roleAssignments/write at subscription scope
derivedEntry Compromised SP sp-deploy-prodEnd state Self-assign Owner
Compromised SP sp-deploy-prod Finding AZ-AUTH-014ENTRYCompromised SP sp-deplo…AZ-AUTH-014roleAssignments/write Finding AZ-AUTH-014STEProleAssignments/writeAZ-AUTH-014Self-assign Owner Finding AZ-AUTH-014TARGETSelf-assign OwnerAZ-AUTH-014
Break the chain: Replace the standing assignment with a least-privilege deployment role that excludes roleAssignments/write. If role assignment is required, gate it behind PIM with approval.
3

Findings

4

Recommendations

Findings consolidated into prioritized, actionable remediations. Items flagged breaks attack path sever a modeled chain and are weighted higher.

ImmediateCritical exposure or active attack-path participation
CriticalAttack Pathbreaks attack path

Remove roleAssignments/write from the service principal (replace with PIM-eligible, time-bound assignment). Scope the managed identity's Key Vault access to only the secrets it needs and enable Key Vault RBAC with purge protection.

Addresses:
T1078.004T1548T1552.005CIS 1.23CIS 8.4Managed identity with excessive permissionsAC-6IA-5
HighRBACbreaks attack path

Replace the standing assignment with a least-privilege deployment role that excludes roleAssignments/write. If role assignment is required, gate it behind PIM with approval.

Addresses:
T1098.003CIS 1.23AC-6
Short-termMaterial risk to address in the current remediation cycle
HighNetwork

Remove the 0.0.0.0/0 RDP rule. Use Azure Bastion or just-in-time VM access, and restrict management ports to known admin IP ranges.

Addresses:
T1110T1190CIS 6.1Management ports should be closed on your virtual machines
HighStorage

Set allowBlobPublicAccess=false on the storage account and set every container's public access level to 'private'. Use SAS or Entra-authenticated access for legitimate sharing.

Addresses:
T1530CIS 3.7Storage account public access should be disallowed
HighIdentity

Enforce phishing-resistant MFA for all privileged roles via Conditional Access, and make the roles PIM-eligible rather than permanently active.

Addresses:
T1078.004CIS 1.1.1IA-2(1)
MediumLoggingbreaks attack path

Add a diagnostic setting on the vault sending AuditEvent (and AllMetrics) to a Log Analytics workspace, and alert on anomalous secret reads.

Addresses:
T1562.008CIS 5.1.5AU-12
MediumAI

Set publicNetworkAccess=Disabled and use a private endpoint, or restrict to known IP ranges. Prefer Entra ID (managed identity) auth over API keys and rotate keys.

Addresses:
T1133Cognitive Services accounts should restrict network access
HardeningLower-severity posture and defense-in-depth improvements
LowWebbreaks attack path

Set minimum TLS to 1.2+, and place the app behind Front Door or App Gateway with WAF in Prevention mode.

Addresses:
T1557CIS 9.3
InformationalGovernance

Apply CanNotDelete locks to production resource groups and critical resources.

Addresses:
CP-2
5

Resources & Scope

Assets referenced by findings, deduplicated and ranked by worst observed severity, with a roll-up of in-scope tenants and subscriptions.

Subscription 00000000-0000-0000-0000-0000000000006 assets · 7 findings
Tenant 00000000-0000-0000-0000-0000000000aa1 asset · 1 finding
Subscription 00000000-0000-0000-0000-0000000000011 asset · 1 finding
8 distinct assets referenced across 8 resource types.
CriticalMicrosoft.Web/sites1
HighMicrosoft.Authorization/roleAssignments1
HighMicrosoft.Network/networkSecurityGroups1
HighMicrosoft.Storage/storageAccounts1
Hightenant/directoryRoles1
MediumMicrosoft.CognitiveServices/accounts1
MediumMicrosoft.KeyVault/vaults1
InformationalresourceGroups1
SeverityAssetTypeScopeFindings
Critical contoso-public-portal Microsoft.Web/sites 00000000-0000-0000-0000-000000000000
High sp-deploy-prod Microsoft.Authorization/roleAssignments 00000000-0000-0000-0000-000000000000
High nsg-jumpbox Microsoft.Network/networkSecurityGroups 00000000-0000-0000-0000-000000000000
High contosopublicdata Microsoft.Storage/storageAccounts 00000000-0000-0000-0000-000000000000
High GlobalAdministrator tenant/directoryRoles tenant:00000000-0000-0000-0000-0000000000aa
Medium contoso-openai Microsoft.CognitiveServices/accounts 00000000-0000-0000-0000-000000000001
Medium kv-web-prod Microsoft.KeyVault/vaults 00000000-0000-0000-0000-000000000000
Informational rg-web-prod resourceGroups 00000000-0000-0000-0000-000000000000
6

Consolidated Attack Graph

All modeled attack paths merged into a single graph. Shared assets are deduplicated so cross-path pivots are visible at a glance.

Drag to pan · scroll to zoom · click a node to open its finding
CriticalHighMediumLowInformationalback-edge (loop)
IMDS token · T1552.…secret read · T1555…SP credentialroleAssignments/wri…Public App Service /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-web-prod/providers/Microsoft.Web/sites/contoso-public-portal Finding AZ-WEB-009 (Low)ENTRYPublic App ServiceAZ-WEB-009App managed identityPIVOTApp managed identityKey Vault secret /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-web-prod/providers/Microsoft.KeyVault/vaults/kv-web-prod Finding AZ-LOG-005 (Medium)PIVOTKey Vault secretAZ-LOG-005sp-deploy-prod Finding AZ-AUTH-014 (High)PIVOTsp-deploy-prodAZ-AUTH-014Subscription Owner Finding AZ-PATH-001 (Critical)TARGETSubscription OwnerAZ-PATH-001
A

Appendix A · Coverage & Controls

Finding distribution across security domains and the control frameworks referenced by the findings.

DomainFindingsCritHighMediLowInfo
AI1··1··
Attack Path11····
Governance1····1
Identity1·1···
Logging1··1··
Network1·1···
RBAC1·1···
Storage1·1···
Web1···1·

MITRE ATT&CK

T1078.004T1098.003T1110T1133T1190T1530T1548T1552.005T1557T1562.008

CIS Azure

CIS 1.1.1CIS 1.23CIS 3.7CIS 5.1.5CIS 6.1CIS 8.4CIS 9.3

Defender for Cloud

Cognitive Services accounts should restrict network accessManaged identity with excessive permissionsManagement ports should be closed on your virtual machinesStorage account public access should be disallowed

NIST 800-53

AC-6AU-12CP-2IA-2(1)IA-5
B

Appendix B · Methodology & Limitations

This assessment was produced by a coordinated team of read-only Azure security agents. Each agent specializes in a domain (identity, network, storage, RBAC, logging, AI, web, and governance) and contributes structured findings to a shared evidence model. An orchestrator deduplicates overlapping observations and an attack-path analyst correlates findings into multi-step chains.

Scope

Only resources and configurations represented in the supplied findings dataset are in scope. Tenants and subscriptions listed on the cover define the engagement boundary.

Approach

The methodology is read-only and evidence-driven: configuration and posture are evaluated against documented control baselines and known attack techniques. No exploitation, write operations, or live credential use is performed, and no exploit payloads are included.

Limitations

Absence of a finding is not proof of security; it reflects only what was evaluated with the supplied inputs. Severity and confidence are analytical judgments. Attack paths are models intended to prioritize remediation, not guarantees of exploitability. Findings should be validated against the live environment before remediation is finalized.

C

Appendix C · About This Report

This document is a self-contained HTML report. It loads no external scripts, styles, fonts, or network resources, and is safe to open offline or archive as evidence. Use Print / Save PDF to produce a paginated copy.

Generated2026-06-10T13:20:06.614Z
Generator version2.0.0
Findings9
Attack paths2 (1 modeled, 1 derived)