learn-cyber-security-with-phoebe / Leader session 2 of 6
Learn Cyber Security with Phoebe · Leader session 2 of 6

Six functions, one estate

Every security budget request arrives wearing a framework. The one most of them wear is the NIST Cybersecurity Framework, and version 2.0 of it has six functions with plain names: Govern, Identify, Protect, Detect, Respond, Recover. The names are useful precisely because they are plain. Put them next to one warehouse and each becomes a question a leader can ask on a Tuesday: who owns this table, what have we listed, what have we closed, what would we see, what happens in the first hour, and what survives if the admin login is lost. Ironwood could answer one of the six. By the end of the hour you will know which of yours have money, which have words, and which have neither.

🟢 Foundational Data and technology leaders 45 min
0-3 · Welcome 3-24 · NIST CSF 2.0 on a data estate 24-40 · Build-along: map your estate to six functions 40-45 · Q&A
Part 0

Where tonight sits in the leader track

Six sessions, 45 minutes each, no code and no SQL. Session 1 counted the paths: nine routes to Ironwood's customers table before any control, all unseen, backups reachable from the admin login. Tonight takes the most widely used security framework and lands it on that same estate, so that the six words on every budget slide turn back into the things they stand for. Session 3 walks the kill chain through a data stack, session 4 is backups as attack surface, session 5 is detecting what cannot be prevented, and session 6 is the first hour and the report. Ironwood, the fictional mid-size retailer with one warehouse, one customers table and one set of backups, is the estate throughout.

Live = presented in the 45 minutes Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with tonight. The six functions of NIST CSF 2.0, each translated into one concrete thing on a data estate, with the date the framework was published so nobody can wave an older version at you. A one-page map of your own estate marked funded, partly funded or absent per function. And the argument, in numbers from Ironwood, for why the two functions that usually get nothing are the two that move the numbers a control count cannot show.

LiveWhy a framework at all, and why this one3 min▶

A framework is a shared vocabulary between the people who run the estate and the people who fund it. Without one, every conversation about security starts from a vendor's product categories, and vendors sell prevention. With one, the same conversation has six fixed headings, and the two headings nobody is selling anything under still have to be filled in.

The NIST Cybersecurity Framework is the one most boards, auditors and insurers already recognise, which is the whole reason to use it: the value of a vocabulary is who else speaks it. Version 2.0 was published on 26 February 2024 and has six Core Functions. Version 1.1 had five. The sixth, Govern, was added because two decades of incidents kept showing the same pattern: the technical controls existed, and nobody owned them.

Real world

Ironwood's security budget slide had five coloured boxes, one per function of the older framework, each with a percentage complete. Protect read 78 percent. Detect read 60 percent, and the 60 was a log that existed and that nobody read. Recover read 100 percent because nightly backups ran. The slide was accurate and the estate had nine open paths, zero of them seen, zero tables recoverable. Percentages complete measure effort. Functions are supposed to measure outcomes.

Self-studySix words, and the question each one asks of a warehouse3 min▶
  • Govern - who owns the customers table, who may approve an exception to a rule, and who decides what gets funded.
  • Identify - what exists. Every account, key, bucket, export and runner that can reach the table, and every copy of the table that lives outside the warehouse.
  • Protect - what has been closed. The controls that remove a path: MFA, key rotation, private buckets, pinned dependencies, least privilege.
  • Detect - what would be seen. The query log and the egress alert, and the person who reads them.
  • Respond - what happens in the first hour after something is seen: which credential is revoked, what is isolated, who is told.
  • Recover - what survives an attacker who reaches the admin login. A copy of the data that login cannot delete, and proof that it restores.
Part 1 · covers the six functions of NIST CSF 2.0 and what each one means on a data estate

Six functions, published 26 February 2024

12 min live

NIST CSF 2.0 defines six Core Functions. Each has a two-letter code and a one-sentence definition, quoted below as the framework states them. The definitions are written for any organisation; the work is translating each into the one thing it means for a warehouse with a customers table in it. Govern wraps the other five, which is how the framework draws it and how it behaves in practice.

