Skip to main content

Traceability Model between Risks, Requirements and Controls

Objective​

Throughout the software lifecycle, ensuring that a security requirement has actually been implemented demands more than its definition - it demands that the link between risk, requirement, technical control and evidence be explicit, traceable and auditable.

This model describes how to build that traceability chain, articulating the two identification systems of the SbD-ToE:

  • The canonical ID (AUT-001, LOG-003) - stable normative reference originating in the catalogue;
  • The operational tag (SEC-L2-AUT-MFA) - contextualised instance adopted by the project.

The distinction and the relationship between the two are detailed in Taxonomy and Traceability.

This model supports:

  • Systematic verification of security coverage throughout the lifecycle;
  • Preparation of internal, external and regulatory audits;
  • Integration with ALM tools (Jira, ADO, Confluence, GitHub), risk management and compliance.

Structure of the Traceability Matrix​

Each row of the matrix represents the direct link between an identified risk and the security requirement that addresses it, with the corresponding control, validation method and expected evidence.

Recommended columns​

ColumnContentExample
RiskIdentifier and summary description of the risk (originating in the threat analysis)RISK-AUTH-01 - unauthorised access due to absence of MFA
Canonical IDNormative reference from the SbD-ToE catalogueAUT-001
Operational TagInstantiation of the requirement in the project contextSEC-L2-AUT-MFA
Control TypeClassification of the control: Preventivo, Detetivo or CorretivoPreventivo
ValidationObjective verification methodAutomated test in CI/CD
EvidenceAuditable artefact producedLog of authentication failure without MFA

Example Matrix​

The following is an example of instantiating the requirements catalogue for a concrete project. The full catalogue can be consulted in Base Requirements List.

RiskCanonical IDOperational TagControl TypeValidationEvidence
Unauthorised access due to absence of a second factorAUT-001SEC-L2-AUT-MFAPreventiveFunctional test - login without MFA failsFailed authentication log; screenshot
Insufficient logging for incident responseLOG-002SEC-L2-LOG-DETALHEDetectiveReview of logs at runtimeSample log with who/when/what/where fields
SQL injection due to absence of input validationVAL-004SEC-L2-VAL-SQLIPreventiveSAST tests + functional test with payloadScanner report; code with prepared statements
Passwords stored in clear textAUT-006SEC-L1-AUT-PLAINPreventiveConfiguration audit + scanEvidence of hashing; absence of clear-text credentials

Examples by Technical Domain​

DomainCanonical IDOperational Tag (L2 example)Control TypeValidationEvidence
AuthenticationAUT-005SEC-L2-AUT-IDLEPreventiveIdle timeout testExpired session log; server configuration
Access ControlACC-002SEC-L2-ACC-LEASTPRIVPreventiveRole review + test with restricted userPermissions matrix; access denied log
LoggingLOG-003SEC-L2-LOG-INTEGRIDADEDetectiveAttempted log modification; permissions checkEvidence of protection (read-only, remote syslog, WORM)
Error HandlingERR-001SEC-L1-ERR-EXPOSICAOPreventiveInduce an error; check the response to the clientGeneric message on the client; stack trace only in the internal log
Secure ConfigurationCFG-003SEC-L1-CFG-HARDCODEPreventiveStatic analysis + repository reviewAbsence of secrets in the source code; use of a vault
Dependencies and SDKsAPI-006SEC-L2-API-SDKPreventive/CorrectiveSCA scan; SBOM verificationSBOM generated; audited dependency report
Sensitive dataENC-002SEC-L2-ENC-RESTPreventiveReview of database and storage configurationScreenshot of encryption policies; KMS/Vault output
Secure communicationINT-003SEC-L1-INT-TLSPreventiveTLS test; certificate scannerTLS 1.2+ active; valid certificate; Strict-Transport-Security

How to apply this model​

  • Each row represents the link between an identified risk and the canonical requirement that addresses it;
  • The operational tag is the identifier that travels into the backlog, the code and the pipeline - it is what makes the requirement traceable to the lifecycle artefact;
  • The control type classifies the nature of the measure: Preventivo (prevents the incident), Detetivo (detects it when it occurs) or Corretivo (mitigates the consequences);
  • Validation must be objective and reproducible - automated test, static analysis, documented manual review;
  • Evidence is the artefact that proves, in an audit context, that the control is active and effective.

Recommended organisation per project​

Each project must maintain its own traceability matrix, organised by:

  1. Header - identification of the application, risk level (L1/L2/L3) and review date;
  2. Risk mapping - originating in the threat analysis (threat modelling);
  3. Traceable table - with the fields described above;
  4. Cross-reference to the Base Requirements Catalogue and the Validation Plan;
  5. Pointers to evidence - directories, commits, screenshots, pipeline reports.

Suggested formats:

  • .md versioned in Git - for native traceability in the repository;
  • .csv / .xlsx - for export and quick analysis;
  • Custom fields in Jira, ADO, Confluence or equivalent ALM tools.

Integration into the lifecycle​

The matrix must be revisited:

  • In requirements reviews at the start of each cycle;
  • During release gates and go/no-go processes;
  • As support for formal risk acceptance and exception documentation;
  • At audit checkpoints - ISO 27001, PCI-DSS, DORA, or equivalents.

Supporting tools​

PurposeSuggested tool
Lightweight versioningGit + Markdown
Analysis and filteringExcel / CSV
ALM integrationJira, Azure DevOps, GitHub Issues
Static analysis (SAST)SonarQube, Semgrep, CodeQL
Dynamic testing (DAST)OWASP ZAP, Burp Suite
Dependency analysis (SCA)Trivy, Snyk, Dependabot
Secrets managementHashiCorp Vault, AWS Secrets Manager, Azure Key Vault
Log / alert centralisationSIEM (ELK Stack, Splunk, Microsoft Sentinel)

Good practices​

  • Keep one matrix per application or critical system, not a single global matrix;
  • Use the matrix as an internal audit trail - update it at every release;
  • Version every change to the matrix and to the associated evidence;
  • Always reference the canonical ID (AUT-001) and the operational tag (SEC-L2-AUT-MFA) - the first for normative traceability, the second for operational traceability;
  • Document exceptions with justification and formal approval; see Exception Management.

For the full list of canonical requirements with acceptance criteria by domain, consult the Base Requirements Catalogue. For the recommended validation methods and expected evidence by domain, consult the Requirements Validation Plan.