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

Backups are attack surface too

Every disaster-recovery plan says the data is backed up. Almost none of them say who can delete the backup. At Ironwood the answer was the same admin login that reads the warehouse, because time travel, snapshots and the retention window are features of the account, and an account is exactly what an attacker takes. Tonight is about the one question that turns "we have backups" into a yes or a no: if somebody gets the admin login tonight, do we have Monday? By the end of the hour you will know how to answer it with a date in the sentence.

🟡 Core Data and technology leaders Whoever signs off the DR plan 45 min
0-3 · Welcome 3-22 · Why time travel is not a backup 22-40 · Build-along: the restore question 40-45 · Q&A
Part 0

Where tonight sits in the leader track

Session 1 counted nine paths to Ironwood's customers table. Session 2 put the six functions of NIST CSF 2.0 onto the estate. Session 3 walked the kill chain through the data stack and ended at the tactic called Impact, which on a warehouse means the tables are gone. Tonight picks up there: an attacker who has reached the admin login is not finished when they have read the data, and the thing that decides whether the company survives what they do next is a decision made months earlier about where the backup lives and who can touch it. Ironwood has twelve tables, one of them the customers table, and a nightly backup in the same account as everything else.

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

★ What you walk out with tonight. The professional rule that a copy the reading account can delete is not a backup, and the reason behind it. The number that makes it concrete: Ironwood's recoverable count is 0 of 12 tables at every rung of the control ladder until the backups are made immutable and restore-tested, at which point it is 12 of 12 with the path count unchanged at 3. And a one-sentence answer to the board's question, with the date of the last successful restore inside it.

LiveWhy a backup is a security control and not an operations detail3 min▶

Backups were designed for the failures operations teams expect: a disk dies, a job double-loads a table, an analyst drops the wrong schema on a Thursday. Against those, a snapshot in the same account is perfect, because the person restoring is the same person who owns the account and nobody is trying to stop them.

An attacker changes the shape of the failure. The person who deleted the tables also holds the login that owns the snapshots, and their first move after reaching admin is to remove anything that would let you undo their second move. A backup that survives that is a different object from a backup that survives a disk failure, and most estates have only the second kind.

Real world

Ironwood's DR plan ran to eleven pages and had passed two audits. It said the warehouse was snapshotted nightly and retained for thirty days, and every word was true. Nowhere did it say that the snapshots lived in the account the admin login controlled, so an attacker with that login could shorten the retention to zero, drop the twelve tables, and leave the company with a compliant plan and no data.

Self-studyFive words for tonight3 min▶
  • Time travel - a warehouse feature that lets you query a table as it was some hours or days ago. Lives inside the account. Purged by whoever administers the account.
  • Snapshot - a point-in-time copy the platform keeps for you, usually in the same account and region. Same owner, same fate.
  • Retention window - how long time travel and snapshots are kept. A setting, which means an admin can change it, which means an attacker with admin can set it to nothing.
  • Immutable copy - a backup written somewhere the reading account has no delete permission, usually a separate account with object lock or a legal-hold style retention that no login in the warehouse account can shorten.
  • Restore drill - actually bringing a table back from the copy, on a known date, by a named person, in a measured time. The only evidence that a backup exists.
Part 1 · covers why account-owned copies fall with the account, and the ransomware pattern on data estates

The backup goes with the account

10 min live

Warehouse time travel, snapshots and retention windows are features of the account. Whoever holds the admin login holds them, and can delete them along with the data. That single fact is why "is it backed up" has a yes answer and a no meaning at most mid-size companies, and why the recoverable count on Ironwood's ladder sits at zero for so long.

Estate A · backups inside the login's reach phished admin login warehouse · 12 tables backups time travel, snapshots drop the tables purge the window recoverable: 0 of 12 tables same account, same login, same fate a compliant DR plan and no Monday Estate B · an immutable copy outside its reach phished admin login warehouse · 12 tables immutable copy own account, object lock drop the tables no delete permission restore, 41 minutes recoverable: 12 of 12 tables same attack, same login, same tables the copy was never in the fight Same login, same tables, same attack. The only difference is whether the copy is inside the login's reach.
🔍 Click to zoom - two estates, one attacker, and the one decision that separates 0 of 12 from 12 of 12.
LiveThe rule: whoever administers the account owns its recovery features3 min▶

