When someone asks, “How could an attacker get to this data?” the answer is usually too vague to act on. Attack trees and attack graphs turn that question into a structured security analysis that shows attacker paths, weak points, and the controls most likely to stop real compromise.
Certified Ethical Hacker (CEH) v13
Learn essential ethical hacking skills to identify vulnerabilities, strengthen security measures, and protect organizations from cyber threats effectively
Get this course on Udemy at the lowest price →Quick Answer
Attack trees and attack graphs are threat modeling methods that map how an attacker could reach a goal such as stealing data or gaining admin access. Trees break the goal into simple branches; graphs show chained compromise paths and dependencies. Used correctly, they help teams prioritize mitigations, improve application security, cloud security, and network defense, and make security decisions more defensible.
Quick Procedure
- Define one attacker goal and one system boundary.
- Collect architecture, identity, and vulnerability inputs.
- Draw an attack tree for the goal using AND and OR branches.
- Expand critical branches into an attack graph for multi-step paths.
- Score paths by likelihood, effort, access required, and impact.
- Turn the highest-risk paths into specific mitigations and owners.
- Review and update the model whenever the system changes.
| Primary Use | Threat modeling attacker paths and security controls |
|---|---|
| Best For | Application security, cloud security, network defense, and incident planning |
| Attack Tree | Hierarchical model with a top goal, sub-goals, and leaf techniques |
| Attack Graph | Connected model showing multiple routes, dependencies, and chained compromise |
| Typical Output | Prioritized attack paths, choke points, and mitigation actions |
| Common Inputs | Architecture diagrams, data flow diagrams, asset inventories, and access maps |
| Related Practice | Threat Modeling |
What Attack Trees and Attack Graphs Are
Attack trees are a hierarchical way to model how an attacker could reach a goal. You start with the objective at the top, such as stealing customer records, then break it into sub-goals, methods, and conditions that make the attack possible.
Attack graphs are a more connected model that shows how one compromise leads to another. Instead of only showing a goal and branches, an attack graph captures relationships, dependencies, and multi-step movement across a system.
Both models answer the same core question: how might an attacker succeed? The difference is structure. A tree is easier to read and explain in a workshop. A graph is better when the environment has shared credentials, trust relationships, lateral movement, or multiple entry points.
Consider a simple example: “gain access to customer records.” In an attack tree, that goal might split into branches such as credential theft, abuse of excessive permissions, or exploit a vulnerable application. In an attack graph, those branches can connect. A stolen password might lead to VPN access, which might lead to an internal admin console, which might then expose the records.
A good attack model does not just describe weaknesses. It shows how small weaknesses combine into a realistic compromise path.
This is why the diagram itself is not the value. The value is the analysis that comes from it. A well-built model exposes where the system is brittle, where a single control can break multiple paths, and where assumptions about access or trust are doing too much work.
Note
Attack trees are usually the faster way to start a conversation. Attack graphs are usually the better way to prove how a real compromise could unfold across a complex environment.
Why These Models Matter in Threat Modeling
These models matter because they replace guesswork with repeatable analysis. Without a structure, teams tend to list threats as disconnected items: a weak password here, a missing patch there, a risky cloud permission somewhere else. That list is useful, but it does not tell you which issues matter most or how they combine into a real attack path.
Attack trees and graphs also improve communication. Engineers want technical detail. Managers want risk. Product owners want to know what to fix first. A structured attacker model gives each group a shared language. It answers questions like “What would the attacker do next?” and “Which control blocks the most paths?” in a way that is easy to discuss.
That matters for prioritization. A low-severity issue may look harmless in isolation, but if it sits on a path to administrative access or data exfiltration, it becomes a serious risk. This is the same reason threat modeling is so useful in application security, cloud security, and network defense: it focuses attention on the routes that lead to impact, not just on the existence of vulnerabilities.
It also helps with incident preparedness. If a team already knows the likely attacker paths, it can build detections around them, test response playbooks, and identify where segmentation or authentication controls should slow an intruder down. For a practical overview of attack techniques and mappings, MITRE ATT&CK is a useful reference, and the framework is widely used to connect behavior to real-world adversary methods: MITRE ATT&CK.
What the model helps you decide
- Which security issues to fix first.
- Which controls block multiple attack paths at once.
- Where detection is more realistic than prevention.
- Which assumptions need validation before release.
Attack Trees vs. Attack Graphs: Choosing the Right Model
Attack trees are the better choice when the question is narrow and the audience needs clarity. They work well in design reviews, sprint planning, executive briefings, and workshops where a team wants to understand one objective without getting buried in infrastructure detail.
Attack graphs are the better choice when the environment is interconnected. Enterprise networks, identity-heavy platforms, cloud workloads, and shared service environments often create chained opportunities. In those cases, a graph shows how compromise spreads through trust relationships, reused credentials, and reachable services.
| Attack Tree | Simpler, faster to explain, and best for one clear attacker goal. |
|---|---|
| Attack Graph | More detailed, better for chained compromise, and stronger for complex environments. |
Use a tree when you need scoping and communication. Use a graph when you need path realism. In practice, many teams use both. They start with a tree to define the attack goal, then expand the highest-value branches into a graph when the environment has multiple dependencies or when lateral movement matters.
That combination is especially useful in organizations using cloud identity, shared administrative access, or hybrid networks. A tree helps explain the threat. A graph helps prove the route. For guidance on security priorities and control selection, NIST’s risk management and cybersecurity publications remain a strong reference point: NIST Cybersecurity Framework.
How Do You Define the Scope Before Building the Model?
You define the scope by choosing one attacker goal, one system boundary, and one realistic attacker profile. If the scope is too broad, the model becomes a huge diagram that nobody uses. If it is too narrow, it misses the paths that actually matter.
Start with a specific objective such as exfiltrating customer records, taking over an admin account, or disrupting a payment workflow. Then identify what is in scope: one application, one cloud workload, one subnet, one identity system, or one business process. This keeps the analysis grounded in something the team can defend and act on.
The attacker profile matters too. An external attacker, a malicious insider, a credential thief, and an opportunistic scanner all have different starting conditions. A model that assumes full internal access will miss controls that matter at the perimeter. A model that assumes no prior access may ignore trust abuse or session theft.
Scoping also means stating assumptions. What does the attacker already know? What access do they begin with? Which controls are already present, such as MFA, segmentation, or EDR? The clearer those assumptions are, the more useful the model becomes as a decision tool.
Good scope statements are specific
- “External attacker targeting the customer records database through the public web app.”
- “Compromised employee account attempting lateral movement into finance systems.”
- “Cloud workload with internet exposure and access to internal APIs.”
How Do You Build an Effective Attack Tree?
An effective attack tree starts with one top-level goal and then breaks that goal into smaller ways to achieve it. The best trees are simple at first. They become more precise during review, not before.
-
Define the top goal. Pick one outcome, such as exfiltrating records, escalating privileges, or taking over an account. The goal should be concrete enough that the team can tell whether the path really leads to impact.
-
Break the goal into sub-goals. Ask what an attacker must accomplish to get closer to the objective. For example, stealing records may require valid access, application abuse, or a backend compromise. These sub-goals become the main branches.
-
Add leaf nodes for methods or conditions. Each leaf should represent a specific technique, vulnerability, or prerequisite. A leaf might be “reuse stolen credentials,” “abuse weak authorization checks,” or “exploit unpatched input validation.”
-
Use AND and OR logic carefully. A branch marked OR means the attacker can succeed through any one of several methods. AND means multiple steps are required. This is where the tree becomes analytically useful because it shows whether one fix can block the path or whether multiple conditions must line up.
-
Refine the most important branches. Do not try to model every possible weakness immediately. Focus on the branches that are likely, high impact, or easy to exploit. Add detail where it changes a mitigation decision.
For example, if the goal is “gain admin access,” one branch might be “steal an admin password,” another might be “abuse password reset,” and another might be “exploit a privilege escalation flaw.” Each branch then breaks into the exact conditions needed for success. That structure makes it easier to test assumptions and choose controls.
Security teams doing structured analysis often pair this work with Threat Modeling methods and with attacker technique references from the National Institute of Standards and Technology, especially when they need a repeatable process rather than an ad hoc brainstorming session.
How Do You Build an Attack Graph for Multi-Step Attacks?
Attack graphs are best when one compromise creates another opportunity. If stolen credentials unlock internal services, or if one misconfigured role grants access to multiple systems, a graph shows the chain more clearly than a tree can.
In an attack graph, nodes usually represent systems, accounts, privilege states, or reachable conditions. Edges represent transitions such as exploitation, authentication, privilege escalation, session hijacking, or lateral movement. That makes the graph especially useful for hybrid environments where one foothold can open several doors.
Think about a cloud workload exposed to the internet. The initial node may be the public application. A successful exploit may move the attacker to the application server. From there, a metadata service abuse or leaked credential may expose a storage account. From that storage account, the attacker may reach a database or secrets vault. The graph makes the progression visible.
This is also why graphs matter in identity-rich environments. Shared roles, trust policies, service principals, and inherited permissions can create paths that are invisible in a flat list of findings. A graph shows that the issue is not just one vulnerable system. It is the way systems and permissions connect.
Use attack graphs when you want to see the full path from initial access to impact. That is the real value. A list of vulnerabilities tells you what exists. A graph tells you what can happen next. For cloud and infrastructure teams, that distinction is critical because the actual risk often comes from the chain, not the first weakness alone.
If your team is formalizing this work, it helps to pair the graph with practical training in ethical hacking and adversary thinking. That is exactly where the Certified Ethical Hacker (C|EH™) skill set becomes useful in real assessments and structured review.
How Do You Gather the Right Inputs for the Model?
Good inputs make the model real. Bad inputs turn it into guesswork. The most useful starting points are architecture diagrams, asset inventories, data flow diagrams, and identity and access information. Those sources show what exists, how it connects, and where trust is assumed.
You should also pull in vulnerability findings, misconfigurations, and penetration test results when they are available. Those inputs help ground the model in actual conditions rather than theoretical concerns. If a web server is internet-facing and missing patches, that is far more relevant than a hypothetical issue that has no foothold in the environment.
- Architecture diagrams show components and trust boundaries.
- Data flow diagrams show where sensitive data moves and where it can be intercepted or abused.
- Asset inventories show what must be protected and what depends on it.
- Identity and access records show who can reach what and under which conditions.
- Threat intelligence shows attacker methods worth modeling now.
Do not ignore the people who operate the system. Engineers, administrators, and operations staff often know about shortcuts, temporary exceptions, and inherited access that are missing from formal documentation. Those details frequently determine whether an attack path is realistic.
For defenders who want to ground the analysis in known adversary behavior, the MITRE ATT&CK knowledge base is one of the most practical sources for technique mapping. It helps teams avoid overly abstract threat models and focus on methods that real adversaries use.
How Do You Use Attack Trees and Graphs to Identify Real Risk?
You use these models to prioritize paths that are both feasible and damaging. A path is risky when the attacker can realistically complete it, when the controls are weak or missing, and when the outcome matters to the business.
That means the model should push you to ask four questions: How hard is the path? What access does the attacker need? How much effort or skill is required? What is the likely impact if the path succeeds? Those questions are more useful than a generic list of “high,” “medium,” and “low” findings.
A single issue can become critical if it sits on a high-value path. For example, a weak authorization check may look minor until you see that it lets an attacker pivot from a low-privilege account to records, keys, or admin functions. The model reveals that relationship. It also exposes choke points, where one fix can disrupt multiple routes at once.
This is why the goal is decision support, not documentation for its own sake. The model should help you decide what to fix now, what to monitor, and what can wait. That is a direct threat-modeling outcome, not a theoretical one.
For organizations that want to anchor risk discussions in known control frameworks, NIST’s guidance on security and risk management is a solid reference point, and PCI Security Standards Council documentation is useful when payment systems are involved: PCI Security Standards Council.
How Do You Turn Analysis Into Mitigation?
Once you identify the dangerous paths, translate them into controls. The best mitigations do more than fix one issue. They break entire branches or remove the attacker’s ability to progress from one state to the next.
-
Map each risky path to a control. If the path depends on weak authentication, improve MFA enforcement, session handling, or password reset controls. If the path depends on network reachability, tighten segmentation or restrict service exposure.
-
Choose preventive or detective controls intentionally. Some paths are best blocked outright with hardening, patching, or least privilege. Others are better handled with logging, alerting, and response because complete prevention is unrealistic.
-
Prioritize fixes that break multiple paths. A single improvement to identity controls, authorization checks, or secrets management can reduce risk across several branches at once. That is usually a better investment than fixing one isolated weakness.
-
Assign ownership. Every mitigation needs a responsible team or person. Without ownership, the model becomes an interesting artifact instead of an action plan.
-
Link the fix to business risk. Security teams gain traction when they explain how a control reduces exposure to data theft, downtime, fraud, or regulatory impact. That is how the model supports real decisions.
In practice, the best mitigation plans combine hardening, segmentation, access control, and detection. For example, if an attack graph shows a path from a web app to a database through a compromised service account, the response may include rotating secrets, reducing service permissions, improving monitoring, and limiting database reachability. That is stronger than applying one narrow fix and hoping for the best.
What Mistakes Do Teams Make With Attack Trees and Graphs?
The most common mistake is making the model too large. If the diagram becomes a giant wall of nodes, it stops being an analysis tool and turns into documentation. Teams should keep the first version focused on the most credible paths, then expand only where the details affect a decision.
Another mistake is treating every branch as equally important. Not every possible path deserves the same attention. The useful question is not “Can this happen?” but “How likely is this, and what happens if it does?” That keeps the analysis tied to operational risk instead of hypothetical completeness.
Teams also get tripped up by hidden assumptions. If a graph assumes the attacker already has internal access, but the environment has strong perimeter controls, the analysis may overstate the risk. If the model ignores credential reuse, default permissions, or temporary exceptions, it may understate the risk. Good threat modeling makes assumptions visible.
Failure to update the model is another problem. Systems change, permissions change, and threat conditions change. A model that is accurate today can become stale after a cloud migration, an application release, or an identity redesign.
Warning
A threat model that is never updated becomes a snapshot of a system that no longer exists. Review it when architecture, permissions, or exposure changes.
How Do You Run Better Workshops and Cross-Functional Reviews?
Use attack trees early because they are easier to explain. Most stakeholders can follow a tree quickly, even if they are not security specialists. That makes them ideal for design reviews, backlog grooming, and planning sessions where the goal is to align on the threat and the likely mitigations.
Use attack graphs when the team needs to reason about multi-step compromise. They work best when engineers, security analysts, and product owners need to understand how one compromise becomes another. That is especially important in infrastructure-heavy environments where the route matters as much as the initial weakness.
- Focus on one scenario at a time. Mixing several attacker goals in one session causes scope creep.
- Challenge assumptions aggressively. Ask what access the attacker really has and what controls really exist.
- Record action items live. A diagram without follow-up tasks is just a picture.
- Use business language when needed. Tie paths to data loss, downtime, fraud, or compliance exposure.
Workshops are most useful when they end with decisions. That can mean a backlog item, a control change, a detection task, or a follow-up review. The point is not to admire the model. The point is to use it to change the system.
Structured attacker analysis fits naturally with the practical skills taught in the Certified Ethical Hacker (C|EH™) curriculum, especially when the goal is to think like an attacker and translate that thinking into defense.
What Tools and Notation Should You Use?
The best tool is the one your team will actually maintain. Many teams start with a whiteboard, a diagramming app, or a shared document, then move to more formal representations once the method proves useful. Tool choice matters less than consistency and collaboration.
What matters most is notation. Your team should use clear visual conventions for goals, branches, dependencies, and transitions. If one person uses arrows to mean “causes” and another uses them to mean “depends on,” the model becomes hard to trust. Consistent notation avoids that problem.
Versioning also matters. Save the model in a place where changes can be tracked over time. When architecture changes, permissions are modified, or controls are added, you want to know what changed and why. That history makes the model more credible during audits, incident reviews, and design discussions.
For security teams that need a formal reference point, the NICE Workforce Framework and NIST publications help standardize language around security work and responsibilities. That kind of consistency is especially helpful when multiple teams contribute to the same threat model.
Practical tool selection criteria
- Supports collaboration across security, engineering, and operations.
- Makes relationships and dependencies easy to read.
- Allows version tracking or export for review.
- Works well for both simple trees and more complex graphs.
Key Takeaway
Attack trees are best for clear, readable attacker goals. Attack graphs are best for multi-step compromise and dependency-heavy environments. Both are most valuable when they lead to prioritized mitigations, not just diagrams.
Good scoping keeps the model useful. Good inputs keep it real. Good review discipline keeps it current.
Certified Ethical Hacker (CEH) v13
Learn essential ethical hacking skills to identify vulnerabilities, strengthen security measures, and protect organizations from cyber threats effectively
Get this course on Udemy at the lowest price →Conclusion
Attack trees and attack graphs are practical ways to turn vague security fears into structured analysis. Trees make the problem easier to understand. Graphs make the compromise path more realistic when the environment is complex.
The difference between a useful model and a decorative diagram comes down to scope, input quality, and follow-through. When teams define a clear goal, collect the right system information, and review the highest-risk paths carefully, the model becomes a decision tool instead of a theoretical exercise.
The strongest security outcomes come when the analysis drives action. That means choosing controls that break attack paths, assigning ownership, and revisiting the model as systems change. Teams that use structured attacker modeling this way are better prepared to defend applications, cloud services, and networks against evolving threats.
If you want to sharpen this skill in practice, the Certified Ethical Hacker (C|EH™) course context is a strong fit for learning how attackers think and how defenders can map that thinking into actionable security improvements.
CompTIA®, Cisco®, Microsoft®, AWS®, EC-Council®, ISC2®, ISACA®, and PMI® are trademarks of their respective owners.

