◇ OpenCyber Academy
Postgraduate · Chapter 1 · English

Chapter 1 — Advanced security decision-making

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Chapter 1 — Advanced security decision-making

Lesson map

Lesson 01 published. Map, example, EX001.

flowchart TD
  N0["Learning outcomes and connection"]
  N1["1.1 What changes at specialist level"]
  N2["1.2 Framing"]
  N3["1.3 Risk appetite into thresholds"]
  N4["1.4 Reducible and irreducible uncertainty"]
  N5["1.5 Decision quality versus outcome quality"]
  N6["1.6 Residual risk and acceptance"]
  N7["1.7 Revisit conditions"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Worked example"]
  EX --> Q["Exercise EX001"]

Logical drawing

flowchart LR
  N0["Learning outcomes and connection"]
  N1["1.1 What changes at specialist level"]
  N2["1.2 Framing"]
  N3["1.3 Risk appetite into thresholds"]
  N4["1.4 Reducible and irreducible uncertainty"]
  N5["1.5 Decision quality versus outcome quality"]
  N6["1.6 Residual risk and acceptance"]
  N7["1.7 Revisit conditions"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX001"]
[Learning outcomes and connection]
    |
    v
[1.1 What changes at specialist level]
    |
    v
[1.2 Framing]
    |
    v
[1.3 Risk appetite into thresholds]
    |
    v
[1.4 Reducible and irreducible uncertainty]
    |
    v
[1.5 Decision quality versus outcome quality]
    |
    v
[1.6 Residual risk and acceptance]
    |
    v
[1.7 Revisit conditions]
    |
    v
[Worked example] --> [Exercise EX001]

Learning outcomes and connection

After this chapter you can (1) frame an incident decision so that the options, the decision owner, the time horizon and the evaluation criteria are explicit; (2) translate the organization's risk appetite into thresholds that a commander can use at 03:00; (3) separate the uncertainty you can reduce from the uncertainty you must decide through; (4) write a decision record that a board, a regulator or an auditor can read a year later; and (5) define conditions that require the decision to be revisited. You arrive with a degree or equivalent experience and have handled incidents. This book does not teach you how to respond — it teaches you how to make, lead and defend organization-scale response choices as a specialist. Chapter 2 places these decisions inside an incident-command structure.

1.1 What changes at specialist level

Earlier courses ask "what is the right action?". At specialist level, the more frequent question is "who must decide what, with which information, by when, and how will the decision be judged?". Decisions now affect several business units, involve legal and regulatory exposure, and are taken before the facts are complete. Two failure modes dominate: decision avoidance (waiting for certainty that will not arrive while harm accumulates) and decision capture (the loudest stakeholder's preference becomes the decision without anyone owning the trade-off). Both are prevented by structure, not by courage.

1.2 Framing

A decision frame has six parts:

  1. Decision statement — one sentence: "Whether to take the customer-order API offline during the investigation of suspected data exposure."
  2. Owner — the single accountable person (and deputy) with authority for this decision.
  3. Options — at least three, including a partial or staged option and "continue as now". Binary framing hides the best answers.
  4. Criteria — what the organization cares about here: harm to people, legal exposure, service continuity, evidence, cost, reputation. Criteria come from policy and appetite, not from the moment.
  5. Horizon — when the decision must be made and how long it binds.
  6. Information plan — what can be learned before the deadline and what cannot.

Framing is the specialist's main lever. A badly framed decision ("shut it down or not?") forces a bad choice even with perfect analysis.

1.3 Risk appetite into thresholds

Risk appetite is the amount and type of risk an organization is willing to pursue or retain; risk tolerance is the acceptable variation around it. Boards express appetite in words ("very low appetite for loss of customer personal data; moderate appetite for short service interruptions outside peak periods"). Commanders need thresholds: "if there is a credible indication (≥ 'possible' on our scale) that customer personal data is being extracted, we accept interruption of up to 4 hours of non-peak service to stop it without further executive approval". Translating appetite into such pre-approved thresholds is preparation work; during an incident it removes hours of escalation. NIST's guidance on integrating cybersecurity with enterprise risk management (NIST IR 8286 series) discusses appetite and tolerance in this sense.

1.4 Reducible and irreducible uncertainty

Some uncertainty shrinks with effort before the deadline — whether a log shows outbound transfer, whether a backup is intact. Some does not — the attacker's next move, whether a regulator will view a choice as reasonable. Spend investigative effort on reducible uncertainty that could change the decision (the value of information, introduced at bachelor's level), and decide through the rest with explicit assumptions. A useful discipline is to write: "If we learn X by 14:00, we choose A; otherwise B."

In Calder's order-API case, that sentence became the O4 escalation trigger.

1.5 Decision quality versus outcome quality

A good decision can have a bad outcome and vice versa. Judge decisions by the information, options and reasoning available at the time, not by what happened. This is not an excuse: it is the only fair basis for learning, and it is how a well-prepared decision record protects the people who made the decision. Hindsight bias (Fischhoff, 1975) will otherwise rewrite history.

Calder's order-API record is built for this test: it lists the gateway logs reviewed up to 09:40, the partner list and the board's appetite statement v3, so a later reviewer can judge O4 on what was known at 10:25, not on what the investigation found afterwards.

1.6 Residual risk and acceptance

Every option leaves residual risk. The owner must accept it explicitly, in writing, with its expected duration and the conditions under which it will be re-examined. Unaccepted residual risk is a common finding in post-incident and audit reviews.

Calder's O4 record states its residual risk plainly: records retrieved with the key before rotation may already be exposed, and that question remains under investigation. Writing it down makes the group incident commander's acceptance visible and gives the privacy and legal workflow a clear starting point if overnight extraction is later confirmed. It also tells the board exactly which risk it carried during the holiday sale.

1.7 Revisit conditions

Decisions under uncertainty must state revisit triggers: new facts (evidence of exfiltration), elapsed time (every 6 hours), threshold breaches (customer complaints above a level), or stakeholder events (regulator inquiry). Triggers prevent both stubbornness and churn.

The order-API record shows all four kinds of trigger at work: any bulk retrieval after key rotation moves Calder to O3, taking the API offline, without a new meeting, because that move was pre-approved; confirmed overnight extraction starts the privacy and legal notification workflow; and the decision is re-examined every six hours whatever happens. A regulator inquiry or a partner complaint would be sensible additions.

1.8 Worked example and lab (synthetic): the order API during a critical period

Fictional. Calder Group, a multi-division retail and logistics company, detects at 09:40 on the Friday before a national holiday sale that an API key for the customer-order API was used from an unrecognized address overnight. Records retrievable with the key include names, addresses and order histories (no payment card data, which is tokenized by a processor). The sale generates about 40% of the quarter's online revenue in four days.

Options: O1 continue and monitor; O2 rotate the key and add an address allow-list (minutes of disruption for two partners); O3 take the API offline until the investigation concludes (stops partner fulfilment; estimated 12–48 hours); O4 rotate key, allow-list, and rate-limit bulk queries, with a pre-agreed escalation to O3 if any bulk retrieval is seen after rotation.

Appetite (board statement, fictional): very low for customer personal data loss; moderate for revenue loss under 2% of the quarter; very low for regulatory non-compliance.

Save as lab01.py. It scores options on criteria with weights derived from the appetite statement and tests whether the choice survives plausible changes in two uncertain inputs.

# Lab PG-01 - appetite-weighted option comparison with a robustness check (synthetic, stdlib only)
from itertools import product

WEIGHTS = {"data": 0.45, "revenue": 0.20, "regulatory": 0.25, "evidence": 0.10}
# score 0 (worst) .. 10 (best) per criterion; 'data' depends on p = P(ongoing extraction)
def scores(p, outage_hours):
    rev_o3 = max(0, 10 - outage_hours / 4)        # longer outage, worse revenue score
    return {
        "O1 monitor":            {"data": 10 - 10*p, "revenue": 10, "regulatory": 10 - 8*p, "evidence": 7},
        "O2 rotate+allowlist":   {"data": 10 - 3*p,  "revenue": 9,  "regulatory": 10 - 3*p, "evidence": 8},
        "O3 offline":            {"data": 10,        "revenue": rev_o3, "regulatory": 9,     "evidence": 9},
        "O4 rotate+limit+trigger": {"data": 10 - 1.5*p, "revenue": 8.5, "regulatory": 10 - 1.5*p, "evidence": 8},
    }
def best(p, h):
    s = scores(p, h)
    tot = {o: round(sum(WEIGHTS[c]*v for c, v in crit.items()), 2) for o, crit in s.items()}
    return max(tot, key=tot.get), tot

b, tot = best(0.3, 24)
print("base case p=0.3, outage 24h:", tot, "->", b)
wins = {}
for p, h in product((0.1, 0.3, 0.5, 0.7, 0.9), (12, 24, 48)):
    w, _ = best(p, h)
    wins.setdefault(w, []).append((p, h))
for w, cells in sorted(wins.items()):
    print(f"{w}: best in {len(cells)} of 15 scenarios", cells if len(cells) < 5 else "")

Expected output:

base case p=0.3, outage 24h: {'O1 monitor': 7.75, 'O2 rotate+allowlist': 8.97, 'O3 offline': 8.45, 'O4 rotate+limit+trigger': 9.19} -> O4 rotate+limit+trigger
O2 rotate+allowlist: best in 3 of 15 scenarios [(0.1, 12), (0.1, 24), (0.1, 48)]
O3 offline: best in 3 of 15 scenarios [(0.5, 12), (0.7, 12), (0.9, 12)]
O4 rotate+limit+trigger: best in 9 of 15 scenarios 

Interpretation: O4 is best in 9 of 15 combinations, including every combination with a 24- or 48-hour outage once extraction is at least moderately likely. Its neighbours tell you where the decision is fragile. If extraction is unlikely (p = 0.1), the lighter O2 edges ahead because O4's rate limit costs some revenue — the two are close and either is defensible. If extraction is likely and the outage would be short (12 hours, p ≥ 0.5), going offline wins. The scores are structured judgements, not measurements; the value of the exercise is that it shows which uncertainty matters (here, how likely ongoing extraction is, and how long O3 would really take) and designs the escalation trigger around it. That is why O4 includes a pre-approved move to O3 if bulk retrieval is seen after rotation, and why estimating O3's real outage length is worth an hour of the API owner's time.

Decision record (excerpt). Decision: O4. Owner: Group incident commander (deputy named). Time: 10:25. Information used: API gateway logs 00:00–09:40; partner list; board appetite statement v3. Key assumptions: payment data not reachable via this API (confirmed by architecture review 2025, re-checked today with the API owner); allow-list covers all legitimate partners (owner confirmation 10:15). Residual risk accepted: records retrieved before rotation may already be exposed; under investigation. Revisit triggers: any bulk retrieval after rotation (→ O3 immediately, pre-approved); confirmation of overnight extraction (→ privacy/legal notification workflow); every 6 hours.

1.9 Common errors and limits

Calder's order-API case shows the first and last errors side by side. Framing the choice as "keep the API up or take it down" would have left out O4, the staged option the lab found best in 9 of 15 combinations. And O4's weights came from the board's appetite statement, not from the analyst's own sense of which harm mattered more.

Exercises — chapter 1

Attempt each exercise before opening the worked results. Every case, organization, person, address and number in an exercise is synthetic unless a cited public source is named.

EX001 — Reframe. Inputs: an executive asks: "Do we pay the ransom or not?" Steps: write a full six-part frame with at least four options. Rubric: 3 = frame complete; options include restore-without-paying, partial restore with prioritized services, engage negotiator for time while restoring, and payment (subject to legal and sanctions review); owner single and named by role; 2 = binary options remain; 1 = no criteria; 0 = none.

EX002 — Appetite to threshold. Inputs: appetite statement "low appetite for disruption to warehouse operations; very low appetite for safety incidents". Steps: write two pre-approved thresholds a commander can act on without further approval. Rubric: 3 = observable trigger, permitted action, limit, notification duty; 2 = trigger vague; 1 = restates appetite; 0 = none.

EX003 — Run and stress Lab PG-01. Steps: run the lab; change the regulatory weight to 0.10 and data to 0.60; report the new pattern of wins and what it implies. Rubric: 3 = output reported and correctly interpreted (O4 remains robust or the pattern change is explained); 2 = output only; 1 = not run; 0 = none.

EX004 — Information plan. Steps: for the order-API case in this chapter's worked example list three pieces of reducible uncertainty with the decision each could change, and one irreducible uncertainty. Rubric: 3 = each reducible item tied to a specific option switch and deadline; irreducible example correct; 2 = not tied to options; 1 = list only; 0 = none.

EX005 — Revisit triggers. Steps: critique the revisit triggers in this chapter's order-API worked example and add two. Rubric: 3 = identifies gaps (no trigger for new key misuse elsewhere, partner complaints, regulator contact) with measurable triggers; 2 = adds triggers without critique; 1 = generic; 0 = none.

Chapter synthesis

Specialist decisions are won in framing: one owner, several options including staged ones, criteria from appetite, thresholds approved in advance, effort spent on uncertainty that can change the choice, robustness checks, accepted residual risk and explicit revisit triggers.

Continue studying — chapter 01 of 12

← Course home · Course chapter index · Chapter 02 →

Continue to the next authored lesson.