Time travel is a table setting. The snapshot schedule is an account setting. The retention window is a number in a configuration screen. All three are administered by the same role that creates and drops tables, because the platform reasonably assumes that the administrator is on the company's side. The moment the administrator's login belongs to somebody else, so do the settings, and a retention window of thirty days becomes a retention window of nothing in one action.

This is why the professional norm draws the line where it does. A copy counts as a backup only if the account that reads the warehouse has no permission to delete it. Not "is unlikely to", not "would need a second approval to": no permission, enforced by a different account with a different set of logins, ideally with an object lock or retention hold that nobody in the warehouse account can shorten. Anything else is a convenience feature that happens to look like a backup on a slide.

LiveThe ransomware pattern on a data estate, in three moves4 min▶

Ransomware against a warehouse does not need to encrypt anything, because a warehouse already gives an administrator everything needed to make the data unreachable. The pattern has three moves and only the third one is visible to the business.

  • Make the data unreachable. Drop the tables, or overwrite them, or in some estates encrypt the underlying files. On a warehouse the drop is enough; there are twelve tables at Ironwood and dropping them is twelve statements.
  • Remove the recovery window. Shorten time travel to zero, delete the snapshots, cancel the schedule. This move is the whole reason the attack works, and it is only possible because the recovery features live in the account the attacker now holds.
  • Ask for money. The note arrives after the first two moves are complete, so by the time anyone knows there is an incident the question of whether a backup exists has already been answered.
Real world

Ironwood's incident tabletop had always started at the ransom note. Played from the attacker's side, the note is the last event, not the first, and the two events before it decide the outcome. The team's honest answer to "what would we restore from" was the snapshots, and the honest answer to "who can delete the snapshots" was the login the exercise assumed had been lost. The DR plan was rewritten that afternoon, and the first line of the new one was where the copy lives.

LiveWhat the ladder shows: zero, zero, zero, then twelve3 min▶

Ironwood's control ladder from session 1 has a third column that nobody looked at until tonight: how many of the twelve tables survive an attacker who reaches the admin login. It reads zero at the baseline. It reads zero after MFA takes the paths from nine to six. It reads zero after key rotation, after the private bucket, after pinned dependencies, and it still reads zero at the rung where every one of those prevention controls is on and query logging has taken the undetected count to nothing: three paths, zero unseen, zero recoverable.

Then one control, immutable and restore-tested backups, moves it from 0 to 12. The path count does not change; it stays at 3. The undetected count does not change; it stays at 0. Nothing about how the attacker gets in has altered. The only thing that has changed is what they can take away when they do, and that is the whole point of the rung: a control can matter completely without touching the headline number.

Controls onPaths to customersUnseenRecoverable of 12
Nothing990
+ MFA on every human login660
+ rotate service keys550
+ private export bucket440
+ pinned, verified dependencies330
+ query logging and egress alerting300
+ immutable, restore-tested backups3012
+ least privilege on the analyst role1012
Self-studyWhy the perimeter firewall does nothing for the backups either2 min▶

The most common single security purchase, a perimeter allowlist on the warehouse, leaves Ironwood at seven paths, seven unseen, and zero recoverable tables. It does nothing for the backups for the same reason it does little for the paths: a phished admin logs in from their own laptop, inside the allowlist, and once inside they hold every setting the account has. Where a credential may be used from is a different question from what the credential may do once it is used, and the backup question lives entirely in the second.

Part 2 · covers restore drills, the cost of immutability, the Recover function and the Monday question

Restore-tested, or not a backup

9 min live

Having a copy the attacker cannot delete is necessary and not sufficient. A copy nobody has ever restored from is a hope with a storage bill. The professional standard has three rungs, and only the third one is a backup.

rung 1 A copy exists nightly snapshot, time travel a dump in the same account deleted with the admin login not a backup against ransomware rung 2 The reader cannot delete it separate account, object lock retention nobody can shorten never actually restored a copy you hope works rung 3 Restored in a drill restored on a known date by a named person in a measured time a backup the Monday answer needs rung 3: a yes, and the date it was proven Only the third rung answers the Monday question. The first two answer a questionnaire.
🔍 Click to zoom - the backup ladder: a copy, a copy the reader cannot delete, a copy somebody has restored from.
LiveHaving a copy versus being able to restore it3 min▶

Three things go wrong between a copy and a restore, and none of them shows up on a storage dashboard. The copy turns out to be incomplete, because the job that writes it silently skipped a table after a schema change eight months ago. The restore takes far longer than anyone assumed, because nobody had ever measured it and the crown-jewel table is four hundred million rows. And the one person who knew the sequence of steps left in the spring, and the runbook they wrote refers to a console that has since been redesigned.

