Security architecture review

Find the security gaps while it is still a document.

At design time a missing control is a paragraph to write. After build it is a system to change.

Upload a low-level design, or just its diagrams. Every architectural security question comes back answered, unanswered or ruled out — across the AWS, Azure and Google Cloud well-architected frameworks and the architecture-testable subset of ISO/IEC 27001 Annex A — each citing the page it came from.

This build ships recorded analyses: complete results produced by the real pipeline against real documents, with the document itself downloadable beside each one. Every screen says so.

The design document

Page 12 of the Ingram Micro solution design, showing the proposed Azure architecture.cited — page 12

Page 12 · section 5, Proposed architecture

The diagram, read

The architecture diagram extracted from page 12: an application gateway, a web server, and a primary and secondary SQL Managed Instance.
  • Application Gateway
  • Web Server
  • SQL MI Primary
  • SQL MI Secondary
  • edge · Sync

Four components and the edge between them, at the coordinates the extraction recorded.

A check is matched

CHK-DATA-REST-014

Databases encrypt data at rest

Not evidenced

Databases encrypt data at rest

The design is silent on how the managed instances encrypt at rest. Not a pass, and not a fail.

page 12, section 5 — Proposed architecture

A real page, its real diagram, and the finding that came out of it, from the recorded Ingram Micro analysis rather than an illustration. The citation points back at the page it started from. That is the whole product.

Reconciled by hand

What a security architecture review costs today.

  • Four catalogues open at once: AWS SEC 1–11, the Azure SE checklist, the Google Cloud recommendations, ISO 27001 Annex A.
  • A hundred-page design read end to end, because the security controls are in the back half.
  • The same question answered four times under four clause numbers, then reconciled by hand when the answers disagree.
  • Findings pasted into a deck with no page reference, so nobody downstream can check them.
  • Days of a senior reviewer, which is why the review is the thing that gets skipped.

One workbook, every row cited

What comes back, in about the time it takes to make coffee.

  • About sixty canonical checks, each already mapped into all four frameworks.
  • The whole document indexed and retrieved against, not the first few thousand characters summarised.
  • One question answered once, projected onto four clause numbers, so the frameworks cannot disagree.
  • Every row cites a page and a section, and clicking a citation opens the source text.
  • One workbook and a browser view, produced unattended, that a reviewer spends their day judging rather than assembling.

What it costs to run

~60

canonical checks

One per architectural question, each mapped into AWS, Azure, Google Cloud and ISO 27001 Annex A.

6–8

validation batches per document

About sixty checks, clustered by shared evidence rather than asked one at a time. A batch takes a second call when the model fetches a section, so calls run higher than batches. Seven of the eleven pipeline stages call no model at all.

≈ $1.50

target cost per document

Budgeted per document, and measured per call by the token ledger. A diagram-heavy design carries the cost: extraction is four passes per diagram, so seven to ten diagrams is most of this figure.

≈ 5 min

target wall clock

Upload to browser report and downloadable workbook, unattended, with no review gate in the middle.

The cost and time figures are the design targets this build is engineered against and measures itself with: the token ledger records model, tokens and dollars for every call. The recorded analyses were produced against live models, and their measured cost sits either side of the target — a three-diagram design came in well under it, a five-diagram one over. Treat these as budgets that are enforced, not as results from a production fleet.

What a reviewer gets

Doing this naively with a language model is worse than not doing it at all. A keyword match reports a pass on“TDE is not enabled”because the string contains “TDE”. A summary of the first few thousand characters reads the title page and the table of contents, and the security controls live in the back half. And a claim with no citation cannot be checked, which means it cannot be defended in front of the client who paid for it.

So the output is built to be argued with. Every row names where it came from, every suppression names why, and every confidence level names the signal it was derived from rather than asking the model how sure it feels.

Citations that resolve

Every claim points at a block id. Clicking “page 27, section 4.3.2” opens the actual source text and its neighbours. A citation you cannot open is decoration.

One canonical check layer

About sixty checks, each mapped to clauses in all four frameworks. The model is never asked the same question twice, so the frameworks cannot disagree with each other.

Nothing disappears silently

Every suppressed check is shown with the reason it was suppressed, and every extraction item carries the confidence it was read with, and why.

A workbook a reviewer can work

One row per clause with remarks and verdict columns, stable finding ids so an annotated workbook can come back in, and a first-class “not evidenced” sheet.

Four statuses, and a silent design is one of them

A design that never says how it encrypts its data has not passed and has not failed. It has a documentation gap, which is exactly what a low-level design review exists to find.

  • Passed

    pass

    The design says the control is in place, and the cited block actually says so.

  • Failed

    fail

    The design says it is not, or says something that contradicts it — "TDE is not enabled" is a fail, not a keyword match on "TDE".

  • Not evidenced

    not_evidenced

    The design is silent. A documentation gap, reported as one, on its own sheet of the workbook. Never counted as a pass.

  • Not applicable

    not_applicable

    The check does not apply to this design — no object storage, so no object-storage check. The reason is recorded and shown.

