<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Threat Modeling on Brewed in the Cloud by Chris Hailes</title><link>https://blog.brewedinthecloud.com/tags/threat-modeling/</link><description>Recent content in Threat Modeling on Brewed in the Cloud by Chris Hailes</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 23 Jul 2026 00:00:00 +1000</lastBuildDate><atom:link href="https://blog.brewedinthecloud.com/tags/threat-modeling/rss.xml" rel="self" type="application/rss+xml"/><item><title>Understanding Azure Attack Paths</title><link>https://blog.brewedinthecloud.com/p/understanding-azure-attack-paths/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +1000</pubDate><guid>https://blog.brewedinthecloud.com/p/understanding-azure-attack-paths/</guid><description>&lt;p&gt;Most architecture reviews describe controls by domain: identity, network, compute, data, operations.&lt;/p&gt;
&lt;p&gt;Attackers do not operate by domain. They operate by reachability.&lt;/p&gt;
&lt;p&gt;That difference is why many well-governed environments remain surprisingly exposed. A control can be correct in its local domain while still enabling traversal when combined with upstream trust edges and downstream service relationships. Path-based reasoning closes that gap by asking a harder question: not &amp;ldquo;is this configured properly,&amp;rdquo; but &amp;ldquo;what can be reached from here if compromise occurs now.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="the-mental-model"&gt;The Mental Model
&lt;/h2&gt;&lt;p&gt;An attack path is an architectural sequence of reachable decisions, not a list of vulnerabilities.&lt;/p&gt;
&lt;p&gt;In Azure environments, this sequence often traverses three interconnected planes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Identity plane&lt;/strong&gt;: token issuance, authentication trust, directory and principal relationships.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Management plane&lt;/strong&gt;: role assignments, resource governance, configuration authority.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data plane&lt;/strong&gt;: workload-level service access, runtime actions, and business data operations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A weakness in one plane only becomes material if it links to meaningful authority in another. Defensive architecture therefore treats attack paths as graph logic: nodes, edges, constraints, and consequence.&lt;/p&gt;
&lt;p&gt;This model changes design priorities. Instead of optimizing each control for local correctness, teams optimize for path disruption: where to break traversal, where to force mediation, and where to guarantee containment.&lt;/p&gt;
&lt;h3 id="path-confidence-decision-test"&gt;Path-confidence decision test
&lt;/h3&gt;&lt;p&gt;Architecture teams should treat a path model as incomplete until it answers these four questions with concrete evidence:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Which role assignments are inherited from management group, subscription, or resource group scope, and how that inheritance changes reachability.&lt;/li&gt;
&lt;li&gt;Which identities can influence policy, deployment templates, key material, or network routing through management-plane actions.&lt;/li&gt;
&lt;li&gt;Which service dependencies can be invoked to gain transitive authority beyond direct permissions.&lt;/li&gt;
&lt;li&gt;Which single edge removal would most reduce compromise consequence, and whether that edge is currently governed.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;If a path analysis cannot identify its highest-consequence pivot edge, it is documentation, not defensive architecture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="how-it-really-works"&gt;How It Really Works
&lt;/h2&gt;&lt;p&gt;In practice, path formation is usually the result of normal delivery decisions, not obvious misconfiguration.&lt;/p&gt;
&lt;h3 id="identity-edges-that-over-trust-reachability"&gt;Identity edges that over-trust reachability
&lt;/h3&gt;&lt;p&gt;Broad role assignment inheritance, shared automation identities, and permissive service principals create identity edges that are operationally convenient but architecturally expansive. A foothold that should stay local can gain cross-scope influence through valid but over-broad identity relationships.&lt;/p&gt;
&lt;h3 id="management-plane-authority-as-a-pivot-layer"&gt;Management-plane authority as a pivot layer
&lt;/h3&gt;&lt;p&gt;Management plane privileges often have more systemic consequence than data plane privileges. If a compromised identity can modify policy assignments, network controls, deployment templates, or key management settings, it can reshape the environment to unlock new paths.&lt;/p&gt;
&lt;h3 id="data-plane-adjacency-and-service-dependency-chains"&gt;Data-plane adjacency and service dependency chains
&lt;/h3&gt;&lt;p&gt;Many paths do not require direct access to crown-jewel assets. They require access to services that can influence those assets. Queue processors, orchestration workflows, and platform-managed integrations can become path amplifiers when trust boundaries are implicit.&lt;/p&gt;
&lt;div class="mermaid"&gt;flowchart LR
A[Initial foothold in workload] --&gt; B{Identity edge available?}
B --&gt;|No| C[Local impact]
B --&gt;|Yes| D[Role/Principal expansion]
D --&gt; E{Management-plane action possible?}
E --&gt;|No| F[Data-plane constrained path]
E --&gt;|Yes| G[Policy/Config influence]
G --&gt; H{Can controls be weakened or bypassed?}
H --&gt;|No| I[Limited pivot]
H --&gt;|Yes| J[New traversal routes opened]
J --&gt; K[Critical asset reachable]
&lt;/div&gt;
&lt;p&gt;Path analysis is useful precisely because it reveals how local trust decisions become global consequence chains.&lt;/p&gt;
&lt;h2 id="real-world-impact"&gt;Real-World Impact
&lt;/h2&gt;&lt;p&gt;Path-first review improves architecture decisions by exposing reachable consequence instead of relying on control inventories.&lt;/p&gt;
&lt;h3 id="better-prioritization-of-security-work"&gt;Better prioritization of security work
&lt;/h3&gt;&lt;p&gt;Without path context, teams prioritize visible issues rather than consequential ones. With path context, engineering effort shifts toward breaking high-impact traversal edges, reducing inherited authority, and hardening pivot services that determine systemic risk.&lt;/p&gt;
&lt;h3 id="faster-incident-containment"&gt;Faster incident containment
&lt;/h3&gt;&lt;p&gt;When path maps are part of architecture practice, responders know likely pivot routes before an incident. Containment actions become directed and time-bounded rather than exploratory and reactive.&lt;/p&gt;
&lt;h3 id="stronger-cross-team-coordination"&gt;Stronger cross-team coordination
&lt;/h3&gt;&lt;p&gt;Path-based models create a shared language across platform, identity, network, and application teams. Instead of arguing over control ownership, teams can collaborate on sequence interruption and containment assurance.&lt;/p&gt;
&lt;h3 id="more-defensible-leadership-decisions"&gt;More defensible leadership decisions
&lt;/h3&gt;&lt;p&gt;Executives and technical decision makers gain clearer risk narratives when findings are expressed as &amp;ldquo;reachable consequence&amp;rdquo; rather than as disconnected policy deviations. That clarity supports better trade-off decisions under budget and time constraints.&lt;/p&gt;
&lt;h2 id="gotchas-and-edge-cases"&gt;Gotchas and Edge Cases
&lt;/h2&gt;&lt;p&gt;Attack path work is high value, but teams repeatedly undercut it with predictable mistakes.&lt;/p&gt;
&lt;h3 id="static-diagrams-age-quickly-in-dynamic-estates"&gt;Static diagrams age quickly in dynamic estates
&lt;/h3&gt;&lt;p&gt;Cloud environments evolve faster than static path diagrams. If path reasoning is performed once per project rather than continuously at architecture checkpoints, critical traversal edges emerge between review cycles.&lt;/p&gt;
&lt;h3 id="data-plane-focus-can-miss-management-plane-dominance"&gt;Data-plane focus can miss management-plane dominance
&lt;/h3&gt;&lt;p&gt;Teams often model workload-to-workload movement but under-model management-plane authority. In many incidents, management-plane control determines whether compromise remains bounded or becomes systemic.&lt;/p&gt;
&lt;h3 id="service-trust-assumptions-can-hide-path-amplifiers"&gt;Service trust assumptions can hide path amplifiers
&lt;/h3&gt;&lt;p&gt;Platform services are frequently treated as safe intermediaries by default. When those services operate with broad authority, they can unintentionally compress attacker effort and increase compromise speed.&lt;/p&gt;
&lt;h3 id="path-length-is-not-the-same-as-path-difficulty"&gt;Path length is not the same as path difficulty
&lt;/h3&gt;&lt;p&gt;A long path with permissive trust edges can be easier than a short path with strong mediation. Sequence depth alone is not a meaningful risk metric without resistance quality at each edge.&lt;/p&gt;
&lt;h2 id="best-practices"&gt;Best Practices
&lt;/h2&gt;&lt;h3 id="model-paths-across-all-three-planes-together"&gt;Model paths across all three planes together
&lt;/h3&gt;&lt;p&gt;Require architecture review artifacts to show identity, management, and data-plane traversal logic in one model. Split-plane analysis hides systemic reachability.&lt;/p&gt;
&lt;h3 id="identify-and-harden-pivot-services"&gt;Identify and harden pivot services
&lt;/h3&gt;&lt;p&gt;Catalog services that can transform limited compromise into broad authority. These are architectural choke candidates and should receive disproportionate design scrutiny.&lt;/p&gt;
&lt;h3 id="track-inherited-authority-as-changing-exposure"&gt;Track inherited authority as changing exposure
&lt;/h3&gt;&lt;p&gt;Inherited roles and delegated scopes are dynamic risk surfaces. Revalidate them at each major platform change, not just during identity projects.&lt;/p&gt;
&lt;h3 id="write-findings-as-consequence-chains"&gt;Write findings as consequence chains
&lt;/h3&gt;&lt;p&gt;Describe exposures as reachable sequences, for example: &amp;ldquo;workload identity A can invoke service B, which can alter policy C, enabling access to asset D.&amp;rdquo; This format drives action better than isolated control findings.&lt;/p&gt;
&lt;div class="insight"&gt;
&lt;div class="insight-icon"&gt;🍺&lt;/div&gt;
&lt;div class="insight-content"&gt;
&lt;strong&gt;Brewed Insight:&lt;/strong&gt; Attack paths convert architecture from a control checklist into a consequence model: if you cannot explain what compromise can reach, you do not yet understand your risk.
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;
.insight {
display: flex;
align-items: center;
background-color: #0089e41c;
border-left: 10px solid #D69A2D;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
.insight-icon {
font-size: 24px;
margin-right: 10px;
}
.insight-content {
flex: 1;
}
&lt;/style&gt;&lt;h2 id="learn-more"&gt;Learn More
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/security/benchmark/azure/" target="_blank" rel="noopener"
&gt;Microsoft cloud security benchmark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/azure/role-based-access-control/overview" target="_blank" rel="noopener"
&gt;Azure role-based access control (RBAC)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/azure/governance/" target="_blank" rel="noopener"
&gt;Azure governance and management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/security/engineering/threat-modeling-tool" target="_blank" rel="noopener"
&gt;Threat modeling for cloud workloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/en-us/security/zero-trust/azure-infrastructure-overview" target="_blank" rel="noopener"
&gt;Zero Trust deployment for Azure IaaS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>