CISSP-116 · Lesson 10 of 12 · 26 min

Backup, resilience and recovery strategies

The business impact analysis tells the organization how quickly each activity must return and how much data it can afford to lose. Recovery strategies are the means of meeting those objectives. They range from nightly backups restored onto replacement hardware, which is cheap but slow, to fully redundant systems running in two locations at once, which is fast but expensive. Choosing well means matching each system's strategy to its recovery point objective (RPO) and recovery time objective (RTO), and then proving through testing that the strategy actually works.

This lesson covers the CISSP outline's sub-domain 7.10, implement recovery strategies: backup storage strategies, recovery site strategies, multiple processing sites, and system resilience, high availability, quality of service and fault tolerance. Recovery sites are covered in more depth in Lesson 11. In an era of ransomware, backups have also become a security control in their own right, and their protection is now a central concern of security operations.

Backup types and schedules

A full backup copies all selected data. An incremental backup copies only the data changed since the last backup of any kind; it is fast and small to create, but restoring requires the last full backup plus every incremental since. A differential backup copies everything changed since the last full backup; each differential grows through the week, but a restore needs only the full plus the latest differential. Synthetic full backups, built by combining a previous full with later incrementals on the backup system, give the restore speed of a full without the load of reading all source data again. Many modern systems use continuous data protection or frequent snapshots, which capture changes every few minutes.

Common backup types and their trade-offs.
Backup typeWhat it copiesBackup time and spaceRestore needs
FullAll selected dataLongest, largestThe one full backup
IncrementalChanges since the last backup of any kindShortest, smallestLast full plus every incremental since
DifferentialChanges since the last fullGrows until the next fullLast full plus the latest differential
Synthetic fullBuilt on the backup system from a full plus incrementalsLow load on source systemsThe one synthetic full
Snapshot or continuous protectionPoint-in-time state, often every few minutesEfficient, but often on the same storageA chosen point in time; must be copied elsewhere to protect against site or storage loss

The backup schedule sets the achievable RPO. If a database is backed up nightly at 01:00 and fails at 23:00, nearly a full day of transactions is lost. An RPO of 15 minutes requires transaction log backups or replication at least every 15 minutes. Retention, meanwhile, decides how far back the organization can go, which matters when corruption or an intrusion goes unnoticed for weeks. Retention periods should reflect legal and business needs and the likely time to detect a problem; Lesson 5 showed that intrusions can remain undetected for weeks.

Backup storage sizing and the link between RPO and the frequency of protection points.
# Estimate storage for a weekly-full, daily-incremental scheme with 8 weeks of retention (synthetic)
full_tb = 40.0          # size of one full backup
daily_change = 0.03     # share of data changed per day
dedupe_ratio = 3.0      # reduction achieved by deduplication and compression
weeks_kept = 8
incr_tb = full_tb * daily_change
per_week = full_tb + 6 * incr_tb
raw_total = per_week * weeks_kept
stored = raw_total / dedupe_ratio
print(f'One incremental: {incr_tb:.1f} TB, one week: {per_week:.1f} TB')
print(f'Raw for {weeks_kept} weeks: {raw_total:.0f} TB, stored after reduction: {stored:.0f} TB')
for rpo_hours in (24, 4, 0.25):
    copies_per_day = 24 / rpo_hours
    print(f'RPO {rpo_hours:>5} h needs at least {copies_per_day:4.0f} protection points per day')
Output
One incremental: 1.2 TB, one week: 47.2 TB
Raw for 8 weeks: 378 TB, stored after reduction: 126 TB
RPO    24 h needs at least    1 protection points per day
RPO     4 h needs at least    6 protection points per day
RPO  0.25 h needs at least   96 protection points per day

The 3-2-1 rule and its modern extension

The traditional 3-2-1 rule says to keep at least three copies of important data, on two different types of media or storage, with one copy offsite. Ransomware has pushed organizations to extend this to 3-2-1-1-0: three copies, two media, one offsite, one copy offline, air-gapped or immutable so that it cannot be altered or deleted even by someone with administrator credentials, and zero errors in backup verification and restore testing. Immutable storage, sometimes implemented as write-once-read-many object storage with a retention lock, is now widely offered by backup products and cloud providers.

Diagram of the 3-2-1-1-0 rule. Production data on the left feeds three copies: primary copy on site disk, a second copy on a different medium, and an offsite cloud copy. One copy is marked immutable or offline with a lock. A checkmark labelled zero errors indicates verified restore tests.
The 3-2-1-1-0 rule: three copies, two media, one offsite, one offline or immutable, and zero errors in verified restores.

Backups must be protected as carefully as production. Adversaries who gain administrative access often look for backup systems and try to delete or encrypt them before triggering ransomware. Defensive practices include separate credentials and administrative domains for the backup system, multi-factor authentication for backup administration, immutability locks that even administrators cannot shorten, encryption of backup data with keys managed separately, alerts on deletion or changes to retention, and logging of all backup administration to the SIEM. Backups also contain everything sensitive the organization holds, so access to restore data must be controlled and logged.