A restore drill is the only instrument that detects all three. It is a scheduled event, quarterly at most estates, in which a named person restores the crown-jewel table from the immutable copy into a scratch environment, compares row counts against production, and writes down the date and the elapsed time. The write-down is the point: the date is the evidence that the backup exists, and the time is the number the incident plan is allowed to promise.

The drill is cheap and the absence of a drill is not. A quarterly restore of one table costs an afternoon of one engineer's time and some scratch compute. The first time it is done it usually finds something, and finding it on a Tuesday afternoon in a drill is the cheapest possible way to find it.

LiveThe honest cost of immutability2 min▶

An immutable copy protects the data from the attacker by protecting it from everybody, including you. A table loaded with the wrong rows sits in the immutable copy until the retention period expires. A dataset that should never have been retained, or that a customer has a right to have erased, is held for as long as the lock says. You cannot delete your own mistakes either, and that is not a flaw in the control; it is the control.

This turns the retention window from a storage setting into a governance decision. How long the immutable copy is held, what may be written into it, and how erasure duties are met while it exists are questions for the people who own data policy, not the people who own the platform. The governance course owns the erasure duty itself; what belongs here is the recognition that immutability makes the retention number a decision with two sides, and that somebody senior has to sign it.

LiveRecover: funded last, needed first2 min▶

NIST CSF 2.0, published on 26 February 2024, names six functions: Govern, Identify, Protect, Detect, Respond, Recover. Session 2 put all six onto the estate. Recover is the one that restores assets and operations after an incident, and across most security budgets it is the function funded last, because it produces nothing on a good day and its whole value is realised on a day everyone hopes never comes.

On the day it does come, Recover is needed first. Every other function has already had its turn by the time the ransom note arrives: Protect did or did not stop the login, Detect did or did not see the drop. The only question left is whether there is a copy outside the attacker's reach and whether somebody knows how to bring it back. That is the whole of Recover, and it costs a separate account, an object lock and a quarterly afternoon.

LiveThe board question, answered as yes or no with a date2 min▶

The question a board or a customer is really asking, underneath "is the data backed up", is this: if somebody gets the admin login tonight, do we have Monday? It has a yes or no answer, and the answer is only credible with the date of the last successful restore next to it. A yes with no date is a hope. A no is uncomfortable and is also the most useful sentence a leader can put in front of a budget committee, because it names a specific thing to fund and the thing is not expensive.

✗ The DR plan sentence that is true and decides nothing The warehouse is backed up nightly and snapshots are retained for thirty days.
★ The Monday answer, one sentence with a date in it If the admin login is lost tonight we have Monday: yes. The immutable copy sits in a separate account with an object lock the warehouse admin cannot shorten, and the customers table was last restored from it on 14 August 2026 in 41 minutes by Dana Okoro.
Self-studyThree ways an immutable copy quietly stops being one3 min▶
  • The separate account gets the same admins. For convenience, the platform team is given administrative rights on the backup account too. The two accounts are now one account with two names, and a phished platform admin reaches both. The backup account needs its own logins, held by fewer people, with its own MFA.
  • The lock has an off switch in the warehouse account. Some retention holds can be released by whoever created them. If the releasing role lives in the warehouse account, the copy is deletable in two steps instead of one, which an attacker will not mind.
  • The copy job stops and nobody notices. A credential expires, the job fails, the immutable copy is faithfully preserving data from six weeks ago. The restore drill catches this by comparing dates and row counts; a storage dashboard showing a healthy bucket does not.
Build-along

The restore question

★ 18 min · everyone builds

No tools and no access to anything. Four questions to put to whoever runs your warehouse, and one sentence to write at the end. If you have no estate to hand, use Ironwood's and write its Monday answer as it stood before the DR plan was rewritten: it is a no.

Find out whether your backups can be deleted by the admin login. Ask where the copy lives, which account owns it, and whether any login that can read the warehouse can also delete, shorten or cancel it. If the answer includes the words time travel or snapshot and nothing else, the answer is yes. Write down "recoverable: 0 of N tables" until somebody shows you a copy that login cannot touch.

Find the date of the last restore actually performed. Not scheduled, not documented in a plan, not tested by the vendor: performed, by a person on your team, from your copy, into an environment where the result could be checked. If nobody can name a date, the date is "never" and it goes on the page as that word.

Time a restore of the crown-jewel table, or write "unknown". If a restore has been done, find out how long it took from decision to usable table. If it has not, the honest entry is "unknown", and "unknown" is a number the incident plan cannot promise against. Ironwood's first measured restore of the customers table took 41 minutes; its DR plan had assumed ten.

Write the Monday answer as one sentence with a date in it. "If the admin login is lost tonight we have Monday: yes or no", followed by where the copy lives, who cannot delete it, and when it was last restored. If any part of that sentence is a guess, mark it as a guess. A marked guess is a funding request; an unmarked one is a future incident report.

Put the sentence in the DR plan, on page one. A DR plan that opens with where the copy lives and when it was last restored is a control. One that opens with a retention window is a description of a feature the attacker also has access to.

Homework

Before session 5

30 min
  1. Put the four build-along questions to whoever runs your warehouse, in writing, and keep the replies. The reply "I would have to check" is the finding, and so is any reply that mentions a retention window without mentioning an account.
  2. Find your DR plan and read the backup section with one question in mind: does it say who can delete the copy? Underline every sentence that describes a feature and none that describe a permission.
  3. Write your Monday answer as it stands today, with the real date or the word "never", and put it next to Ironwood's 0 of 12.
  4. If your answer is a no, cost the fix: a separate account, an object-locked bucket, a copy job, and one afternoon a quarter. Take that number to whoever owns the budget with the Monday sentence stapled to it.
Check yourself

Three questions

Ironwood snapshots the warehouse nightly and keeps thirty days of time travel, all in the warehouse account. An attacker reaches the admin login. How many of the twelve tables are recoverable?

The recovery features are administered by the same role that creates and drops tables. Whoever holds that login holds the retention window, and setting it to nothing is one action. This is the 0 of 12 that sits on every rung of the ladder until the copy is moved outside the login's reach.

On Ironwood's ladder, MFA, key rotation, the private bucket, pinned dependencies and full query logging are all on: 3 paths, 0 unseen. What does adding immutable, restore-tested backups change?

Nothing about how the attacker gets in changes, so paths and unseen are untouched. What changes is what they can take away when they do: 0 of 12 becomes 12 of 12. A control can matter completely without moving the headline path count, and this rung exists to show it.

A copy of the customers table is written nightly to a separate account with an object lock the warehouse admin cannot shorten. Nobody has ever restored from it. Is it a backup?

Immutability is the second rung. The third is a restore drill on a known date by a named person in a measured time, which is the only instrument that catches an incomplete copy, an unmeasured restore time or a runbook nobody can follow. The Monday answer needs that date in it.

Sources covered

What tonight maps to

✓ Ransomware on a data estate Make the data unreachable, remove the recovery window, ask for money. Why the note is the last event and not the first.
✓ Time travel and snapshots are not a backup Account-owned recovery features fall with the account. The professional norm and its reason: no delete permission for the reading account, enforced by a separate account.
✓ Immutability and restore drills Object lock and retention holds, their governance cost, and the quarterly drill as the only evidence a backup exists. The canon: recoverable 0 to 12 with paths unchanged at 3.
◐ NIST CSF 2.0 Recover function Placed tonight as funded last and needed first. All six functions on the estate, with the 26 February 2024 publication date, are session 2.
◐ Building the immutable copy and running the drill Named as an outcome. The account layout, copy job and drill procedure are builder session 6.
◐ Retention, erasure and data policy Named as the governance cost of immutability. The duties themselves belong to the data governance course.
· 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 4 cheat sheet

The backup goes with the accountTime travel, snapshots and retention are features of the account. Whoever holds admin deletes them with the data.
The ruleA copy is a backup only if the account that reads the warehouse has no permission to delete it. Separate account, object lock.
Three movesMake the data unreachable, remove the recovery window, ask for money. The note is the last event.
0, 0, 0, then 12Ironwood's recoverable count is 0 of 12 at every rung until immutable backups take it to 12. Paths stay at 3.
Three rungsA copy exists; the reader cannot delete it; it has been restored in a drill. Only the third is a backup.
The drillQuarterly, a named person, the crown-jewel table, a known date, a measured time. The date is the evidence.
The cost of immutabilityYou cannot delete your own mistakes either. Retention becomes a governance decision somebody senior signs.
The Monday answer"If the admin login is lost tonight, do we have Monday?" Yes or no, with the date of the last successful restore.