Skip to main content

SbD-ToE Model Adherence Checklist

What this document is for​

This checklist answers a different question from the KPIs and KRIs:

InstrumentQuestion
This checklist"Is this team/organisation doing SbD-ToE?"
Domain KPIs"How well is it working?"
Executive KRIs"What risk are we exposed to?"

The checklist is an adoption instrument - it assesses whether the processes, controls and artefacts exist and are being followed. It does not measure the quality of the results - for that, see kpis-governanca and kpis-kri-executivo.

Main uses:

  • Team self-assessment before a security review
  • Internal audit of compliance with the model
  • Contractual requirement for suppliers and third parties
  • Onboarding of new teams to the SbD-ToE programme

How to use it​

Application: The checklist is applied per application (or per portfolio for an organisational assessment). For each item, the following is recorded:

AnswerMeaning
✔Compliant - evidence available
✗Non-compliant
~Partially compliant - in progress or with identified gaps
N/ANot applicable to the specific context (requires justification)

Risk levels: The items are marked with the level from which they are mandatory:

MarkingMandatory status
SAlways - regardless of the risk level of the application
L1+Mandatory from L1 (low risk)
L2+Mandatory from L2 (medium risk)
L3Only for L3 applications (high/critical risk)

The levels are cumulative: L3 includes all L2+ items, which include all L1+ items, which include all S items.

Recommended assessment cadence: L1 - annual; L2 - half-yearly; L3 - quarterly.


1 - Classification and Risk Management​

Policies: classificacao-risco, aceitacao-risco, revisao-periodica-risco, gestao-excecoes

#ItemLevelPolicy
1.01Each application has a formal risk level (L1/L2/L3) assigned, using the three mandatory axes: Exposure, Data, ImpactSpol-02
1.02The classification is formally approved (Tech Lead at minimum)L1+pol-02
1.03The classification is reassessed when the defined triggers occur: new external integration, new data type, change of exposure, change of architecture, new user profileSpol-02, pol-04
1.04The classification is reassessed periodically: L1 annual, L2 half-yearly, L3 quarterlyL1+pol-04
1.05For L3, the periodic reassessment requires AppSec + CISO approvalL3pol-02
1.06Exceptions to controls have a defined maximum TTL (ceilings of Policy 05 §7: L1 90 days; L2 60 days (Low/Medium) and 30 days (High); L3 30 days (Low/Medium) and 14 days (High); Critical 7 days with a remediation plan, not acceptable at L3), technical justification and documented compensating mitigationSpol-03, pol-05
1.07Exceptions are reassessed before expiry - there are no expired exceptions without renewal or formal closureSpol-05

2 - Requirements, Threats and Architecture​

Policies: requisitos-seguranca, threat-modeling, arquitetura-segura, rastreabilidade

#ItemLevelPolicy
2.01The security requirements applicable to the application's level are mapped and documented (essential subset at L1; full catalogue at L2/L3)L1+pol-07
2.02Each requirement has a defined validation criterionL2+pol-07
2.03Traceability is bidirectional: requirement ↔ control ↔ evidenceL2+pol-06
2.04Pipeline logs and SAST/SCA/DAST reports are retained according to the minimum periods (L2: 90 days; L3: 1 year)L2+pol-06
2.05Threat modelling has been carried out using STRIDE as the base methodologyL2+pol-08
2.06Threat modelling is reassessed at the defined triggers: new integration, new data type, change of architectureL2+pol-08
2.07Up-to-date security architecture documentation (solution-architecture.md or equivalent) existsL2+pol-09
2.08Architecture decisions with a security impact are documented in ADRs with context, alternatives considered and security impactL2+pol-09
2.09Applications that process personal data have a LINDDUN analysis (at L1, in lightweight form)L1+pol-08
2.10Threat modelling has an independent review (by an entity not involved in the design)L3pol-08
2.11There is a gate in the CI/CD pipeline that verifies whether the architecture documentation is up to dateL3pol-09