A simple compliance check of backup arrangements against the 3-2-1-1-0 rule.
# Check backup jobs against the 3-2-1-1-0 rule (synthetic inventory)
systems = {
    'ERP database':   {'copies': 3, 'media': {'disk', 'object'}, 'offsite': True, 'immutable': True, 'last_restore_ok': True},
    'File servers':   {'copies': 3, 'media': {'disk', 'tape'}, 'offsite': True, 'immutable': False, 'last_restore_ok': True},
    'HR SaaS':        {'copies': 1, 'media': {'vendor'}, 'offsite': True, 'immutable': False, 'last_restore_ok': None},
    'Plant historian':{'copies': 2, 'media': {'disk'}, 'offsite': False, 'immutable': False, 'last_restore_ok': False},
}
for name, s in systems.items():
    gaps = []
    if s['copies'] < 3: gaps.append('fewer than 3 copies')
    if len(s['media']) < 2: gaps.append('single media type')
    if not s['offsite']: gaps.append('no offsite copy')
    if not s['immutable']: gaps.append('no offline or immutable copy')
    if s['last_restore_ok'] is not True: gaps.append('no verified restore')
    status = 'meets 3-2-1-1-0' if not gaps else 'ERROR ' + '; '.join(gaps)
    print(f'{name:16s} {status}')
Output
ERP database     meets 3-2-1-1-0
File servers     ERROR no offline or immutable copy
HR SaaS          ERROR fewer than 3 copies; single media type; no offline or immutable copy; no verified restore
Plant historian  ERROR fewer than 3 copies; single media type; no offsite copy; no offline or immutable copy; no verified restore

The software-as-a-service result is common and easily missed. Under the shared responsibility model, a SaaS provider keeps its service running but usually does not promise to restore an individual customer's data deleted by a user, a misconfigured integration or an intruder, beyond a short retention window. Organizations that depend on SaaS for critical data should read the provider's terms and consider third-party backup of that data.

Restore testing and the zero in 3-2-1-1-0

A backup that cannot be restored is not a backup. Restore testing confirms that data can be recovered, that it is complete and consistent, and that it can be recovered within the RTO. Tests range from restoring individual files on request, to scheduled restores of whole databases into an isolated environment with integrity checks, to full recovery of an application stack. Automated restore verification, offered by many backup products, boots backups in an isolated environment and checks that services start.

The restore test success rate, the proportion of test restores that complete successfully and within the target time, is the key metric. Because the number of tests in any period may be small, managers should be careful not to over-read a single good quarter. Reporting a confidence range alongside the rate gives a more honest picture.

Restore test success rates with confidence ranges; small samples give wide ranges.
import random, math
random.seed(2026)
# Simulate quarterly restore tests and report success rate with a 95 % Wilson interval
def wilson(k, n, z=1.96):
    p = k / n
    d = 1 + z * z / n
    c = (p + z * z / (2 * n)) / d
    h = z * math.sqrt(p * (1 - p) / n + z * z / (4 * n * n)) / d
    return c - h, c + h
true_rate = 0.92
for quarter, n in [('Q1', 12), ('Q2', 12), ('Q3', 40), ('Q4', 40)]:
    k = sum(random.random() < true_rate for _ in range(n))
    lo, hi = wilson(k, n)
    print(f'{quarter}: {k}/{n} restores met RTO = {k/n:5.1%}  (95 % range {lo:5.1%} to {hi:5.1%})')
Output
Q1: 12/12 restores met RTO = 100.0%  (95 % range 75.7% to 100.0%)
Q2: 12/12 restores met RTO = 100.0%  (95 % range 75.7% to 100.0%)
Q3: 36/40 restores met RTO = 90.0%  (95 % range 76.9% to 96.0%)
Q4: 37/40 restores met RTO = 92.5%  (95 % range 80.1% to 97.4%)

With only twelve tests a quarter, even a perfect result is consistent with a true success rate well below target. Increasing the number of tests, mostly through automation, narrows the range and builds justified confidence. Every failed restore should be investigated like an incident, because it reveals a gap that would otherwise be discovered during a real disaster.

Resilience, high availability and fault tolerance

Backups recover from loss; resilience designs reduce the chance of loss in the first place. High availability (HA) designs keep a service running despite the failure of a component, typically through redundant servers in a cluster with automatic failover. Fault tolerance goes further: the system continues operating without interruption when a component fails, for example through redundant power supplies or mirrored disks. RAID (redundant array of independent disks) is a classic fault tolerance technique; RAID 1 mirrors data across disks and RAID 5 and 6 use parity to survive one or two disk failures. RAID protects against disk failure only; it is not a backup, because deletion, corruption or encryption is faithfully copied to every disk.

Availability is often expressed as a percentage, such as 99.9 % (about 8.8 hours of downtime a year) or 99.99 % (about 53 minutes). Components in series multiply their availabilities, so a service that needs five components each at 99.9 % is less available than any one of them; redundant components in parallel greatly improve availability, provided their failures are independent. Common-mode failures, such as both servers sharing a power circuit, a software bug or an administrator mistake, break that independence.

Series dependencies reduce availability; redundancy restores it, if failures are independent.
# Availability of components in series and in redundant pairs
def series(*a):
    r = 1.0
    for x in a: r *= x
    return r