GOVERN (GV) who owns the customers table, who approves an exception, what gets funded IDENTIFY (ID) the inventory: every account, key, bucket, export and runner, and every copy of the table PROTECT (PR) MFA on every login, rotated keys, private buckets, pinned packages, least privilege DETECT (DE) query logging on the warehouse, egress alerting, and a person who reads the log RESPOND (RS) the first hour: revoke the key, contain the login, decide who is told, all decided before RECOVER (RC) a backup the admin login cannot delete, restore-tested before the day it is needed Govern is new in 2.0. The other five kept failing for organisational reasons, not technical ones.
🔍 Click to zoom - six functions of NIST CSF 2.0, Govern wrapping the other five, each landed on a data estate.
LiveGovern: who owns the table, who approves the exception3 min▶

GOVERN (GV) - the organization's cybersecurity risk management strategy, expectations and policy are established, communicated and monitored. On a data estate this is three names. Who owns the customers table, meaning who answers for it when it is read by the wrong person. Who may approve an exception to a rule, such as granting an analyst the admin role to unblock a Friday deployment, and for how long. And who decides which of the other five functions gets money this year.

Govern is the function that was added in version 2.0. In the 1.1 framework governance sat as a category inside Identify, and in practice it was treated as paperwork. The reason it was promoted is visible in almost every post-incident report: the technical control existed and was switched off, bypassed or never finished, because no named person owned the outcome. Ironwood's Friday admin grant was a Protect failure on the day and a Govern failure for the two years it stayed in place. Nobody had been given the job of taking grants back.

Real world

Asked who owned the customers table, Ironwood produced three answers: the platform team, because they ran the warehouse; marketing, because they used it most; and the data protection officer, because the policy named them. Three owners is zero owners. The export bucket that copied the table nightly had been created by none of the three and was known to none of them.

LiveIdentify: the inventory, including the copies2 min▶

IDENTIFY (ID) - the organization's current cybersecurity risks are understood. On a data estate this is the inventory the builder track draws in its first session: every account, key, bucket, export and runner that can reach the crown-jewel table, written as nodes and edges, and every copy of that table living outside the warehouse. Understanding the risk means being able to count the paths, which means having listed the things the paths run through.

Identify is where a checklist and a graph part ways. Ironwood's hardening checklist was 31 of 40 items green, and the door that mattered, a service key in a public repository two years old and still valid, was on no line of it. An inventory that skips the credential lane, or the storage lane where the export bucket lives, produces a confident number that is wrong. Nine paths is the honest count for Ironwood, and it took one afternoon of walking five lanes to reach it.

LiveProtect: the controls that remove a path2 min▶

PROTECT (PR) - safeguards to manage the organization's cybersecurity risks are used. On a data estate, Protect is the short list of controls that each remove at least one path from the graph. MFA on every human login takes Ironwood from nine paths to six. Rotating service keys and expiring the old ones, six to five. Making the export bucket private, five to four. Pinning and verifying every dependency the pipelines run, four to three. Least privilege on the analyst role, at the end, three to one.

Protect is the function everyone recognises, because it is the one that maps onto products and the one the questionnaire asks about. It is also the function that runs out: after all of it, one path remains, the support agent's legitimate read of a customer record, and no Protect control can remove it without stopping the work.

LiveDetect: the log, and the person who reads it2 min▶

DETECT (DE) - possible cybersecurity attacks and compromises are found and analyzed. On a data estate this is two logs and one person. Query logging on the warehouse records every read of the customers table, whoever made it. Egress alerting watches the point where data leaves, so that a copy to an external stage raises a flag. The person is the part most estates skip: a log nobody reads detects nothing, and Ironwood's audit log had been switched on for four years and opened twice.

Detect changes a number that Protect cannot touch. With every Protect control on except least privilege, Ironwood has three paths, three of them unseen. Query logging and egress alerting leave the count at three and take unseen from three to zero. The path count did not move, which is exactly why this rung is so often skipped, and exactly why session 5 exists.

Self-studyRespond: the first hour, decided in advance2 min▶