3 - Dependencies and SBOM​

Policies: dependencias, sbom, excecoes-cve, atualizacao-automatica

#ItemLevelPolicy
3.01A lock file is generated and versioned in the repositoryL1+pol-10
3.02SCA is integrated into the pipeline and produces results for every buildL1+pol-17
3.03Critical and high SCA findings block the pipelineL2+pol-10, pol-17
3.04New dependencies require formal approval with licence validationL2+pol-10
3.05SBOM is generated automatically per release, includes transitive dependencies and is associated with the artefact with a reference to the commit SHAL2+pol-11
3.06SBOM is archived for the mandatory minimum period (L2: 1 year; L3: 2 years)L2+pol-11
3.07CVE exceptions have an explicit type (not affected / fix not available / fix deferred / risk accepted), a compensating control and a TTL according to levelSpol-12
3.08The CVE triage SLA is met: Critical ≤ 24h, High ≤ 48h; with an indication of active exploitation ≤ 4hSpol-12
3.09An automatic dependency update process (Renovate, Dependabot or equivalent) is active and configuredL2+pol-13
3.10SBOM is digitally signed, with signature verification at deployL3pol-11
3.11Complete provenance is recorded (SLSA attestation or equivalent)L3pol-11
3.12Medium SCA findings block the pipelineL3pol-10

4 - Secure Development​

Policies: guidelines-desenvolvimento, revisao-codigo, uso-ferramentas-apoio

#ItemLevelPolicy
4.01SAST is integrated into the pipeline for all active repositoriesL1+pol-19
4.02Secret detection is active in the pipeline and blocks any findingSpol-17, pol-18
4.03There are no credentials, tokens, keys or passwords hardcoded in code, configuration files or versioned environment variablesSpol-18
4.04Self-approval is blocked by repository configuration (no one approves their own code)Spol-15
4.05Suppressions of SAST rules (mutes/waives) have formal approval with the finding ID, technical justification, owner and validity periodSpol-14
4.06There is a set of secure development guidelines derived from recognised sources (OWASP, CWE, NIST) and operationalised in linters or SAST rulesL2+pol-14
4.07Code review with an explicit security checklist is mandatory for all code that goes to productionL2+pol-15
4.08Critical and high SAST findings block the mergeL2+pol-15, pol-17
4.09AppSec review is mandatory for authentication, authorisation, sensitive data and security configuration codeL2+pol-15
4.10The use of generative AI tools for code production follows an approved policy, with mandatory human review and no sending of confidential dataL2+pol-16
4.11Guidelines are operationalised as policy-as-code and deviations require AppSec approvalL3pol-14

5 - CI/CD and Pipeline​

Policies: cicd-seguro, gestao-segredos

#ItemLevelPolicy
5.01The pipeline configuration is versioned as code and subject to code reviewL2+pol-17
5.02The security gates are in blocking mode (not just report / continue-on-error)L2+pol-17
5.03The gate thresholds are documented and versioned (e.g. gates-config.yaml)Spol-17
5.04The pipeline identity is dedicated, with least privilege - without auto-merge permissionSpol-17
5.05Security gate bypasses have recorded formal approval: owner, technical justification, reference to a ticket/exception, timestampSpol-17
5.06Artefacts are associated with the commit SHA that produced them and are reproducibleSpol-17
5.07Pipeline secrets are injected via a centralised vault (Vault, AWS Secrets Manager, Azure Key Vault or equivalent) with access auditingL2+pol-18
5.08There is segregation of secrets between production and non-production environmentsL2+pol-18
5.09The pipeline uses OIDC / workload identity with a short TTL (≤ 1h) instead of long-lived credentialsL3pol-18
5.10Automatic rotation of pipeline credentials is configuredL3pol-18
5.11Artefacts are digitally signed and the signature is verified before deployL3pol-17, pol-25

6 - IaC and Containers​

