Skip to main content

KPIs and Metrics - Containers and Images

Scope and purpose​

The indicators of this domain assess the security of the lifecycle of container images: from their composition and the absence of known vulnerabilities, to signing and provenance verification, the application of admission policies at runtime, and the speed of response to critical CVEs in production images.

Containers introduce a specific measurement challenge: the image is immutable after the build, but the vulnerability ecosystem is dynamic. An image that was secure at the moment of the build can become vulnerable 48 hours later. The CNT indicators must reflect this continuous character, not only the state at the moment of deploy.

The CNT indicators feed the cross-cutting dimensions T-01 (Control coverage), T-03 (Resolution speed) and T-05 (Supply chain).


Denominator and portfolio foundation​

The indicators of this domain use as their denominator F-02 - applications with a formal risk classification (Ch. 01, CLA-K01). The percentages are interpretable only in relation to the set of applications classified at the relevant risk level - not in relation to the total portfolio or to ad-hoc subsets.

See kpis-governanca.md - section "Portfolio foundation" - for the SbD-ToE adoptability funnel and the relation between denominators.


Conventions​

SymbolMeaning
✔Mandatory threshold for this level
-Not applicable or not mandatory at this level
↓Inverse indicator - a lower value indicates better performance

Thresholds are cumulative: L3 includes all the obligations of L1 and L2.

Indicator types:

CodeMeaning
Q%Quantitative, percentage
Q#Quantitative, count
QtQuantitative, temporal (days)

Indicator catalogue​

IDIndicatorTypeL1L2L3Dim. TPeriod
CNT-K01% of production images without critical CVEs (CVSS ≥ 9.0) without a valid formal exceptionQ%≥ 70%≥ 90%100%T-01, T-03Weekly
CNT-K02MTTR - time from the identification of a critical CVE in a production image to its replacement/patchQt≤ 30d≤ 7d≤ 3dT-03Per event
CNT-K03% of production images digitally signed and with signature verification before deployQ%-≥ 70%100%T-01, T-05Per release
CNT-K04% of workloads in an orchestrator with an admission controller policy active and in blocking modeQ%-≥ 80%100%T-01Monthly
CNT-K05% of production base images updated within the cycle defined by policy (without mutable tags)Q%≥ 70%≥ 90%100%T-01, T-05Monthly
CNT-K06% of images with an associated SBOM accessible in the registry or artefact repositoryQ%≥ 50%≥ 85%100%T-05Per release
CNT-K07# of workloads running as root (UID 0) without a formal technical justificationQ# ↓≤ 5= 0= 0T-01Weekly

Complementary definitions​

CNT-K01 - CVE without a formal exception: an image is compliant if it has no critical CVEs, or if the identified CVEs have an active (unexpired) formal exception with documented compensation. Images with critical CVEs without an exception, even if the patch is not available, do not satisfy this indicator - they must have a formal exception.

CNT-K02 - Container MTTR: counts from the date the CVE is made available in NVD/OSV (or its detection by the scanner, if later) to the date of deploy to production of the corrected image. If the patch is not available upstream, replacing the base image with an alternative without the vulnerability also closes the indicator.

CNT-K03 - Signature verification: the existence of a signature without a verification process before deploy does not satisfy this indicator. Verification may be implemented via an admission controller (Kyverno + Cosign verification), or through explicit verification in the deploy pipeline with a traceable log.

CNT-K04 - Admission controller in blocking mode: policies configured in audit or warn mode do not satisfy this criterion. Only enforce (Kyverno) or Deny (OPA Gatekeeper) count. Exceptions to policies must be formal objects in the orchestrator (not global deactivation).

CNT-K05 - Mutable tag: a mutable tag (e.g. latest, stable, main) points to different layers over time, making it impossible to guarantee the reproducibility and auditability of what is in production. Immutable tags require reference by digest (image@sha256:...) or by a semantic tag pinned and immutable in the registry.

CNT-K07 - Execution as root: includes containers with an explicit securityContext.runAsUser: 0 or without runAsNonRoot: true defined. Legacy applications with a formal justification and active compensation (e.g. seccomp, AppArmor, restricted capabilities) may have an exception, but are counted in this indicator until resolution.


Collection and instrumentation​

IndicatorPrimary sourceReference toolsAutomation
CNT-K01Image vulnerability scanner + exception registerTrivy, Grype, Snyk Container + DefectDojoYes
CNT-K02CVE feed + deploy log + scan historyNVD/OSV + pipeline timestampsPartial
CNT-K03Image registry + deploy logsCosign, Notary + admission controller logsYes
CNT-K04Orchestrator configuration (Kubernetes manifests)Kyverno, OPA Gatekeeper, PolarisYes
CNT-K05Image registry + update policyDependabot for containers, Renovate, Trivy advisoriesYes
CNT-K06Artefact repository + build processSyft + OCI registry with support for SBOM attachYes
CNT-K07Workload configuration in the orchestratorKube-bench, Polaris, Checkov (Kubernetes)Yes

Cross-references​

DocumentRelation
addon/00-catalogo-requisitos.mdRequirements CNT-001..012 that underpin the indicators
addon/10-excecoes-containers.mdContainer exception process (CNT-K01, CNT-K04)
addon/07-vulnerabilidades-imagens.mdVulnerability management that feeds CNT-K01/K02
Ch. 14 kpis-governanca.mdCross-cutting dimensions T-01, T-03, T-05