Attack Tree Analysis Template
Attack tree for one attacker goal: AND/OR tree as list and Mermaid, leaf cost/skill/likelihood, path analysis, countermeasures
Cara menggunakan: Use when one high-value attacker goal needs deeper analysis than a STRIDE table. Fix the goal and attacker profile first, build the tree as a nested list, then rate leaves only and propagate values. The main pitfall is stopping after one countermeasure without re-running the path analysis.
Pratinjau
Attack Tree Analysis: [Attacker goal against system name]
Attack tree analysis following the method popularised by Bruce Schneier ("Attack Trees", Dr. Dobb's Journal, December 1999): one attacker goal as the root, sub-goals refined through AND and OR nodes down to concrete leaf attacks, attributes on each leaf (cost, skill, likelihood), analysis of the cheapest and most likely paths, and countermeasures mapped to the nodes they cut. Replace every
[bracketed]value and every row marked Example. The worked example targets the administrator account of a fictional SaaS billing console.
| Field | Value |
|---|---|
| Document ID | [AT-BILLING-001] |
| System | [Billing console, release 3.2] |
| Attacker goal | [Take over a billing administrator account] |
| Attacker profile | [External, financially motivated, moderate skill, budget up to USD 10,000] |
| Version | [0.1] |
| Status | [Draft / In review / Approved] |
| Owner | [@security-engineer] |
| Reviewers | [@tech-lead], [@identity-team] |
| Related threat model | [TM-BILLING-002] |
| Last updated | YYYY-MM-DD |
1. Goal and scope
Root goal: Example: Obtain an authenticated session with billing administrator rights in the production billing console.
| Item | Value |
|---|---|
| Asset at stake | Example: Ability to issue refunds and change payout bank accounts |
| Impact if achieved | Example: Direct financial loss up to USD 250,000 per incident before detection |
| In scope | Web console, identity provider integration, support desk processes, administrator endpoints |
| Out of scope | Physical attacks on data centres; compromise of the cloud provider |
| Assumptions | MFA is enforced for administrators; console reachable from the internet |
2. Attacker profile
| Attribute | Value used in ratings |
|---|---|
| Type | Example: External criminal group |
| Skill | Moderate: uses public tools and phishing kits; no novel exploits |
| Budget | Up to USD 10,000 per target |
| Time | Weeks |
| Access | No insider access at the start |
| Risk tolerance | Avoids actions likely to be detected before payout |
3. Attack tree
The tree below refines the root goal; [OR] means any child achieves
the parent and [AND] means all children are needed.
3.1 Tree as a nested list
- 0 Take over a billing administrator account [OR]
- 1 Steal credentials and bypass MFA [AND]
- 1.1 Obtain password [OR]
- 1.1.1 Phish the administrator with a fake login page (leaf)
- 1.1.2 Reuse a password from a third-party breach (leaf)
- 1.2 Defeat MFA [OR]
- 1.2.1 Adversary-in-the-middle proxy relays the one-time code (leaf)
- 1.2.2 MFA fatigue: send repeated push prompts until approved (leaf)
- 1.1 Obtain password [OR]
- 2 Abuse account recovery [AND]
- 2.1 Gather personal details of the administrator from social media (leaf)
- 2.2 Persuade the support desk to reset MFA (leaf)
- 3 Hijack an existing session [OR]
- 3.1 Steal a session cookie with malware on the administrator's laptop (leaf)
- 3.2 Exploit stored XSS in the console to exfiltrate the session (leaf)
- 4 Escalate from a low-privilege account [AND]
- 4.1 Obtain any customer-support account (leaf)
- 4.2 Exploit a broken authorization check to assign the admin role (leaf)
- 1 Steal credentials and bypass MFA [AND]
3.2 Tree as a diagram
The diagram shows the same structure; AND gates are drawn as hexagons and OR gates as rounded boxes.
4. Leaf attributes
Each leaf is rated for cost to the attacker (USD), skill (1 low to 5 expert), likelihood of success per attempt (0 to 1) and detectability (Low, Medium, High) with current controls.
| Node | Leaf attack | Cost (USD) | Skill (1-5) | Likelihood | Detectability | Source of estimate |
|---|---|---|---|---|---|---|
| 1.1.1 | Phishing page | Example: 500 | 2 | 0.30 | Medium | Internal phishing simulation: 30% click rate |
| 1.1.2 | Breached password reuse | 100 | 1 | 0.05 | Low | Password screening already blocks known breached passwords |
| 1.2.1 | AitM proxy relays code | 1,500 | 3 | 0.60 | Low | Public phishing kits; TOTP is relayable |
| 1.2.2 | MFA fatigue | 0 | 1 | 0.10 | High | Number matching enabled in 2025 |
| 2.1 | OSINT on admin | 200 | 1 | 0.90 | Low | Public profiles |
| 2.2 | Social-engineer support desk | 1,000 | 3 | 0.15 | Medium | Two of 20 red-team calls succeeded |
| 3.1 | Cookie-stealing malware | 3,000 | 3 | 0.10 | Medium | EDR on managed laptops |
| 3.2 | Stored XSS | 5,000 | 4 | 0.05 | Medium | CSP in place; last pentest found none |
| 4.1 | Obtain support account | 800 | 2 | 0.25 | Medium | Support staff not on phishing-resistant MFA |
| 4.2 | Broken authorization | 4,000 | 4 | 0.10 | Low | Role endpoint lacks server-side check (finding SR-014) |
| [n.n] | [Leaf] | [Cost] | [1-5] | [0-1] | [L/M/H] | [Source] |
5. Path analysis
Values propagate upwards with these rules:
where is cost, likelihood and required skill.
5.1 Computed node values
| Node | Gate | Cost (USD) | Skill | Likelihood | Cheapest child |
|---|---|---|---|---|---|
| 1.1 | OR | 100 | 1 by cost, 2 by likelihood | 0.30 | Example: 1.1.2 by cost, 1.1.1 by likelihood |
| 1.2 | OR | 0 | 1 by cost, 3 by likelihood | 0.60 | 1.2.2 by cost, 1.2.1 by likelihood |
| 1 | AND | 2,000 (1.1.1 + 1.2.1) | 3 | 0.18 | Most likely combination |
| 2 | AND | 1,200 | 3 | 0.135 | |
| 3 | OR | 3,000 | 3 | 0.10 | 3.1 |
| 4 | AND | 4,800 | 4 | 0.025 | |
| 0 | OR | 1,200 by cost; path 1 by likelihood | 3 | 0.18 | Path 1 |
5.2 Critical paths
| Rank | Path | Cost | Likelihood | Why it matters |
|---|---|---|---|---|
| 1 | Example: 1.1.1 phishing AND 1.2.1 AitM proxy | 2,000 | 0.18 | Highest likelihood; low detectability of the proxy |
| 2 | 2.1 OSINT AND 2.2 support-desk reset | 1,200 | 0.135 | Cheapest path; bypasses MFA entirely |
| 3 | 3.1 session theft by malware | 3,000 | 0.10 | Independent of authentication controls |
| [n] | [Path] | [Cost] | [P] | [Reason] |
Expected loss for the top path, using the impact in section 1: per targeted campaign.
6. Countermeasures
| ID | Countermeasure | Nodes affected | New rating | Cost to defender | Owner | Status |
|---|---|---|---|---|---|---|
| CM-01 | Example: Phishing-resistant MFA (FIDO2 security keys) for all administrators | 1.2.1, 1.2.2 | 1.2.1 likelihood 0.60 to 0.01 | USD 3,000 keys + 5 days | [@identity-team] | [Planned] |
| CM-02 | Support desk may not reset administrator MFA; reset requires in-person or manager-verified video check | 2.2 | Likelihood 0.15 to 0.02 | Process change | [@support-lead] | [Planned] |
| CM-03 | Bind admin sessions to device (token binding or short-lived cookies with re-authentication for payouts) | 3.1, 3.2 | Impact reduced: payouts need fresh key touch | 10 days | [@platform] | [Open] |
| CM-04 | Fix server-side role assignment check (SR-014) | 4.2 | Likelihood 0.10 to 0.01 | 2 days | [@billing-team] | [In progress] |
| CM-05 | Alert on new device login plus payout account change within 24 hours | All paths | Detectability raised to High | 3 days | [@secops] | [Open] |
| [CM-nn] | [Countermeasure] | [Nodes] | [Rating change] | [Cost] | [@name] | [Status] |
6.1 Re-analysis after countermeasures
| Path | Likelihood before | Likelihood after | Cost before | Cost after |
|---|---|---|---|---|
| 1 Credentials + MFA bypass | 0.18 | Example: 0.003 | 2,000 | 2,000 |
| 2 Account recovery | 0.135 | 0.018 | 1,200 | 1,200 |
| 3 Session hijack | 0.10 | 0.10 (impact reduced by CM-03) | 3,000 | 3,000 |
| 4 Privilege escalation | 0.025 | 0.0025 | 4,800 | 4,800 |
Example: After CM-01 to CM-04, session hijack (path 3) becomes the most likely path; CM-03 and CM-05 limit what it can achieve.
7. Conclusions and actions
Example: The cheapest and most likely routes to administrator takeover go around MFA rather than through it: relayable one-time codes and support-desk resets. Phishing-resistant keys and a strict reset process remove both. Session theft then becomes the leading path and is addressed by device binding and step-up authentication for payouts.
| Action | Owner | Due |
|---|---|---|
| Implement CM-01 and CM-02 before next quarterly access review | [@name] | YYYY-MM-DD |
| Re-run this analysis after CM-03 is deployed | [@name] | YYYY-MM-DD |
| [Action] | [@name] | YYYY-MM-DD |
8. References
| Reference | Use |
|---|---|
| Schneier, B. "Attack Trees", Dr. Dobb's Journal, December 1999 | Method: goal decomposition with AND/OR nodes and leaf attributes |
| [Internal phishing simulation report] | Likelihood of 1.1.1 |
| [Red-team report] | Likelihood of 2.2 |
| [Threat model TM-BILLING-002] | Source threats |
Standard and licence note
Based on the attack tree method described by Bruce Schneier ("Attack Trees", Dr. Dobb's Journal, 1999) and common security engineering practice for AND/OR decomposition and attribute propagation. This template is original text written for this collection and reproduces no text from that article. Template licence: MIT.
Templat terkait
Migration Plan Template
System or data migration: strategy, phases, data mapping, reconciliation, cutover runbook, rollback, decommissioning
Perangkat Lunak & RekayasaIncident Postmortem Template
Blameless incident postmortem: impact and error budget consumed, UTC timeline, root cause, 5 Whys, action items, lessons
Perangkat Lunak & RekayasaPrivacy Threat Model Template (LINDDUN)
Privacy threat model by LINDDUN category: DFD with trust boundaries, data inventory, elicitation matrix, register, PETs, DPIA link