RESPOND (RS) - actions regarding a detected cybersecurity incident are taken. On a data estate the first hour is a short list of decisions that are far easier to make before the hour than during it. Which credential is revoked first, and what breaks when it is. Whether the warehouse is taken offline, and who may say so. Which log is preserved before anyone touches anything. Who inside the company is told, and who outside.

The last decision, who outside must be notified and by when, is a matter of law and regulation and belongs to the data-governance course, where breach notification duties are taught properly. Session 6 covers the technical containment decisions and the report that follows. What Respond asks of a leader tonight is one thing: that the list exists, on paper, with names, before it is needed.

Self-studyRecover: what survives an attacker with the admin login2 min▶

RECOVER (RC) - assets and operations affected by a cybersecurity incident are restored. On a data estate this is one question with an uncomfortable usual answer: can the login that reads the warehouse also delete the backups? Warehouse time travel and snapshots are kept by the account that owns them, so an attacker holding the admin login purges them along with the tables. They are a convenience against mistakes, not a backup against the account being taken.

The professional norm is a copy the admin login cannot delete, stored where the warehouse's own credentials do not reach, immutable for a fixed retention, and restored from on a schedule to prove it works. At Ironwood that control takes recoverable tables from 0 of 12 to 12 of 12. It moves nothing on the path count. Session 4 is about this function alone.

Part 2 · covers how the budget lands across the six functions, and what the bench says about it

Why three of the six get all the money, and which two get none

9 min live

Ask any mid-size company where its security spend went and the answer is Protect, with some Identify and some Respond in the form of an incident retainer. Detect and Recover are the functions most often reported as complete and least often funded, because the thing they change is not the number on the slide. Ironwood's attack-path bench puts figures on that.

PROTECT · gets the budget paths to the customers table 9 to 3 MFA, rotated keys, private bucket, pinned dependencies least privilege at the end: 3 to 1 a control count shows this move, so it gets funded DETECT · usually starves undetected paths 3 to 0 query logging on the warehouse and egress alerting paths stay at 3. Slide unchanged. skip it and the finished design ends at 1 path, unseen RECOVER · usually starves recoverable tables of 12 0 to 12 immutable, restore-tested backups the admin login cannot delete paths stay at 3. Slide unchanged. nightly snapshots read as done, and go with the account Two of the three numbers move while the path count stands still. A control count cannot show either.
🔍 Click to zoom - three functions, three bench numbers; only the first is visible on a list of controls.
LiveProtect absorbs the budget because it is the function that can be bought2 min▶

Three things pull spend toward Protect. It is the function vendors sell, so every proposal that arrives is a Protect proposal. It is the function the questionnaire asks about, so it is the one that produces a defensible sentence. And it is the function whose progress a control count can show: MFA on, keys rotated, bucket private, four items green. Ironwood spent on Protect for three years and the spend was not wasted; it took nine paths to three.

The problem is not that Protect is funded. It is that the count of controls switched on is taken as the measure of the whole programme, and two of the six functions move nothing on that count no matter how well they are done.

LiveDetect: the rung where the headline number does not move2 min▶

Read Ironwood's bench from the top. Nothing on: nine paths, nine unseen. MFA: six and six. Key rotation: five and five. Private bucket: four and four. Pinned dependencies: three and three. Then query logging and egress alerting: three paths, and zero unseen. The path count did not change by one. On a slide that reports controls or paths, that rung is invisible, which is why in most estates it never gets built.

What it changed is the only thing that matters about the three paths that remain. Before it, an attacker completing any of them finishes and nobody knows. After it, every one of them crosses a logged edge. Detect is the function that turns a residual path from a silent loss into an incident someone can respond to, and it is the only function that can do anything at all about the two legitimate-read paths that Protect can never close.

LiveRecover: from 0 of 12 tables to 12 of 12, with paths unchanged2 min▶

The next rung on the bench is immutable, restore-tested backups. Paths stay at three, unseen stays at zero, and recoverable tables go from 0 of 12 to 12 of 12. Again nothing visible on a control-count slide, and again the only number that would matter on a particular Monday morning.

