◇ OpenCyber Academy
Bachelor's · Chapter 27 · English

Chapter 27 — Security architecture and engineering: verification

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Chapter 27 — Security architecture and engineering: verification

Lesson map

Lesson 27 published. Map, example, EX079.

flowchart TD
  N0["Learning outcomes"]
  N1["27.1 Planning verification"]
  N2["27.2 Choosing methods"]
  N3["27.3 Recording evidence"]
  N4["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Worked example"]
  EX --> Q["Exercise EX079"]

Logical drawing

flowchart LR
  N0["Learning outcomes"]
  N1["27.1 Planning verification"]
  N2["27.2 Choosing methods"]
  N3["27.3 Recording evidence"]
  N4["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX079"]
[Learning outcomes]
    |
    v
[27.1 Planning verification]
    |
    v
[27.2 Choosing methods]
    |
    v
[27.3 Recording evidence]
    |
    v
[Synthesis]
    |
    v
[Worked example] --> [Exercise EX079]

Learning outcomes

You will (1) plan verification of security requirements; (2) use tests, reviews and scans appropriately; (3) record verification evidence.

27.1 Planning verification

For the click-and-collect service, Lucas writes security requirements as testable statements: a collection code must be required to release an order; codes must expire after fourteen days; staff app screens must mask phone numbers after collection; and the service must log every release with the staff member's identity. For each requirement he names a verification method and who performs it. Requirements written as vague goals, such as "the service must be secure", cannot be verified and give false comfort to everyone who reads them.

27.2 Choosing methods

Lucas matches methods to requirements. Code expiry is checked by an automated test with a clock set forward. Masking is checked by a reviewer using the staff app on a test account. Logging is checked by performing a release and reading the log. A dependency scan checks for known vulnerable libraries, as SP 800-218 recommends. He notes that scans find known issues but not logic flaws such as releasing an order without a code, which only a designed test can catch. Each method covers what it can.

27.3 Recording evidence

Every verification produces a record: date, method, result and who performed it. One test fails: codes do not expire because the expiry job was not scheduled in production. The developer fixes it and Lucas reruns the test. The record shows both the failure and the fix, which is more convincing to an auditor than a clean sheet. Lucas adds the tests to the release checklist so that future changes are verified again rather than assumed to have preserved the behaviour.

Worked example

Lucas writes four testable requirements, matches each to a verification method, finds an unscheduled expiry job and records the failure and fix.

Synthetic case. The service and results are synthetic; SP 800-218 is real.

Errors and limits

Tests verify only what they were designed to check. Evidence ages with each change.

Exercises

Synthesis

Verification needs testable requirements, matched methods and recorded evidence, including failures.

Continue studying — chapter 27 of 40

← Chapter 26 (draft) · Course chapter index · Chapter 28 (draft) →