In an attack tree, how do node costs propagate through AND versus OR nodes to the root?
answer
- who gets to choose, attacker or defender
- conjunction versus alternative
- one operator adds, one selects
- the smallest alternative sets the parent
basics
~20 sIn an attack tree, an AND node costs the sum of its children, because the attacker must complete all of them. An OR node costs the minimum, because the attacker picks one. The root holds the cheapest complete attack.
solid answer
~50 sPropagation is bottom-up. For a cost-like attribute, an **AND** node takes the **sum** of its children (every subgoal has to be achieved, so every cost is paid) and an **OR** node takes the **minimum** (the attacker only needs one alternative and will choose the cheapest). Recurse to the top and the root carries the cost of the cheapest complete attack. The reason `min` appears at OR and not `max` is that the *attacker* chooses which alternative to use, never the defender, so the defender inherits whichever branch is easiest. Emptying a rented self-storage unit needs the gate PIN AND the unit padlock AND a camera blind window: those three add up, and calling the branch cheap because the padlock alone is cheap is the classic error, since a conjunction has no weakest link. Across alternatives, the opposite holds: the tree is only as strong as its cheapest complete path.
go deeper
Be ready to say which operator goes with which node type: all children required means add, any child sufficient means take the smallest. Knowing that the root ends up holding the cheapest whole attack is enough at this level.
Explain the mechanics on a small tree you draw yourself, bottom-up, and justify why OR takes a minimum rather than a maximum by pointing at who does the choosing. Expect to be handed three numbers and asked for the parent value.
Show where the arithmetic misleads in real trees: shared subgoals double-counted through an AND, fixed costs presented as per-attempt costs, and a root that only moves to the second-cheapest branch when you close the first. Report the path, not just the number.
Own the reporting convention. Decide whether your organisation reports a single root number, a named cheapest path with its runner-up, or nothing at all, and be able to argue why a bounded weakest-link claim is more defensible to a design review than a confident-looking aggregate score.
## What propagation is computing An attack tree states one attacker goal at the root and decomposes it downward. Every internal node is either an **AND** node — all children must be achieved for the parent to be achieved — or an **OR** node — any single child is sufficient. Leaves are concrete attacker actions. Once the leaves are annotated with an attribute (money, hours, required skill, chance of being noticed), *propagation* is the arithmetic that lifts those leaf annotations up to the root. For a cost-like attribute — one where lower is better for the attacker and where effort accumulates — the two rules are: - **AND node → sum the children.** The attacker has to pay for all of them. - **OR node → minimum of the children.** The attacker only pays for the one they pick, and a rational attacker picks the cheapest. Evaluate bottom-up and the number that lands at the root is the cost of the **cheapest complete attack**. ## Worked example: the AND rule A self-storage facility, adversary a walk-in local, asset the goods in a rented unit. To empty a unit unnoticed, all three of these are required: ``` AND Empty a unit without being stopped |-- Get through the perimeter gate (obtain a resident PIN) 150 |-- Defeat the unit padlock 40 +-- Act inside a camera blind window (learn patrol timing) 60 ``` (The figures are modeling estimates, not measurements.) The AND node carries **250**, not 40. The most common beginner error is to glance at the cheap padlock and call the whole branch cheap — importing the weakest-link intuition into a place it does not apply. A conjunction has no weakest link; it has a bill. ## Worked example: the OR rule A national tax-filing portal, goal "have a taxpayer's refund paid to an account I control". Three genuinely different routes sit under one OR, each with a different attacker position: - phish the taxpayer's portal credentials — an anonymous remote attacker; - compromise a third-party tax-preparer software vendor and ride its submission channel — a supply-chain position; - pay a contact-centre agent to change the bank details on one account — a bribed insider. If those cost roughly 30, 120,000 and 2,000, the OR node carries **30**. The expensive vendor branch contributes nothing to the node's value. That is not a bug in the notation: the attacker will simply not take it. ## Why minimum, and not maximum The direction of the operator encodes **who gets to choose**. At an OR node the attacker chooses, so the defender inherits the smallest value. You would take the maximum only if the defender could force which alternative the attacker was allowed to use — which never happens. This is the whole content of the *weakest-link reading*: a system's security guarantee is bounded by its cheapest complete path, not by its most impressive branch. A municipal e-voting pilot makes the point uncomfortable. Every cryptographic branch — forging ballot signatures, defeating the tally proof — costs a fortune. One branch is "spend twenty unobserved minutes with the tabulation laptop left in the hall overnight". The root takes the minimum, so the root is the laptop, and the asset at risk is audit truth. Every dollar spent on the expensive branches bought no guarantee at all until the cheap branch was closed. A corollary of `min`: closing the cheapest OR branch does not raise the root to the next-most-expensive branch you were proud of — it raises it to the **second cheapest**, which is often barely higher. ## Where the arithmetic quietly breaks - **Shared subgoals.** If the same leaf sits under two children of an AND, the structure is a graph, not a tree, and summing double-counts a one-off purchase. - **Non-independent children.** Buying the capability for one child can make its sibling nearly free; the sum then overstates. - **Fixed versus marginal cost.** A large one-off outlay amortised over many targets is not the same number as a per-attempt cost, and the tree records only one of them. - **Non-numeric annotations.** Ordinal labels do not add: summing "medium" and "low" at an AND node has no defined meaning. - **Estimate provenance.** `min` presumes the attacker enumerates the same alternatives you drew and values them the way you did. Branches you never drew are silently priced at infinity. ## Reading the result The root value is a **lower bound on attacker effort** — the strongest honest statement the tree supports. It is not a prediction of what will happen, and it is not a severity score. Reported to a design review, it is best phrased as a named path plus its cost, so the number stays attached to a concrete sequence of actions rather than floating free.
- If two branches of an AND node depend on the same purchased capability, what does summing get wrong?It double-counts. The sum rule assumes children are independent line items, but if one toolkit or one stolen credential satisfies two children, the attacker pays once. The structure is really a graph with a shared node, and the honest fix is to price the shared subgoal once and note the dependency, rather than letting the sum inflate the branch and hide a cheap path.
- Once every branch is costed, what does the root value let you say about the design?Only that no attack is cheaper than that number — a lower bound on effort. It is a weakest-link statement: on an e-voting result-integrity tree where every cryptographic branch is expensive and one branch is unsupervised physical access to the tabulation machine, the root is the physical branch. The expensive branches contribute nothing to the guarantee while a cheaper complete path exists.
- What happens to the root if you close the cheapest OR branch?It rises to the second-cheapest branch, not to the level of the branch you were most confident in. Because OR takes a minimum, the improvement is bounded by whatever the next alternative costs, which is frequently only marginally more. That is why the root should always be reported with the runner-up path beside it.
Two locks on the same door add up: you pick both. Two different doors into the same room do not add up: you walk through whichever is easier and the other one never costs you anything.
saying these in an interview costs you the question
- Taking the minimum at an AND node
- Summing the children of an OR node
- Calling an AND branch cheap because one child is cheap
- Assuming the defender chooses which alternative is used
- Treating the root value as a prediction of the attack
- Adding costs of children that share one purchase