Policies: iac-seguro, aprovacao-plan-iac, containers-seguros, golden-base-images

#ItemLevelPolicy
6.01IaC is managed as code: versioned, reviewed and applied via pipeline - never manually in productionSpol-21
6.02The principle of least privilege is applied: no wildcards in IAM policies in productionSpol-21
6.03IaC linting and scanning are integrated into the pipeline, with critical and high findings blocking the applyL2+pol-21
6.04The IaC apply requires formal approval before execution, recorded with identity and timestampL2+pol-22
6.05Container images use bases of verified origin, referenced by digest (never by a mutable tag such as latest)L2+pol-23, pol-24
6.06Images are built with a multi-stage build and run as a non-root userL2+pol-23
6.07Secrets are not present in ARG or ENV of the Dockerfile, nor in image layersSpol-23, pol-18
6.08Image vulnerability scanning is integrated into the pipeline with critical and high findings blockingL2+pol-23
6.09There is a catalogue of golden base images with defined patching SLAs and a deprecation processL2+pol-24
6.10There is segregation of duties in the IaC apply: author ≠ reviewer ≠ executorL3pol-22
6.11The admission controller is active in blocking mode (enforce / Deny) - not just audit or warnL3pol-23
6.12Medium IaC and container findings block the pipelineL3pol-21, pol-23

7 - Security Testing​

Policies: dast-fuzzing, estrategia-testes, release-seguro, aprovacao-release, pentesting

#ItemLevelPolicy
7.01There is a centralised findings management platform (DefectDojo or equivalent) to consolidate SAST, DAST and SCAL2+pol-19
7.02Finding resolution SLAs are defined by severity and findings are tracked against those SLAsL2+pol-19
7.03High/Critical severity false positives have technical evidence and AppSec approval before being discardedSpol-19
7.04DAST is integrated into the staging environment with coverage of the priority endpointsL2+pol-01, pol-19
7.05There is a pre-release gate that aggregates SAST/DAST/SCA/secret detection with an APPROVED/REJECTED result before any deploy to productionL2+pol-20, pol-26
7.06Open critical or high findings block the release (unless there is an active formal exception)L2+pol-20
7.07Release approval is formally recorded: who approved, when, reference to the gate reportL2+pol-26
7.08L3 applications have a pentest carried out before first going into productionL3pol-36
7.09L3 applications have an annual pentest with signed formal authorisation (scope, period, rules of engagement)L3pol-36
7.10Critical pentest findings block going to production and require a mandatory retest after remediationL3pol-36
7.11DAST covers ≥ 80% of the endpoints in productionL3pol-01

8 - Deployment and Operations​

Policies: deploy-seguro, rollback, monitorizacao-pos-deploy, logging-estruturado, monitorizacao-seguranca, gestao-alertas, irp

#ItemLevelPolicy
8.01Deploys use the artefact produced by the pipeline, never rebuilt (immutable digest)Spol-25
8.02Production secrets are injected at runtime via a vault (not in static versioned configuration)Spol-18, pol-25
8.03Rollback activation criteria are defined (error rate, latency, health check failures, security alert)Spol-27
8.04Emergency deploys (outside the normal process) have post-facto approval recorded in less than 24hSpol-25, pol-26
8.05There is a rollback strategy that is documented, tested and executable via pipeline (never directly by hand)L2+pol-27
8.06There is a post-deploy observation period with monitored metrics and formal closure criteria (L2: 30 min; L3: 60 min)L2+pol-28
8.07Security event logs are in a structured format (JSON) with a mandatory minimum schema (timestamp UTC, level, event.action, application, trace.id)L2+pol-29
8.08Logs do not contain passwords, full tokens, card data or unmasked PIISpol-29
8.09Security logs are centralised with a minimum retention of 1 year (L2) / 2 years for security and 3 years for audit (L3)L2+pol-29
8.10Critical security events have defined alerts with runbooks (diagnosis, immediate actions, escalation)L2+pol-30, pol-31
8.11Each alert has a defined response SLA and automatic routingL2+pol-31
8.12There is an Incident Response Plan with activation criteria, structured phases and playbooksL2+pol-32
8.13Security incidents have a post-mortem carried out in less than 5 working daysL2+pol-32
8.14Automatic rollback is configured for all artefact types with RTO ≤ 15 minutesL3pol-27
8.15Applicable regulatory notifications made within the legal time limits (Policy 32 §6): GDPR ≤ 72h (Article 33); NIS2 early warning ≤ 24h and notification ≤ 72h; DORA initial notification within the time limits of Delegated Regulation (EU) 2025/301; CRA early warning ≤ 24h; AI Act ≤ 15 days; ≤ 10 days in the event of death; ≤ 2 days in the event of a widespread infringement or of a serious incident as defined in Article 3, point (49)(b) (Article 73(2) to (4))Spol-32

