Two attack-tree branches reach the same HR records — one bulk export, one 400 single lookups. Which annotations separate them?
answer
- both branches reach the goal
- the insider buys nothing, breaches nothing
- one attribute is spent to buy another
- logged is not the same as noticed
- detectability describes your controls, not the attacker
basics
~20 sDetectability and elapsed time. For a caseworker with legitimate access, cost, skill, equipment and required access are near identical on both branches; the slow branch trades months of wall-clock time for a much lower chance of being noticed.
solid answer
~50 sAnnotate both and the discriminating attributes fall out. The attacker is an insider with a legitimate caseload, so monetary cost, skill, equipment and required access are effectively the same on each branch — nothing needs to be bought or breached. What differs is detectability and elapsed time: a single bulk export is minutes of work and stands out as an event, while four hundred lookups spread over months look like the job the person is paid to do. That is the trade the branch is making, and writing it down is the point of annotating. Detectability is the awkward one, because unlike the others it is a property of my controls, not of the attacker — so its value is only true for today's logging and must be re-checked when that changes. The comparison also tells me the control to argue for: volume thresholds alone only push the attacker onto the slow branch.
go deeper
Recognise that two branches can reach the same goal at the same cash cost, and that time and chance of being noticed are recorded separately for exactly that reason.
Explain why an insider branch flattens the money, skill, equipment and access columns, and what the slow branch is trading away to gain. Be clear that logged and noticed are different things.
Show that detectability is a property of your own controls, name who has to supply it, and read the annotated pair as an argument about which control actually helps rather than which one is easiest.
Own the consequence: decide whether a control that only touches the loud branch is worth funding, and set the expectation that detectability values carry a date and get revisited when monitoring changes.
## The setup An HR case-management tool holds employee personal data — grievances, medical accommodations, salary history. The attacker position is not an outsider: it is a caseworker with a legitimate caseload and a genuine business reason to open records. The goal node is "obtain the personnel files of a large group of employees". Two child branches reach it: 1. **Bulk export** — use the reporting or export feature once, take a file of several hundred records. 2. **Slow accumulation** — open four hundred records one at a time across weeks or months, each one individually unremarkable. Both reach the goal. Annotating them is what makes the difference visible. ## Annotating both branches ``` GOAL: obtain personnel files of ~400 employees OR-- bulk export money: none skill: low equipment: none required access: caseworker role with export permission elapsed time: minutes detectability: high (single large export is a discrete, loggable event) OR-- 400 individual lookups money: none skill: low equipment: none required access: caseworker role, ordinary read elapsed time: weeks to months detectability: low (each lookup resembles normal casework) ``` Four attributes are identical or nearly so. The insider buys nothing, needs no expertise, and already holds the access — which is exactly why an outsider-shaped cost model would rate this whole subtree as trivially cheap and stop there. The information is entirely in the two attributes that differ. ## What the difference means **Elapsed time is the currency the slow branch spends.** It is not a cost in the ordinary sense; it is what the attacker gives up to buy stealth. Whether that trade is acceptable to the attacker depends on their own constraints — an employee who has already resigned has weeks, not months — which is why elapsed time on a node should be read against a window, not in isolation. **Detectability is what the slow branch buys.** Note carefully what the attribute records: not whether an event is logged, but whether it is *distinguishable* from legitimate activity. Four hundred lookups are all logged. Every one of them looks like work. A branch can be perfectly recorded and still have low detectability, and conflating logging with detection is the most common error in filling this column in. ## Detectability is a defender-side attribute This is the subtlety worth raising in an interview. Money, skill, equipment and required access are properties of the attacker and the world. Detectability is a property of **my** system: my logging, my retention, my thresholds, whether anyone reads the output. Three consequences follow: - The value is only valid for the current control set. It changes when logging changes, and it should carry a date or a reference to the control it assumes. - It cannot be estimated by the modelling session alone. Someone who knows what is actually monitored has to supply it, otherwise the column is aspiration. - Detectability changes only *whether you find out*; it does not change whether the attacker succeeds. The bulk-export branch with high detectability still hands over the data — detection buys response time, not prevention. Recording a branch as "high detectability" and treating it as mitigated is a real and frequent misreading. ## What the comparison is for The annotated pair immediately says something about controls. A volume threshold on exports raises the bulk branch's detectability further and does nothing to the slow branch — a rational insider simply takes the other route. Something that addresses the slow branch is different in kind: a per-user baseline over time, mandatory case linkage on each record open, or periodic review of access breadth rather than access volume. Whether that is worth building is a separate judgment; what the annotation gives you is the honest statement that the cheap control does not touch the branch a patient attacker would choose. ## Filling the column honestly Use a short scale — say negligible / low / moderate / high — with anchors that describe the defender's position: "would appear in an existing alert", "visible in logs if someone specifically looked", "indistinguishable from normal activity". Mark unknown where nobody in the room actually knows what is monitored, and treat that as a finding in its own right, since it is common for a system to be assumed instrumented in a way it is not.
- Why is detectability an awkward attribute to sit alongside cost and skill?Because it is not a property of the attacker at all — it describes my logging, thresholds and whether anyone reads the output. That means the value expires when the controls change, it must be supplied by someone who knows what is actually monitored, and it never reduces the attacker's success on that branch. It buys response time, not prevention, and treating a high-detectability branch as mitigated is a misreading.
- The team adds an export volume threshold. What does that do to this pair of branches?It raises the bulk branch's detectability and leaves the slow branch untouched, so a patient insider just takes the other route. That is worth saying out loud when the control is proposed: it is a real improvement against an impatient attacker and no improvement at all against the branch the annotations say is quieter. Addressing the slow branch needs something different in kind, such as per-user access breadth review.
- How would you assign the detectability values in the first place?Not from the modelling session's intuition. Ask the people who own the logging what exists today, whether it is retained long enough to cover a months-long branch, and whether anything fires on it. Use a short scale with defender-side anchors — would trip an existing alert, visible only if someone looked, indistinguishable from normal work — and mark unknown when nobody in the room actually knows, which is itself a finding.
saying these in an interview costs you the question
- Says both branches are equal because both are logged
- Rates the slow branch as high cost because it is tedious
- Treats a high-detectability branch as already mitigated
- Assumes an insider branch needs no annotation at all
- Fills the detectability column without asking what is monitored
- Proposes a volume threshold as covering both branches