Skip to content
Alpha

This site is an alpha version and is still being developed in the open - your feedback will help us improve it. See the roadmap. Last updated: 14 October 2026.

Version in force: 0.3.0 (6 October 2026).

Threat model excerpt: apply for a licence

Part of the alpha threat model for the fictional apply for a licence service, written with the threat model template and the STRIDE method.

Fictional and partial

This is an excerpt from an invented service's threat model, published to show the format and level of detail. Do not publish real threat models for live services in full - see what not to publish.

Scope

Aspect In this example
Version and date 0.3, 2026-05-28 (alpha)
Participants Tech lead, developers, product manager, solution architect, security architect
Risk owner Service owner
Classification OFFICIAL, including personal data
In scope Front end, application API, file upload and scanning, outbox and events
Out of scope Case management (has its own threat model), Defra ID, GOV.UK Pay

What can go wrong?

ID Element STRIDE Threat Existing or planned controls
T1 Application API Elevation of privilege An agent changes the organisation id in a request to see another landowner's applications Server-side authorisation on every request (ADR 0003); tests for each role
T2 File upload Tampering A malicious file is uploaded and opened by an assessing officer Quarantine, type and size checks, malware scanning; staff read only clean files (pattern)
T3 File upload Denial of service Very large or many files exhaust storage or scanning Size limits, number limits per application, rate limiting
T4 Events Spoofing Something other than the service publishes fake application-submitted events Only the relay's workload identity can publish; consumers check the event source
T5 Events and logs Information disclosure Personal data copied into events or logs is exposed to more people than needed Events carry references not personal data; structured logging with redaction (GR-OPS-02)
T6 Front end Repudiation An applicant says they did not submit an application Audit record of submission with user, organisation, time and content hash

What are we going to do about it?

Threat Response Action Owner
T1 Mitigate Build the authorisation module before the first agent journey; include in the IT health check scope Tech lead
T2 Mitigate Confirm scanning service with the platform team Solution architect
T3 Mitigate Set limits; load test uploads in beta Developers
T4 Mitigate Configure publish permissions through infrastructure as code Developers
T5 Mitigate Review event schema and log fields with the security architect Tech lead
T6 Accept for alpha Revisit in beta with the case management team Service owner

Did we do a good enough job?

  • Assumption: Defra ID and GOV.UK Pay are covered by their own threat models.
  • Next review: before private beta, and at every significant change (GR-SEC-02).