WAF-SEC-110 – Supply Chain Security
Beschreibung
Alle Container-Images MÜSSEN vor dem Deployment in produktive Umgebungen gescannt worden sein.
ECR-Repositories MÜSSEN image_tag_mutability = "IMMUTABLE" konfiguriert haben, um Tag-Override-Angriffe
zu verhindern. Terraform-Provider MÜSSEN in required_providers mit exakten Versionen und
.terraform.lock.hcl im Repository versioniert sein. Dependency-Scanning (Dependabot, Renovate oder
äquivalent) MUSS für alle Repositories konfiguriert sein.
Rationale
Software-Lieferketten sind ein wachsender Angriffsvektor: Angreifende kompromittieren Dependencies,
Basis-Images oder Build-Tools, um Schadcode in Produktionssysteme einzuschleusen – ohne direkten
Angriff auf das Ziel. Immutable Image-Tags verhindern, dass ein deployed Image heimlich ersetzt wird.
Gepinnte Provider-Versionen mit Lock-File stellen sicher, dass terraform init deterministisch ist
und kein kompromittiertes Provider-Update unbemerkt eingezogen wird. SBOM ermöglicht die schnelle
Bewertung des Impacts neuer CVEs auf alle produktiven Artefakte.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Kompromittierte Dependencies |
Eine schadhafte Version eines npm/pip/go-Moduls kann Backdoors oder Cryptominer einschleusen. |
Typosquatting |
Paketnamen mit ähnlichem Tippfehler (z. B. |
Mutable Image-Tags |
|
Transitive Vulnerabilities |
Kritische CVEs in transitiven Abhängigkeiten bleiben ohne SBOM und Dependency-Tracking unsichtbar. |
Anforderung
-
ECR-Repositories MÜSSEN
image_tag_mutability = "IMMUTABLE"konfiguriert haben. -
ECR-Repositories MÜSSEN Image-Scanning aktiviert haben (
image_scanning_configuration.scan_on_push = true). -
Terraform-Provider MÜSSEN mit exakten Versionen in
required_providersgepinnt sein;.terraform.lock.hclMUSS ins Repository eingecheckt sein. -
Dependency-Scanning MUSS für alle Repositories konfiguriert sein (Dependabot, Renovate oder äquivalent).
-
Kritische und High-CVEs mit verfügbarem Fix MÜSSEN innerhalb der definierten Patch-SLA behoben sein (Critical: 24h, High: 7d).
Implementierungsanleitung
-
ECR Immutable Tags:
image_tag_mutability = "IMMUTABLE"in allenaws_ecr_repository-Ressourcen setzen. -
ECR Image Scanning:
image_scanning_configuration { scan_on_push = true }aktivieren oder Trivy/Grype im CI-Build verwenden. -
Provider-Versionen pinnen: In
required_providersexakte Versionen verwenden (z. B.version = "5.31.0"statt>= 5.0). -
Lock-File committen:
.terraform.lock.hclnachterraform providers lockins Repository einchecken;.gitignoredarf es nicht ausschließen. -
Dependabot konfigurieren:
.github/dependabot.ymlmitpackage-ecosystem: terraformundpackage-ecosystem: dockereinrichten. -
SBOM generieren:
trivy image --format spdx-jsonodersyftim CI für alle Production-Images ausführen und als CI-Artifact speichern. -
CVE-Triage-Prozess: CVSS-basierte Patch-SLA definieren und in einem Tracking-System (Jira, GitHub Issues) dokumentieren.
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine Lieferkettensicherheit |
Mutable Tags; keine Image-Scans; Provider-Versionen nicht gepinnt; kein Dependency-Scanning. |
2 |
Grundlegendes Scanning |
CI-Image-Scan vorhanden; einige Actions/Provider gepinnt; kein SBOM; kein Dependabot. |
3 |
Immutable Tags + gepinnte Versionen |
ECR Immutable Tags; alle Provider gepinnt mit Lock-File; Dependabot konfiguriert; Critical-CVEs blockieren Deployment. |
4 |
SBOM und automatisiertes Dependency-Update |
SBOM für alle Production-Container; automatische Dependency-PRs via Dependabot; Image-Signing mit cosign. |
5 |
SLSA Level 3+ Provenance |
Vollständige Build-Provenance-Attestierungen; hermetic Builds; kontinuierliches CVE-Monitoring aller deployed Artefakte. |
Terraform Checks
waf-sec-110.tf.aws.ecr-immutable-tags
Prüft: ECR-Repositories müssen unveränderliche Image-Tags konfiguriert haben.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: image_tag_mutability = "IMMUTABLE" zu allen aws_ecr_repository-Ressourcen hinzufügen. Deployment-Prozesse müssen auf eindeutige Tags (z. B. Git-SHA) statt latest umgestellt werden.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform-Konfiguration von ECR-Repositories mit |
Config |
✅ Pflicht |
|
Config |
Optional |
SBOM-Artefakt (SPDX oder CycloneDX) für mindestens ein Produktions-Container-Image. |
Process |
Optional |
Trivy/Grype-Scan-Report der letzten CI-Pipeline für ein Produktions-Image. |