def parallel(*a):
    r = 1.0
    for x in a: r *= (1 - x)
    return 1 - r
hours = 8766
single = 0.999
chain = series(single, single, single, single, single)
redundant = series(*[parallel(single, single)] * 5)
for name, a in [('one component', single), ('five in series', chain), ('five redundant pairs in series', redundant)]:
    print(f'{name:32s} availability {a:.5%}  downtime {(1 - a) * hours:6.2f} h/year')
Output
one component                    availability 99.90000%  downtime   8.77 h/year
five in series                   availability 99.50100%  downtime  43.74 h/year
five redundant pairs in series   availability 99.99950%  downtime   0.04 h/year

Quality of service (QoS) is also listed in the outline: network QoS prioritizes critical traffic, such as voice or control system traffic, so that it continues to function when links are congested during an incident or a recovery. Other resilience measures include redundant network links from different carriers using different physical paths, uninterruptible power supplies and generators, geographically distributed cloud deployments across availability zones or regions, and avoiding single points of failure in people as well as technology, by cross-training staff.

Worked problem

Choosing a strategy for a payments database

A payments database has an RPO of 5 minutes and an RTO of 2 hours. It is currently backed up nightly to disk in the same data centre.

Show solution
  1. Compare: the nightly backup gives an RPO of up to 24 hours and is lost with the data centre; it does not meet either objective.
  2. Add continuous replication to a standby database in a second location, giving an RPO of seconds to minutes and fast failover.
  3. Keep backups as well, because replication copies corruption and malicious deletion instantly.
  4. Store one backup copy immutably offsite and protect backup administration with separate credentials and MFA.
  5. Test both failover and restore regularly, and report the restore success rate with confidence ranges.

Answer: Combine replication for the RPO and RTO with immutable, tested backups for protection against corruption and ransomware.

Common mistakes

  • MistakeTreating replication or RAID as a backup.

    InsteadKeep separate, versioned backups; replication and RAID copy deletion and corruption instantly.

  • MistakeUsing the same administrator accounts for production and backups.

    InsteadSeparate backup credentials and administration, with MFA and immutability locks.

  • MistakeAssuming SaaS providers back up customer data for restoration on demand.

    InsteadCheck the terms and add third-party backup where needed.

  • MistakeDeclaring success after a few successful restores.

    InsteadTest regularly and report success rates with confidence ranges; investigate every failure.

  • MistakeSetting backup frequency without reference to RPO.

    InsteadSchedule protection points at least as often as the RPO requires.

  • MistakeAdding redundant servers that share one power circuit.

    InsteadLook for common-mode failures and make redundancy independent.

Summary and key terms

  • Recovery strategies are chosen to meet each system's RPO and RTO at acceptable cost.
  • Full, incremental, differential and synthetic full backups trade backup effort against restore effort.
  • Backup frequency sets the achievable RPO; retention must cover the likely time to detect problems.
  • 3-2-1-1-0 means three copies, two media, one offsite, one offline or immutable and zero verification errors.
  • Backups need strong separate protection because adversaries target them.
  • Restore testing proves recoverability; report success rates with confidence ranges.
  • High availability and fault tolerance reduce outages; RAID and replication are not backups.
Incremental backup
A backup of data changed since the last backup of any kind.
Differential backup
A backup of data changed since the last full backup.
3-2-1-1-0 rule
Three copies, two media, one offsite, one offline or immutable, zero errors in verification.
Immutable backup
A backup that cannot be altered or deleted until its retention period ends.
Air gap
Physical or logical separation that prevents network access to a backup copy.
Restore test success rate
The share of test restores that succeed within the target time.
High availability
Design that keeps a service running despite component failures, usually through redundancy and failover.
Fault tolerance
The ability to continue operating without interruption when a component fails.
RAID
Redundant array of independent disks: storage that tolerates disk failures through mirroring or parity.
Quality of service
Network prioritization that keeps critical traffic flowing during congestion.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. What does a restore from incremental backups require?

    Show answer

    The last full backup plus every incremental since.

  2. What does a restore from differential backups require?

    Show answer

    The last full backup plus the latest differential.

  3. What determines the achievable RPO?

    Show answer

    How often protection points (backups, snapshots or replication) are taken.

  4. Expand 3-2-1-1-0.

    Show answer

    Three copies, two media, one offsite, one offline or immutable, zero errors.

  5. Why must backup systems use separate credentials?

    Show answer

    Adversaries with production administrator access try to delete or encrypt backups.

  6. Why is RAID not a backup?

    Show answer

    It copies deletion, corruption and encryption to every disk.

  7. Why report confidence ranges with restore success rates?

    Show answer

    Small numbers of tests give uncertain estimates.

  8. Distinguish high availability from fault tolerance.

    Show answer

    High availability recovers quickly through failover; fault tolerance continues without interruption.

  9. What happens to availability when components are in series?

    Show answer

    It decreases, because the availabilities multiply.

  10. What is a common-mode failure?

    Show answer

    A single cause, such as shared power or a software bug, that defeats redundant components together.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz