

- Description
- Porte de chambre forte d'une banque, avec ses gros verrous cylindriques et ses volants de manœuvre.
- Source
- auteur non indiqué (architectes York and Sawyer) · original page
- Licence
- PD Public domain
Security
This domain measures the software’s and its build chain’s resilience to errors and attacks, from the developer’s perspective: secrets, dependencies, code vulnerabilities, threats…
In brief
This domain measures the software’s and its build chain’s resilience to errors and attacks, from the developer’s perspective: secrets, dependencies, code vulnerabilities, threats anticipated from the design stage, known composition of the deliverable (SBOM), artifact provenance. Data security (GDPR, privacy) belongs to the data matrix: 08 — Security, Privacy, and Compliance.
Level: 🟢→🔴 · Domain code: SEC (DL matrix)
Why this domain#
The most costly security incidents rarely come from sophisticated attacks: a secret committed in history, a vulnerable dependency never updated, an over-privileged service account, SQL injection in a procedure built through concatenation. The software supply chain has become a target in its own right: compromising an upstream component affects all its consumers. The cost of ignorance is measured in response time: how many hours to know whether we are exposed to a new public vulnerability?
For SQL and admin scripts: parameterized dynamic queries, least-privilege principle for processing accounts, no secrets in scripts, connection strings outside the repository. These rules are plain and highly cost-effective.
What this domain measures#
- Axis: from “we fix it when it happens” to “we anticipate, detect, and prove provenance.”
- Key indicators: response time to a public vulnerability (from publication to the response “are we exposed?”); age of open vulnerabilities; share of components covered by an inventory (SBOM); secrets detected in history.
- Unit: hours/days; %; count.
Five-level table#
| Level | Short name | Promise | Typical indicator (orders of magnitude) |
|---|---|---|---|
| 1 | Confident | We do not know whether we are exposed. | No inventory; secrets in scripts |
| 2 | Hygienic | The most avoidable errors (secrets, default passwords, excessive rights) are no longer present. | Secrets out of repository; annual rights review |
| 3 | Detected | A known vulnerability in code or a dependency is flagged before delivery. | Dependency and code analysis in CI; critical fix < 15 days |
| 4 | Anticipated | Threats are considered before coding; we know in less than one day whether a public flaw affects us. | Threat modeling; SBOM; response < 24 h |
| 5 | Proven | Each delivered artifact has verifiable provenance, and a component compromise is contained. | Signed provenance; generalized least privilege; regular attack exercises |
Milestones by level#
| ID | Milestone | Verifiable evidence |
|---|---|---|
| DL-SEC-1.1 | An application security owner is identified | Name in the org chart |
| DL-SEC-1.2 | Access accounts for repositories and build servers are individual | Account review |
| DL-SEC-1.3 | Default passwords are changed; workstations and build servers are up to date | Spot check |
| DL-SEC-2.1 | No secret is in plain text in the current repository (connection strings, keys) | Empty automated search |
| DL-SEC-2.2 | A secret vault (or controlled equivalent) is used | Secrets read at runtime |
| DL-SEC-2.3 | Access is reviewed at least annually (least-privilege principle) | Review report |
| DL-SEC-2.4 | Dynamic queries are parameterized (no input concatenation) | Review of sample procedures |
| DL-SEC-3.1 | Dependency analysis runs in CI and blocks on critical issues | A deliberately vulnerable component is rejected |
| DL-SEC-3.2 | Security-focused static analysis runs on every change | Attached report |
| DL-SEC-3.3 | Previously committed secrets are detected in history and revoked | History audit report; secrets rotated |
| DL-SEC-3.4 | Critical fixes are applied within < 15 days (high: 30 days) | Lead time measurement |
| DL-SEC-3.5 | Authentication and administration logs are retained | Viewable logs |
| DL-SEC-4.1 | Threat modeling (e.g., STRIDE) precedes structural changes | Dated document per major workstream |
| DL-SEC-4.2 | A component inventory (SBOM, CycloneDX or SPDX format) is generated for each delivery | SBOM attached to the artifact |
| DL-SEC-4.3 | The response “are we exposed?” to a public vulnerability takes < 24 h | Timed exercise |
| DL-SEC-4.4 | Security requirements are drawn from a framework (ASVS type) and tested | Requirements → tests matrix |
| DL-SEC-4.5 | Processing accounts have minimal rights, by function | Service account rights review |
| DL-SEC-5.1 | Artifact provenance is attested and verified before deployment (signature, target SLSA level) | Pipeline verification |
| DL-SEC-5.2 | Build is isolated and reproducible; dependencies are pinned and fingerprint-verified | Chain review |
| DL-SEC-5.3 | Attack exercises (penetration test, red team) take place at least annually, with tracking of findings | Reports and closures |
| DL-SEC-5.4 | A component compromise is contained (segmentation, automatic secret rotation) | Full rotation exercise < 1 day |
Detailed reading by level#
🟢 Level 1 — Confident#
- Signs: “no one wants our data”; connection strings in scripts; shared admin account.
- Gain: zero friction.
- Does not guarantee: anything, precisely. This is a level of unmeasured exposure.
- Difficulty: 1/5 · Effort: 1/5.
🟢 Level 2 — Hygienic#
- Signs: secrets moved out of code, individual accounts, rights review, parameterization of dynamic queries.
- Gain: elimination of most avoidable incidents.
- Does not guarantee: detection of new flaws; it is static.
- Difficulty: 2/5 · Effort: 2/5.
🟡 Level 3 — Detected#
- Signs: CI flags vulnerable components, secrets, and dangerous patterns. A secret already committed is considered compromised even after deletion: history still contains it; it must be revoked.
- Gain: known risk is handled before delivery.
- Does not guarantee: absence of unknown flaws, nor design threats.
- Difficulty: 3/5 · Effort: 3/5.
🔴 Level 4 — Anticipated#
- Signs: threats are considered before coding (who attacks, through what path, what impact; STRIDE categories: spoofing, tampering, repudiation, information disclosure, denial of service, privilege escalation). An SBOM makes it possible to respond in hours to a public alert on a library.
- Gain: fast response and informed decisions.
- Does not guarantee: prevention of attacks on the build chain itself.
- Difficulty: 4/5 · Effort: 4/5.
🔴 Level 5 — Proven#
- Signs: each artifact is signed with provenance attestation; dependencies are pinned by fingerprint; secret rotation is automatable; simulated attacks test the defense.
- Gain: verifiable trust and limited blast radius.
- Does not guarantee: invulnerability — this is risk reduction, not proof of absence of flaws.
- Difficulty: 5/5 · Effort: 5/5.
Partial achievement and rating#
Apply the rating rule.
- 0.5 on DL-SEC-3.1: dependency analysis runs, without blocking.
- 0.5 on DL-SEC-4.2: SBOM produced for the application, not for SQL/PowerShell scripts embedded in the kit.
- A partial 5: artifact signing in place, deployment-time verification not yet mandatory.
“Deleted” secret. Symptom: the file no longer contains the key. Cause: history keeps it. Remedy: revoke and renew, then clean history if necessary.
Alerts with no owner. Symptom: 300 vulnerabilities open for a year. Cause: no threshold, no owner. Remedy: block on exploitable critical issues, remediate by deadline, handle false positives in a traceable way.
Measure response time (“are we exposed?”), not the number of vulnerabilities: a large estate with an up-to-date inventory responds in one hour; a small one without inventory, in one week.
Move to the next level#
Possible means (optional)
- 1 → 2: secret hunt, vault, individual accounts, rights review.
- 2 → 3: dependency and static analysis in CI, history detection, agreed fix lead times.
- 3 → 4: threat modeling workshops (1 hour per workstream), automatic SBOM, requirements framework.
- 4 → 5: signing and attestation, fingerprint locking, attack exercises.
A file-reading library is announced vulnerable on a Friday. Level 1: we do not know if we use it. Level 4: a query on the SBOMs of the last three versions answers in 20 minutes; fix backported to supported versions during the day (04).
Support for security review and threat modeling: gain 3/5, risk 4/5 (false sense of security, code or secret leakage to an external service). Guardrail: never put secrets or client data in a prompt; use contractually controlled services.
“Zero vulnerabilities displayed” is achieved by configuring the tool to see nothing. Measure response time and inventory coverage.
See also#
- Neighbors: 05 CI/CD: Continuous Integration and Delivery · 06 Deployment and Operations · 08 Observability and Reliability · 02 Code Quality.
- Other matrices: Data — Security, Privacy, and Compliance · BI — RLS Security and Access · Project — Risk Management (RSK).
- Practice: CI/CD · Git In Depth · Project Management Pitfalls and Best Practices (Cross-Cutting Summary) · AI in Planning and Version Control Tools.
- Glossary · Rating: How to Read Scores, Ratings, and Legend.
✻ Written by Claude Sonnet 5.5