What comes back

The cloud frameworks are reported as alignment and ISO as architecture-testable control coverage. Neither is a compliance attestation and the report never calls it one. The two cards below are illustrative shapes with invented numbers, not a real assessment.

Illustrative sample — not a real assessment

Azure Well-Architectedalignment

21 of 42 applicable checks passed

3 critical failures6 high failures
Passed21
Failed9
Not evidenced12
Not applicable7
Not architecture-testable14

There is no percentage here, and there is no field to put one in. The denominator moves with the design, so a percentage punishes a thorough document.

Illustrative sample — not a real finding

No WAF in front of the internet-facing application gateway

CriticalHigh confidenceCHK-NET-WAF-002

Why this confidence: anchored evidence retrieved and the cited block verifiably contains the claim; the affected component was extracted with high confidence.

page 27, section 4.3.2 — Data Layerpage 31, section 5.1 — Perimeter

Those citations are buttons in the real report. Clicking one opens the source block and its neighbours, so a reviewer can check the claim rather than take it on trust.

azure_waf:SE:06aws_waf:SEC05-BP01iso27001:A.8.20

One finding, several framework references — not several rows a reviewer reconciles by hand.

Three ways in

A document

One PDF or Word low-level design. Cloud platform, compliance scope, data classification and stated controls are all derived from the text.

Diagrams only

Architecture images plus a short scope declaration, because without prose there is nothing to derive the cloud, the regimes or the environment from. This mode is a diagram sanity check, not a compliance review, and the report says so at the top.

Diagrams with written context

Images plus pasted text. The text becomes a document with anchors of its own, so it can be cited exactly like a real one.

How it works

Eleven stages. Seven of them never call a model.

That is not a cost trick, it is the reason the same document reviewed twice gives the same answer. Everything that can be ordinary deterministic code is ordinary deterministic code, and the model is asked only the questions that genuinely need judgement.

11 stages, upload to report, unattended7 deterministic — ordinary code, no model call4 call a model
  1. Parse and anchordeterministic

    Builds the anchored document model: every block carries a page, a section number and a stable id.

  2. Asset triagemodel call

    Filters image candidates down to real diagrams.

  3. Diagram extractionmodel call

    Reads zones, components, edges and labels out of each diagram.

  4. Indexdeterministic

    BM25 plus embeddings over the document, in process.

  5. Profilemodel call

    Determines cloud, services, environment, data classification and compliance scope.

  6. Component linkingdeterministic

    Matches diagram components to the prose that describes them.

  7. Check selectiondeterministic

    Selects applicable checks and records every suppression with its reason.

  8. Evidence assemblydeterministic

    Retrieves anchored evidence for each selected check.

  9. Validationmodel call

    Clustered batch validation against the canonical check layer.

  10. Scoringdeterministic

    Projects results onto framework clauses and derives confidence.

  11. Reportdeterministic

    Builds the web report payload and the Excel workbook.

Parsing, indexing, component linking, check selection, evidence assembly, scoring and report generation are ordinary code. Only asset triage, diagram extraction, profiling and validation call a model — and validation, the expensive one, is six to eight batches because there are about sixty canonical checks clustered by shared evidence, not two hundred framework clauses asked one at a time.

The canonical check layer

One question, answered once, projected onto four clause numbers

The four frameworks are largely the same checks wearing different clause numbers. Strip out what a design document cannot answer and roughly a hundred and twenty-five testable items across the four collapse to about sixty distinct architectural questions. So the knowledge base is not four parallel rule sets. It is one canonical layer with framework clauses attached.

One canonical check — asked once

Is data at rest encrypted with managed keys?

CHK-DATA-REST-001trigger: absenceseverity: high

Evidence is retrieved once, the model answers once, and the answer carries the block it was read from.

  • AWS Well-Architected

    SEC08-BP01

    Security pillar, SEC 8

  • Azure Well-Architected

    SE:07

    Security checklist

  • Google Cloud

    SBD-04

    Secure by default

  • ISO/IEC 27001:2022

    A.8.24

    Use of cryptography

The model is never asked the same question twice, so it cannot contradict itself across frameworks. One answer is projected onto four clause numbers. A clause passes when every check mapped to it passes and fails when any of them fails.

A clause with no architecture-testable check mapped to it is reported in its own band — not counted as a pass, and not held against the design. Physical controls and incident-response procedure are not things a low-level design can answer.

It is also why validation is six to eight batches rather than two hundred: about sixty checks clustered by shared evidence, instead of roughly two hundred framework clauses asked one at a time.

What this is not

Not a compliance attestation

Cloud frameworks are reported as alignment and ISO as architecture-testable control coverage. A certification body signs attestations; a review tool does not.

Not a review of the running system

It reads what the design says. A control the document claims but the deployment never received will read as a pass here — and the citation shows you exactly which sentence to go and verify.

Not the whole of a framework

Physical controls, incident-response procedure and secure-coding practice cannot be judged from an architecture document. They are reported in their own band, counted separately, and never quietly dropped.