WAF++ WAF++
Back to WAF++ Homepage

WAF-SUS-070 – Sustainable Software Design Standards

Beschreibung

Software MUSS mit Energie-Effizienz als explizitem Qualitätsmerkmal entworfen werden. Architecture Decision Records MÜSSEN Energie-Effizienz-Überlegungen enthalten. Event-Driven-Patterns MÜSSEN für asynchrone Kommunikation bevorzugt werden. Dependencies MÜSSEN auf Effizienz und Notwendigkeit geprüft werden. SCI (Software Carbon Intensity) SOLLTE für Tier-1-Services gemessen werden. Cloud-Run- und Lambda-Dienste SOLLEN auf Scale-to-Zero konfiguriert sein.

Rationale

Software-Design-Entscheidungen haben multiplikativen Einfluss auf Energieverbrauch. Ein ineffizienter Algorithmus auf effizienter Hardware verbraucht immer noch unnötig viel Energie. Polling-Patterns generieren konstante API-Aufrufe ohne proportionalen Mehrwert. Große Dependency-Trees erhöhen Cold-Start-Energie und Speicherverbrauch. Die Green Software Foundation SCI-Formel macht Software-Effizienz messbar und vergleichbar. Scale-to-Zero bei serverlosen Diensten vermeidet Idle-Compute komplett.

Bedrohungskontext

Risiko Beschreibung

Ineffiziente Algorithmen

O(n²)-Algorithmen verbrauchen bei 10.000 Elementen 750× mehr CPU als O(n log n) — direkte Emissionsmultiplikation.

Polling-Pattern

Konstante API-Abfragen statt Event-Trigger erzeugen thousands unnötiger Requests pro Stunde.

Bloated Dependencies

Lambda-Funktionen mit 200MB-Deployment-Package haben 5× höhere Cold-Start-Energie als schlanke 20MB-Packages.

Microservice-Proliferation

50 Services für was 5 leisten könnten: 10× mehr Netzwerk-Overhead, Service-Discovery-Load, Health-Check-Calls.

Fehlende SCI-Messung

Ohne SCI-Metrik können Software-Effizienz-Verbesserungen nicht quantifiziert oder als Ziel gesetzt werden.

Anforderung

  • ADR-Template MUSS Energie-Effizienz und SCI-Betrachtung als Abschnitt enthalten

  • Asynchrone Kommunikation MUSS Event-Driven-Patterns (SQS, EventBridge, Pub/Sub) nutzen

  • Dependencies MÜSSEN eine Größen- und Effizienz-Review erhalten vor Aufnahme

  • SCI SOLL für alle Tier-1-Services mindestens jährlich gemessen werden

  • Container-Images SOLLEN Distroless- oder Alpine-Base-Images nutzen (Größenbudget < 500MB)

  • SQS Event Source Mappings MÜSSEN maximum_batching_window_in_seconds >= 5 haben

Implementierungsanleitung

  1. ADR erweitern: Energie-Effizienz-Sektion: "Wie wurde SCI betrachtet? Welche Alternativen wurden bezüglich Effizienz bewertet?"

  2. Event-Driven Policy: Polling-Patterns identifizieren und durch SQS/EventBridge/SNS ersetzen

  3. Dependency-Review-Prozess: Neue Dependencies prüfen auf Größe, Aktivität, Effizienz; Alpine/Distroless-Images

  4. SCI-Messung: Energie aus CloudWatch-Metriken + Carbon Intensity der Region + Functional Units

  5. SQS Batching: batch_size = 100 + maximum_batching_window_in_seconds = 30 für alle SQS-Lambda-Trigger

  6. Scale-to-Zero: Cloud Run min_instance_count = 0; Lambda hat Scale-to-Zero by default

Reifegrad-Abstufung

Level Bezeichnung Kriterien

1

Keine Effizienz-Betrachtung

Nur funktionale Anforderungen; Polling-Patterns überall; keine Dependency-Hygiene.

2

Awareness in Code-Review

Effizienz wird gelegentlich im Review erwähnt; kein formaler Prozess.

3

ADR-Requirement + Event-Driven

ADR-Pflicht mit Energie-Sektion; Event-Driven für Async; Dependency-Review; SCI für Tier-1 jährlich.

4

SCI als Engineering-Metrik

SCI monatlich getrackt; Energie-Effizienz in Definition of Done; N+1 automatisch detektiert.