9 - Governance and Training​

Policies: contratacao-segura, rastreabilidade-organizacional, kpis-governacao, formacao-seguranca

#ItemLevelPolicy
9.01Each application has a formally designated security owner (Security Champion or equivalent)L2+pol-34
9.02There is a compliance record per application with minimum fields: level, owner, chapters verified, active exceptions, date of last validation and date of the nextL2+pol-34
9.03Deviations identified in the compliance record have corrective action with an owner and a deadlineSpol-35
9.04There is a security training programme with training tracks defined per profile (developer, QA, DevOps, PO, Tech Lead)L2+pol-37
9.05Onboarding of new people includes security training with a minimum assessment score of 80%L2+pol-37
9.06There is a set of security KPIs defined with data sources, owners and collection cadenceL2+pol-35
9.07Suppliers and third parties undergo security due diligence before contract (security policy, vulnerability management, incidents in the last 12 months)L2+pol-33
9.08Contracts with suppliers include SbD-ToE clauses (incident notification, prohibition of subcontracting without approval, termination for non-compliance)L2+pol-33
9.09Offboarding of suppliers and employees includes revocation of all access on the same day for planned departures, within ≤ 2 hours for unplanned departures and immediately for security reasonsSpol-33
9.10L3 suppliers deliver SBOM per release and periodic security testing reportsL3pol-33
9.11There is a Security Champion with specific training, with active participation in a champions community (monthly meetings)L3pol-37
9.12Practical security exercises are carried out periodically (labs, CTF or incident tabletop)L3pol-37

Summary and scorecard​

This table serves to calculate adherence per domain after completing the checklist.

DomainS itemsL1+ itemsL2+ itemsL3 itemsTotal
1 - Classification and Risk42017
2 - Requirements and Threats007311
3 - Dependencies and SBOM225312
4 - Secure Development514111
5 - CI/CD and Pipeline404311
6 - IaC and Containers305312
7 - Security Testing106411
8 - Deployment and Operations408315
9 - Governance and Training207312
Total255462496

Reading the score​

Score on S itemsInterpretation
< 70%The model is not adopted - fundamental controls missing
70% – 89%Partial adoption - gaps in absolute controls that require priority remediation
≥ 90%Baseline respected - now assess the items per level
Total score per level (S + L1+ + L2+ + L3)Interpretation
≥ 80% on S + L1+Compliant for L1 applications
≥ 80% on S + L1+ + L2+Compliant for L2 applications
≥ 80% on all itemsCompliant for L3 applications

Note: Items marked S with a ✗ answer cannot be compensated for by the score in other areas - they represent absolute controls that must be resolved regardless of the overall score.


References​

DocumentRelation
kpis-governancaDomain KPIs for measuring effectiveness (complement to this checklist)
kpis-kri-executivoKRIs for CISO/board reporting
020-assets/policies/Full text of the 37 policies on which this checklist is based
addon/12-processo-excecoesCanonical exception management process (items 1.06, 1.07, 3.07, 4.05)