Cybersecurity
Cybersecurity for a defence system is the set of design decisions that keep it trustworthy against a funded, patient adversary who may hold the device itself. Ordinary application security assumes an opportunist on the far side of a network boundary and a patch that ships on Tuesday; here the boundary eventually fails completely, and the patch may take months to arrive. The page opens with the twenty-five-line survivability checklist, then covers the threat model and what it accepts, the captured device, the boot chain and the update path, the supply chain, twenty years in service, eight documented compromises, and where the practice turns into theatre.
- Design assumption
- The device is lost
- One lost device costs
- One device, not the fleet
- Best target you own
- The update path
The survivability checklist
Here is the whole checklist first, because it is what a design review should walk through before the architecture sets, and because almost every line is cheap on the first device and a field retrofit on the thousandth. It is numbered so a line can be cited: "we fail 3.3" is a ticket, where "the update story feels weak" is a mood. The groups follow a system through its life — the decision about what to defend, the unit itself, every boot and every update, every dependency and every build, and the years it stays in service.
1.The threat model
- It is written before the design, and its output is constraints the design has to meet rather than findings raised after it.
- It names the assets — this key material, this location history, this operator identity, this ability to command — never just "the system".
- It names the adversaries by what they can do: use weaknesses others found, find new ones, or plant their own in your supply chain.
- It states in writing what is NOT defended against, and names the person entitled to accept that risk.
- The design review records, in writing, what the system is for and what it must not be used for.
2.Every device
- Each unit has its own identity, provisioned at manufacture, scoped to what that unit may do, and revocable from the fleet in minutes without touching any other unit.
- Keys live in hardware that will not export them — a secure element or a TPMTrusted Platform Module — security chip on the boardA standard security chip on a computer’s board that holds keys it will not export, records what the device booted, and can release a secret only to that measured state. It raises the cost of pulling a key out of a captured device; it does not make it impossible for someone with a laboratory and time.All terms — and never in a file or in the firmware image.
- Data at rest is encrypted with the key held apart from it; only the working set is on board, and history leaves with the first link.
- The production image ships with debug ports, default passwords and service accounts closed, and a test on the image that actually ships proves it.
- Every link — command, telemetry and video alike — is encrypted and authenticated from the first version.
3.Every boot and every update
- The boot chain is verified from a hardware root of trust, so replaced firmware produces a device that refuses to run.
- An update is signed, and the signature is checked by the bootloader — never by the application it is about to replace.
- The device refuses a downgrade, so nobody can reinstall last year’s signed version with last year’s hole.
- A new image is written beside the running one, and the device falls back automatically if it does not come up healthy.
- Rollout is staged, and no single credential, server or person can push code or commands to the whole fleet at once.
4.Every dependency and every build
- Every dependency has an owner, a recorded source and a reason to exist; adding one is a decision, not a keystroke.
- Dependencies are pinned and mirrored, and no build fetches anything from a public registry.
- Every build produces an SBOMSoftware Bill of Materials — a list of what is insideA machine-readable inventory of every component a piece of software is built from, including the dependencies pulled in by other dependencies. It matters on the day a vulnerability is announced: without one, the question "are we affected?" is answered by guessing.All terms, so "are we affected?" is answered in minutes, not in a week of grep.
- The build is reproducible from the source repository, and build machines are run as production.
- Signing keys sit in an HSMHardware security module — tamper-resistant key storeA tamper-resistant device that stores cryptographic keys and performs signing inside itself, so the key is used but never handed out. A compromised build server can still ask it to sign, which is why production signing also needs a log and a second person.All terms, never on a laptop or in a CI/CDContinuous Integration / Continuous Delivery — automatic build, test and deliveryEvery commit is built and put through the tests automatically (CI), and a build that passes travels to the servers the same way (CD). The point is not automation for its own sake: it is that a breakage shows up in minutes instead of on release day.Full article →All terms variable; a release signature needs two people, and every signature is logged.
- Where the source, the builds and the keys physically live is checked against export control, because a repository’s region is an export decision.
5.Every year in service
- Algorithms sit behind an interface and can be replaced by an update, because twenty years outlives the assumptions they were chosen under.
- Security events are logged in a form that whoever holds the device cannot quietly edit, and leave with the first link.
- There is a published way to report a vulnerability, and a named person whose job is to answer it.
- Keys are rotated on a schedule, and a retired unit is wiped by a documented procedure, not by whoever happens to decommission it.
The threat model is written first, and it names what it accepts
In most software a threat model is a review artefact: the design exists, someone walks it, a list of findings comes out, and a few of them get fixed before release. That ordering works when the findings are small and shippable. It fails completely when a finding means the architecture is wrong, because by then the architecture is what everyone is standing on. Here the model is written before the design, and its output is a set of constraints the design has to satisfy — line 1.1.
A usable model answers four questions in writing, and the fourth is the one usually skipped. What are we protecting — not "the system", but specific assets: this key material, this location history, this operator identity, this ability to command (line 1.2). Who is trying, with what resources and what patience (1.3). What each of them gains from succeeding. And what we are NOT defending against, stated explicitly (1.4) — because a model that claims to defend against everything has made no decisions, and will be quietly abandoned the first time it is inconvenient.
"Funded and patient" needs a scale, or it stays a mood. The one this field uses most comes from the US Defense Science Board’s 2013 report on resilient military systems. It sorts adversaries into six tiers by what they can do with vulnerabilities rather than by who they are, which is exactly what line 1.3 asks a threat model to write down.
| Adversary tier (DSB, 2013) | What they can do | What the design has to assume |
|---|---|---|
| I–II | Use vulnerabilities somebody else found, with tools anyone can obtain. | Defaults, patch speed and exposed services decide the outcome. Most real incidents happen here, including the weapon-system tests GAO reviewed in 2018. |
| III–IV | Are funded well enough to find new vulnerabilities in your system and write their own exploits. | A patch cannot help before the flaw is known. Assume one unit will be opened, and make sure it opens nothing else. |
| V–VI | Invest billions of dollars and years to create vulnerabilities, including by planting them in your supply chain. | No single control stops them. The model says so in writing, and the design limits what one compromise can reach. |
Two things follow, and both surprise people. The bottom of the scale is not a formality to tick off on the way to the interesting threats: when GAO reviewed the US Department of Defense’s own weapon-system tests in 2018, the testers got in with simple tools, default passwords and unencrypted links. And the top of the scale is where line 1.4 earns its place. Nobody fully defends against an adversary who can spend years planting a weakness in a supplier. A model that pretends to has decided nothing; a model that says so can at least decide how much one such compromise is allowed to reach.
One more question belongs in the same document, and it is the one engineers most want to hand to somebody else. A great deal of this software is dual-use: the same detection pipeline serves search and rescue, wildlife surveys and border monitoring. That is a real property of the field, and it is not a licence to skip the question of what a particular system is for. Line 1.5 puts the answer in the design review, in writing, next to the threat model — partly because the intended use shapes the threat model, and partly because a decision nobody wrote down is a decision nobody made.
Assume the device ends up in somebody else’s hands
This is the assumption that separates the domain, and it is worth stating as an expectation rather than a disaster. A deployed unit is unattended, sometimes for a long time, in a place you do not control. Some proportion of units will not come back, and some of those will be examined by someone with time, tools and motivation. It is not hypothetical: in December 2011 Iran put a largely intact US RQ-170 reconnaissance drone on television, and the US government asked for it back. Designing for that is not pessimism; it is the difference between losing a device and losing a fleet.
The third guarantee in the diagram decides the size of the loss, and it is an architectural decision rather than a cryptographic one. If every device holds the same shared secret, or credentials that authenticate it as a general member of the network, then one device examined at leisure yields access to everything. If each device has its own identity, scoped to what that device is allowed to do, and the fleet can revoke it, then the same event costs you one device. That is line 2.1, and the diagram below draws the two outcomes side by side.
The left panel is not a thought experiment. In 2016 the Mirai botnet grew to some 600,000 cameras and routers by trying a list of about sixty factory passwords, because whole product lines shipped with the same one — a fleet-wide secret in its purest form. Regulation has since caught up with the weakest version of line 2.1: since April 2024 the UK has banned universal default passwords on consumer devices. A defence system should not need a law to reach the floor that consumer cameras are now held to.
What holds after a loss
- A per-device identity, revocable from the fleet without touching any other unit (2.1).
- Keys held in hardware that will not export them, and erased when the enclosure is opened (2.2).
- Data encrypted at rest, with only the working set present and history already offloaded (2.3).
- A verified boot chain, so replacing the firmware produces a device that refuses to run (3.1).
What turns one loss into all of them
- A shared secret or a fleet-wide credential, so one unit authenticates as any unit.
- Keys in a file on the filesystem, which makes extraction a copy operation rather than an attack.
- A full local history of everywhere the device has been and everything it saw.
- A debug port or a service account left enabled because it was useful during development.
The chain of trust, and the update path as the best target you own
Every device needs a way to receive new code, and that mechanism deserves to be read plainly: it is the only component with authority over the entire fleet. Whoever controls it controls every unit at once, without touching any of them. That makes the update path the most attractive target you own, and it is the reason group 3 of the checklist exists.
The defence starts at power-on, with a chain of trust. The boot ROM is code fixed in silicon at manufacture, holding the hash of the one key it trusts; no update can change it, which is exactly why it can be trusted. It checks the bootloader’s signature before running it, the bootloader checks the kernel, and the kernel checks the application. Replace any link with something unsigned and the device refuses to run, rather than running the replacement — line 3.1. The same chain decides where an update is checked: in the bootloader, below the application being replaced, because an application cannot be trusted to vet its own successor — line 3.2.
| Property of the update path | What it stops | Without it |
|---|---|---|
| Signature checked in the bootloader (3.2) | An image nobody authorised. | Whoever reaches the update server reaches every device: NotPetya went out as an ordinary M.E.Doc update. |
| A version counter that never goes back (3.3) | Last year’s signed image, with last year’s hole. | Every patch is undone by reinstalling a version the device still accepts as genuine. |
| A second slot and a health check (3.4) | A bad image turning the unit into a brick. | A failed update in the field needs a technician or a replacement unit, and in the field there is often neither. |
| Staged rollout, no single path to all (3.5) | One mistake or one stolen credential reaching everything at once. | A bad release has exactly the reach of a successful attack, and a successful attack has the reach of the fleet. |
The Viasat case is worth reading slowly, because nothing in it was forged. On 24 February 2022 attackers entered the satellite network’s management segment through a misconfigured VPNVirtual private network — encrypted tunnel into a networkAn encrypted tunnel that lets a remote machine join a private network as if it were inside it. The appliance at the end of the tunnel is a door into everything behind it, so its configuration is as sensitive as any password.All terms appliance. Then they used the network’s own management function to send commands to tens of thousands of modems at once; a wiper overwrote their flash, and the modems never came back. Every check that asks "is this a genuine command from us?" would have answered yes. Line 3.5 is the one that helps: no single credential, server or person should reach the whole fleet in one step, so that even a genuine channel in the wrong hands meets a stage it cannot skip.
Every dependency is a decision with an owner
A funded adversary looks for the cheapest way in, and in a well-built product the cheapest way in is rarely the product. It is a dependency nobody reviews, a build machine nobody hardened, a signing key within reach of too many people. The diagram pins a documented attack to every stage between a commit and a device, and the pattern is the point: none of the six broke the product’s cryptography.
| Line | What it prevents | The case that shows it |
|---|---|---|
| 4.1 — an owner and a source for every dependency | A trusted person becoming the attack. | xz Utils, 2024: about two years of patient contributions bought maintainer rights. |
| 4.2 — pinned and mirrored | A public registry deciding what goes into your build. | Dependency confusion, 2021: a researcher’s look-alike public packages were pulled into the internal builds of more than 35 companies. |
| 4.3 — an SBOM from every build | A week of grep after every disclosure. | Log4Shell, December 2021: organisations spent weeks finding out whether one logging library was inside their products. |
| 4.4 — reproducible, and the build run as production | A clean repository producing a dirty binary. | SolarWinds, 2020, and xz, whose release tarball differed from its git repository. |
| 4.5 — keys in an HSM, two people to sign | A CI compromise turning into a signing service. | Codecov, 2021, which sent customers’ CI secrets out for two months; Stuxnet’s stolen certificates. |
Line 4.4 carries more weight than it looks. In both SolarWinds and xz the source repository was clean: the malicious code existed only in what the build produced or in the archive the release shipped. A reproducible build — one where anyone can rebuild the artefact from the repository and get the same bytes — turns "the binary matches the source" from a belief into a check, and it is the only check on this page that would have caught either of them before release.
Line 4.6 is legal rather than technical, and worth knowing before taking the work rather than after. Much of this software is export-controlled, which restricts who may hold the source, where it may be built and who may be told what it does — a rule that reaches into decisions as ordinary as which cloud region a repository lives in. The rule binds your suppliers as much as you. In 2017 the Australian Signals Directorate described an intruder who spent months inside a 50-person aerospace subcontractor and took about 30 GB of data, including export-controlled material on the F-35 and the P-8 Poseidon. Internet-facing services there still had their default passwords: admin and guest.
Twenty years in service
Ten to twenty years in service is normal here, and it changes decisions that look settled. Every dependency will outlive its maintainers’ interest in it. Every algorithm will outlive the assumptions it was chosen under. And "we will rewrite it later" becomes a claim somebody will hold you to. Group 5 of the checklist is what keeps a system defensible in year fifteen, when nobody who designed it is still on the team.
Cryptography is where this is most concrete. NIST published its first post-quantum standards, FIPS 203, 204 and 205, in August 2024, and the NSA’s CNSA 2.0 guidance asks national security systems to prefer quantum-resistant signatures for software and firmware by 2025 and to use them exclusively by 2030. A device fielded today with one signature scheme fixed in its boot ROM will still be in service after that date. Line 5.1 is the answer — algorithms behind an interface, replaceable by an update — with one hard exception worth planning for: the ROM’s own check cannot be updated, so the choice made there has to anticipate the whole service life, for example by picking a chip that holds several root keys and can revoke one.
Crypto you can replace (5.1)
Algorithms behind an interface and negotiated rather than hardcoded, so an update can move the fleet to a new one. Everything above the ROM should be replaceable this way.
Logs that survive the device (5.2)
Security-relevant events offloaded when there is a link, and appended locally in a form that cannot be quietly edited by whoever holds the device afterwards.
A way to receive bad news (5.3)
A published contact, a policy for reports from outside, and a named person who answers. Researchers find things; the only question is whether they can tell you or have to tell somebody else.
Retirement is a procedure (5.4)
A unit leaving service still holds keys and data. Wiping it is a documented step with a record, and its identity is revoked in the fleet the same day, not whenever somebody notices.
Eight compromises, and the line that covers each
Defence programmes rarely publish their compromises, so most of these are civilian, and the page says so openly: the mechanisms transfer exactly. Two come from defence itself — the Predator video feeds and GAO’s review of weapon-system tests — and one hit military communications on the first day of a war. Each carries the checklist line that would have covered it.
| Case | What happened | The line that covers it |
|---|---|---|
| Predator video feeds, Iraq, 2009 | US officials confirmed that insurgents had been watching the video downlinks of Predator drones with SkyGrabber, $26 off-the-shelf software meant for pulling files off satellite internet; the files turned up in July 2009 on a captured militant’s laptop. The weakness had been known since the 1990s, on the assumption that nobody would know how to use it, and fixing it meant retrofitting a fleet already flying. | 2.5. The link was treated as private because it was obscure. |
| Stuxnet, found 2010 | Malware built to damage centrifuges at Natanz crossed into an isolated network on removable media. Its drivers installed on Windows without a warning because they were signed with genuine certificates stolen from two Taiwanese hardware vendors, Realtek and JMicron. | 4.5 and 1.3. A signing key is worth exactly as much as its protection, and a tier V–VI adversary plans years ahead. |
| Mirai, October 2016 | A botnet grew to some 600,000 cameras, routers and recorders by logging in with a list of about sixty factory usernames and passwords. On 21 October 2016 it knocked the DNS provider Dyn offline, and with it much of the web for users on the US East Coast. From April 2024 the UK made the fix law: no universal default passwords. | 2.1 and 2.4. One credential shared across a product line is one credential for all of it. |
| NotPetya via M.E.Doc, June 2017 | Attackers who controlled the update server of M.E.Doc, accounting software used across Ukraine, sent its clients a backdoored update and on 27 June 2017 released a wiper through it. It spread from those networks around the world, Maersk and Merck among the victims, with damage in the billions of dollars. Every client installed it because it came through the vendor’s own update channel. | 3.2 and 3.5. Whoever held the update server held every client, all at once. |
| US weapon-system tests, GAO, October 2018 | Reviewing the Department of Defense’s own test reports, GAO found that testers took control of weapon systems in development with simple tools and largely went unnoticed. One team gained initial access in an hour and full control in a day; another guessed an administrator password in nine seconds; several systems ran commercial software with its default password unchanged. Programme officials believed their systems were secure and discounted some results as unrealistic. | 2.4 and 1.1. Security was a review after the design, and the review was argued with. |
| SolarWinds Orion, December 2020 | Malware on SolarWinds’ build server swapped a source file during compilation, so Orion builds carried a backdoor the repository did not contain. The result was signed with the company’s real certificate and shipped as a normal update; up to 18,000 customers installed it, US federal agencies among them. | 4.4. The repository was clean; only a rebuild compared against the release would have shown the difference. |
| Viasat KA-SAT, February 2022 | On the morning the full-scale invasion of Ukraine began, attackers who had entered Viasat’s management network through a misconfigured VPN appliance sent legitimate management commands to tens of thousands of satellite modems at once, and a wiper erased their flash. Ukrainian military communications were affected; in Germany 5,800 wind turbines lost remote monitoring. Viasat shipped about 30,000 replacement modems. | 3.5. The destructive commands were the network’s own, and one path reached the whole fleet. |
| xz Utils, March 2024 | A contributor who had spent about two years earning maintainer rights on a compression library used across Linux shipped a backdoor aimed at SSH logins. The malicious build step was in the release tarballs, not in the git repository. Andres Freund, an engineer at Microsoft, found it on 29 March 2024 because logins had become about half a second slower — before it reached the stable releases of the major distributions. | 4.1 and 4.4. The trusted person was the attack, and the artefact differed from the source. |
Where it turns into theatre
The honest limit is the top of the adversary scale and the person already inside. An adversary who can spend years planting a weakness in your supply chain, or an insider with legitimate signing rights, will get past controls designed for everyone else. Hardware that refuses to export a key raises the cost of extracting it without making that cost infinite for someone with a laboratory and time. No builder-side decision removes those threats. What the decisions on this page do is bound them: per-device identity limits what one extracted key opens, staged rolloutan update released to a growing share of usersReleasing an update to a small share of users first — 1%, then 5%, 20%, everyone — and checking crash and error rates before each step, so a bad release reaches a few people instead of all of them. It limits how many a bad release reaches, not whether it reaches them: on the app stores a halted rollout does not take the update back from those who already have it.All terms limits what one bad release reaches, and logs that survive the device make a compromise something you can find afterwards. The page stops there on purpose. How a fielded system is monitored, patched and defended day to day is operations, a different discipline with its own literature.
- A threat model that defends against everything and accepts nothing, so nobody consults it after the first deadline.
- A security review scheduled after the architecture freezes, where findings are argued with rather than fixed.
- "Air-gapped" in the design document, and a USB stick in the ground station.
- An SBOM generated on every build and read by nobody.
- "Encrypted at rest", with the key in the same flash as the data.
- Signed releases, signed by a key that lives in a CI variable.
- A penetration test before the first delivery, and never again across twenty years.
- A staged rollout whose stages all start within the same hour.
- A vulnerability inbox that nobody reads, so researchers report somewhere else.
When to use it
Use it when
- As a design review before the architecture sets — the twenty-five lines at the top — because a finding that late is a rewrite rather than a fix.
- For any device that will be unattended in a place you do not control, which is the capture assumption.
- When designing the build, signing and update path — the components with authority over the whole fleet.
- For long-lived systems, where replaceable crypto and a dependency inventory pay for themselves several times over.
Avoid it when
- As a substitute for a threat model specific to your system, which no page can supply.
- As a reason to defend against everything, which produces a document nobody uses and no decisions.
- As operational security guidance — this page is about what a builder decides, not about how a system is run.
- Where the device is never out of physical control and the fleet is small enough to update in a day.
Sources and method
What this page stands on
- 17 sources
- 10 documented failures
- Checked October 13, 2026
The failures this page learns from
the compromises in the case table- ArticleInsurgents Hack U.S. DronesThe Wall Street Journal · Dec 17, 2009
- ResearchManos Antonakakis et al. — Understanding the Mirai Botnet (opens in a new tab)USENIX Security 2017 · Aug 2017
- Regulator reportPetya Ransomware (opens in a new tab)CISA · Jul 1, 2017
- ResearchCharlie Miller, Chris Valasek — Remote Exploitation of an Unaltered Passenger Vehicle (opens in a new tab)illmatics.com · Aug 2015
- Regulator reportSolarWinds Corporation — Form 8-K (opens in a new tab)U.S. Securities and Exchange Commission · Dec 14, 2020
- PostmortemBash Uploader Security Update (opens in a new tab)Codecov · Apr 15, 2021
- ResearchAlex Birsan — Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies (opens in a new tab)Medium · Feb 9, 2021
- DocumentationApache Log4j — Security: CVE-2021-44228 (opens in a new tab)Apache Logging Services
- PostmortemKA-SAT Network cyber attack overview (opens in a new tab)Viasat · Mar 30, 2022
- PostmortemAndres Freund — backdoor in upstream xz/liblzma leading to ssh server compromise (opens in a new tab)oss-security · Mar 29, 2024
Research
the adversary tiers, and what weapon-system tests found- ResearchDefense Science Board — Resilient Military Systems and the Advanced Cyber ThreatDefense Science Board · Jan 2013
- Regulator reportGAO-19-128 — Weapon Systems Cybersecurity: DOD Just Beginning to Grapple with Scale of Vulnerabilities (opens in a new tab)U.S. Government Accountability Office · Oct 2018
Practices and where the terms come from
default passwords, signatures and the post-quantum deadline- StandardThe UK Product Security and Telecommunications Infrastructure (Product Security) regime (opens in a new tab)GOV.UK
- StandardFIPS 203 — Module-Lattice-Based Key-Encapsulation Mechanism Standard (opens in a new tab)NIST · Aug 13, 2024
- StandardFIPS 204 — Module-Lattice-Based Digital Signature Standard (opens in a new tab)NIST · Aug 13, 2024
- StandardFIPS 205 — Stateless Hash-Based Digital Signature Standard (opens in a new tab)NIST · Aug 13, 2024
- StandardNSA Releases Future Quantum-Resistant (QR) Algorithm Requirements for National Security Systems (CNSA 2.0) (opens in a new tab)National Security Agency · Sep 7, 2022
Researched with Claude. Finding and cross-checking the primary sources was done with Claude (Anthropic). Selection, writing and fact-checking: the Anatomy of IT Product editors.
Found this useful?
Share it with someone who is working on the same problem.