5

SCI-OKR + Continuous Improvement

SCI-Verbesserung als OKR; automatische SCI-Regression-Alerts im CI; Energy-Profiling in Dev-Workflow.

Terraform Checks

waf-sus-070.tf.aws.sqs-not-polling

Prüft: SQS-Lambda Event Source Mappings nutzen Batching (Long Polling).

Compliant Non-Compliant
resource "aws_lambda_event_source_mapping" "sqs" {
  event_source_arn                   = aws_sqs_queue.events.arn
  function_name                      = aws_lambda_function.processor.arn
  batch_size                         = 100
  maximum_batching_window_in_seconds = 30
  function_response_types            = ["ReportBatchItemFailures"]
}
resource "aws_lambda_event_source_mapping" "sqs" {
  event_source_arn = aws_sqs_queue.events.arn
  function_name    = aws_lambda_function.processor.arn
  batch_size       = 1
  # WAF-SUS-070 Warning: batch_size=1, kein Batching-Window
}

Remediation: batch_size = 100 und maximum_batching_window_in_seconds = 30 setzen. Reduziert Invocations um bis zu 99% bei hochvolumigen Queues.


waf-sus-070.tf.google.cloud-run-min-instances

Prüft: GCP Cloud Run Services können auf Zero skalieren.

Compliant Non-Compliant
resource "google_cloud_run_v2_service" "api" {
  name     = "api-service"
  location = "europe-north1"
  template {
    scaling {
      min_instance_count = 0
      max_instance_count = 10
    }
  }
}
resource "google_cloud_run_v2_service" "api" {
  name     = "api-service"
  location = "us-east1"
  template {
    scaling {
      min_instance_count = 5
      # WAF-SUS-070 Warning: immer 5 Instanzen; kein Zero-Scale
    }
  }
}

Remediation: min_instance_count = 0 für alle nicht-produktiven Services; für Produktion mit Cold-Start-SLA dokumentieren, warum min > 0 erforderlich ist.

Evidenz

Typ Pflicht Beschreibung

Governance

✅ Pflicht

ADR-Template oder Architecture-Review-Checkliste mit Energie-Effizienz / SCI-Betrachtung.

Config

Optional

Container-Image-Size-Reports (Distroless/Alpine-Compliance).

Process

Optional

SCI-Measurement-Report für Tier-1-Services mit Baseline und Trend.

Governance

Optional

Dependency-Review-Policy und Audit-Log.

Regulatorisches Mapping

Framework Controls

EU CSRD (Corporate Sustainability Reporting Directive)

ESRS E1 – Climate change; ESRS G1 – Governance; ESRS S1 – Own workforce

GHG Protocol (Corporate Accounting and Reporting Standard)

Scope 1 – Direct emissions; Scope 2 – Indirect emissions from purchased energy; Scope 3 – Other indirect emissions

Green Software Foundation (GSF)

Software Engineering Principles – Carbon-aware computing; Carbon accounting standards

SBTi (Science Based Targets initiative)

Target setting methodology; Validation and verification; Corporate target standards

ISO 14001:2015

Clause 6.1 – Actions to address risks and opportunities; Clause 8.1 – Operational planning and control

ISO 14064-1:2018

Clause 5 – GHG inventory quantification; Clause 6 – GHG inventory validation and verification

GDPR

Art. 28 – Processor obligations; Art. 32 – Security of processing

CSRD

ESRS E1-6 – Emissions; ESRS G1-3 – Governance

NIST SP 800-53

AU-1 – Audit and accountability policy; AU-2 – Audit events; AU-3 – Content of audit records

NIST CSF 2.0

GV.PO – Policy; DE.CM – Continuous monitoring; RV.RP – Recovery planning

TISAX

Information security – Sustainability; Prototype protection – Environmental protection

ANSSI SecNumCloud

Domain – Environmental impact

BIO

BIO – Milieueffecten

ENS High

op.exp.9 – Gestión del impacto ambiental

UK NCSC CAF

B6 – Environmental impact

CMMC 2.0

AU.L2-3.8.1 – Automated audit logging

IRAP

ISM – Environmental monitoring

CCCS PBMM

AU-2 – Audit events

MAS TRM

Ch.12 – Outsourcing risk management

ISMAP

Sustainability and environmental impact

FISC

Operational measures – Environmental impact

Verwandte Controls