Recover starves for a different reason than Detect. Detect is skipped because it looks like nothing happened. Recover is skipped because it looks like it is already done: nightly snapshots run, the backup line on the questionnaire says yes, and nobody asks whether the same login that reads the warehouse can delete the copy. At Ironwood it could. The recoverable count was zero for the whole time the backup box was ticked.

Real world

Ironwood's restore drill, when it was finally run, took four hours longer than the recovery-time objective in the policy, because nobody had restored the largest table since the warehouse was migrated and the storage tier it sat on had changed. That gap had been invisible for two years, under a green box, because a backup that has not been restored from is a hypothesis.

Self-studyAll prevention, no detection: one path, unseen2 min▶

The bench has a row for an estate that funds Protect and Recover completely and Detect not at all. Every prevention control on, immutable backups on, no logging: one path to the customers table, one unseen, 12 of 12 recoverable. The one path is the support agent's legitimate read, the path no prevention control can remove. Without Detect it is also the path nobody would ever see used.

That row is the argument in a single line. Prevention runs out before the paths do, and the path it leaves behind is exactly the one that only a log can defend. An estate that spends everything on Protect has, at its very best, one door it cannot close and has chosen not to watch.

Self-studyGovern is the function that decides whether the other five get funded at all2 min▶

None of the above is a technical finding. Ironwood's platform team knew the audit log was unread and knew the snapshots went with the account. What was missing was a named person with the authority to say that the next pound goes to Detect and Recover rather than to the fifth Protect product, and a measure that would show the board why. That is Govern.

The practical form of Govern on a data estate is short: an owner per crown-jewel table, an approver for every exception with an expiry date on the exception, and a reporting line that carries three numbers rather than a control count. Paths remaining, paths unseen, tables recoverable. Once those three numbers are what the board sees, Detect and Recover fund themselves, because they are the only functions that move two of them.

Build-along

Map your estate to six functions

★ 16 min · everyone builds

One sheet, six rows, no tools. If you have no estate to hand, use Ironwood as it stood before any control: nine paths, nine unseen, zero recoverable, three people who each thought someone else owned the table. The output is a page you could put in front of whoever holds the budget.

Write one sentence per function, about your estate, in concrete nouns. Not "we have governance" but "the customers table is owned by the head of platform, who approves exceptions for at most 30 days". If a sentence cannot name a person, a control or a log, write "none" and move on. "None" is a finding, not a failure of the exercise.

Mark each row funded, partly funded or absent. Funded means money and a named owner this year. Partly funded means one of the two. Absent means the sentence said none. Most estates land Protect funded, Identify and Respond partly, Detect and Recover absent, Govern unmarked because nobody thought of it as a thing that could be funded.

Put the three bench numbers next to Protect, Detect and Recover. Paths remaining next to Protect. Paths unseen next to Detect. Tables recoverable if the admin login is lost next to Recover. Use your session 1 count, or Ironwood's nine, nine and zero if you are working from the example. A guess marked as a guess is fine.

Find the function with the biggest gap between what its sentence says and what exists. Usually it is Recover, where the sentence says "backed up nightly" and the number says zero recoverable. Sometimes Detect, where the sentence says "access is logged" and the log has never been opened. That gap is the first conversation to have.

Put a name against Govern. One person who owns the crown-jewel table and one who approves exceptions, even if tonight they are the same person and it is you. Three owners is zero owners; one owner is a function.

✗ Six sentences that name controls and say nothing Govern: we have a security policy. Identify: we did a risk assessment. Protect: we have a firewall and role-based access. Detect: access is logged. Respond: we have an incident response plan. Recover: data is backed up nightly.
★ The same estate, six sentences that carry a number or a name Govern: no single owner of the customers table; exceptions approved by whoever is asked. Absent. Identify: five lanes walked once; one export bucket found that nobody knew about. Partly funded. Protect: firewall and roles, no MFA, keys never rotated. Paths: 9. Funded. Detect: audit log on since 2022, opened twice. Paths unseen: 9. Absent. Respond: a plan from 2021 with two names that have left. Partly funded. Recover: nightly snapshots, deletable by the admin login. Recoverable: 0 of 12. Absent.

Read the six sentences aloud to the person who holds the budget. The second version does the arguing by itself. Nobody who hears "recoverable: 0 of 12" under a green backup box asks for another prevention product first.

Homework

Before session 3

30 min
  1. Take your six sentences to the person who runs the warehouse and ask them to correct each one. Keep both versions. Where the two disagree is where the estate and the slide have parted company.
  2. Find the most recent security budget or roadmap and sort every line item into one of the six functions. Count the lines and the money under each. Write the two counts for Detect and Recover on the same page as their bench numbers.
  3. Ask, in writing, whether the login that reads the warehouse can delete the backups. If the answer contains the words snapshot or time travel, the answer is yes, and the Recover row is absent regardless of what the questionnaire says.
  4. Ask who last opened the audit log, and when. The date is the Detect row.
Check yourself

Three questions

NIST CSF 2.0 added a sixth function to the five in version 1.1. Which one, and why?

Version 2.0, published 26 February 2024, promoted Govern to a function of its own. Detect and Recover were already functions in 1.1. The pattern behind the change is Ironwood's Friday admin grant: a Protect failure on the day, a Govern failure for the two years nobody had the job of taking it back.

On Ironwood's bench, switching on query logging and egress alerting takes the estate from three paths and three unseen to three paths and zero unseen. Why does this rung so often go unfunded?

Detect changes the number a control count cannot show. Every one of the three remaining paths now crosses a logged edge, including the two that no Protect control can close, and nothing visible on the headline changed.

Ironwood's questionnaire says data is backed up nightly. Its bench says 0 of 12 tables recoverable. Which statement about Recover reconciles the two?

A copy the admin login can delete is not a backup against the admin login being taken. Immutable, restore-tested backups the warehouse credentials cannot reach take recoverable from 0 to 12 of 12, with the path count unchanged at 3.

Sources covered

What tonight maps to

✓ NIST CSF 2.0 - six Core Functions GOVERN, IDENTIFY, PROTECT, DETECT, RESPOND, RECOVER, published 26 February 2024, each with its framework definition and its meaning on a data estate.
✓ Govern as the function added in 2.0 Why it was promoted from a category inside Identify, and what it looks like on a warehouse: an owner, an approver with an expiry, three numbers to the board.
✓ Detect and Recover on the attack-path bench Undetected 3 to 0 and recoverable 0 to 12, both with paths unchanged at 3; the all-prevention row at 1 path, 1 unseen.
◐ MITRE ATT&CK Enterprise tactics Named under Detect. Session 3 maps the fifteen tactics of version 19.2 onto a warehouse and shows which stages a log can see.
◐ Breach notification duties Named under Respond, taught in the data-governance course. Session 6 covers technical containment and the report only.
◐ Grants, roles and access review Assumed, not taught. The access-control course owns them; they appear here as the Friday grant a Govern owner would have revoked.
· Attacking models, prompts and agents Not covered by design. Model-side threats belong to the AI red-team course; this is the estate underneath.

Session 2 cheat sheet

Six functions, one dateGovern, Identify, Protect, Detect, Respond, Recover. NIST CSF 2.0, published 26 February 2024.
Govern is the new oneAdded in 2.0 because controls kept existing without owners. On a warehouse: who owns the table, who approves the exception, what gets funded.
Identify is the inventoryEvery account, key, bucket, export and runner, plus every copy of the table outside the warehouse. A checklist is not an inventory.
Protect removes pathsMFA 9 to 6, rotation 6 to 5, private bucket 5 to 4, pinning 4 to 3, least privilege 3 to 1. Then it runs out.
Detect moves unseenQuery logging and egress alerting: paths stay at 3, unseen goes 3 to 0. Invisible on a control count.
Recover moves recoverableImmutable, restore-tested backups: 0 of 12 to 12 of 12, paths unchanged. Snapshots go with the account.
All prevention, no detectionOne path left, the legitimate read, and nobody would see it used.
Six sentences, three numbersOne concrete sentence per function, marked funded, partly or absent, with paths, unseen and recoverable next to Protect, Detect and Recover.