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

WAF-SEC-040 – Encryption in Transit – TLS Enforcement

Beschreibung

Alle Datenübertragungen zwischen Clients und Services sowie zwischen Services untereinander MÜSSEN über TLS 1.2 oder höher verschlüsselt erfolgen. Load-Balancer-Listener DÜRFEN NICHT unverschlüsseltes HTTP ohne automatische HTTPS-Weiterleitung betreiben. Amazon OpenSearch / Elasticsearch-Domains MÜSSEN enforce_https = true und tls_security_policy = "Policy-Min-TLS-1-2-2019-07" konfiguriert haben. RDS-Instanzen MÜSSEN den SSL/TLS-Parameter rds.force_ssl = 1 (PostgreSQL) bzw. require_secure_transport = ON (MySQL) gesetzt haben.

Rationale

Unverschlüsselte Datenübertragungen ermöglichen Man-in-the-Middle-Angriffe, die Credentials, Session-Tokens und sensible Nutzdaten abfangen. In Cloud-Umgebungen passiert Datenverkehr häufig über geteilte Netzwerkinfrastruktur, auf der kein Verlass auf physische Isolation besteht. TLS-Pflicht ist die grundlegende Gegenmaßnahme und eine universelle Anforderung aller relevanten Compliance-Frameworks. Veraltete TLS-Versionen (1.0, 1.1) haben bekannte Schwachstellen (POODLE, BEAST) und sind explizit von BSI und NIST verboten.

Bedrohungskontext

Risiko Beschreibung

Man-in-the-Middle

Unverschlüsselter HTTP-Verkehr kann durch Netzwerkposition (DNS-Spoofing, ARP-Poisoning) abgehört und manipuliert werden.

Credential-Interception

Passwörter, API-Keys und Session-Tokens im Klartext über das Netz sind ein triviales Angriffsziel für passive Lauschende.

Datenexfiltration im Transit

Sensible Nutzerdaten (PII, Zahlungsdaten) können auf dem Transportweg abgegriffen werden, ohne Spuren in den Anwendungslogs zu hinterlassen.

Compliance-Verletzung

Unverschlüsselter Datentransport bei personenbezogenen Daten verstößt direkt gegen DSGVO Art. 32 und BSI C5.

Anforderung

  • Load-Balancer-Listener auf Port 80 (HTTP) MÜSSEN auf HTTPS (443) umleiten; direkter Betrieb ohne Weiterleitung ist VERBOTEN.

  • ALB/NLB-HTTPS-Listener MÜSSEN eine Sicherheitsrichtlinie mit mindestens TLS 1.2 verwenden.

  • OpenSearch/Elasticsearch-Domains MÜSSEN enforce_https = true und tls_security_policy >= Policy-Min-TLS-1-2-2019-07 konfiguriert haben.

  • RDS-Instanzen MÜSSEN den Parameter rds.force_ssl = 1 (PostgreSQL) oder require_secure_transport = ON (MySQL) in einer Parameter-Group gesetzt haben.

  • Intern verwendete APIs DÜRFEN NICHT auf http://-Endpoints zeigen; alle Endpunkte MÜSSEN HTTPS-only sein.

  • TLS-Zertifikate MÜSSEN gültig, nicht selbst signiert (für externe Endpunkte) und von ACM verwaltet sein.

Implementierungsanleitung

  1. HTTP-zu-HTTPS-Redirect konfigurieren: aws_lb_listener auf Port 80 mit redirect-Action auf Port 443 einrichten.

  2. HTTPS-Listener mit ACM-Zertifikat aufsetzen: aws_lb_listener auf Port 443 mit ssl_policy = "ELBSecurityPolicy-TLS13-1-2-2021-06".

  3. OpenSearch TLS erzwingen: domain_endpoint_options Block mit enforce_https = true und tls_security_policy.

  4. RDS-Parameter-Group erstellen: PostgreSQL: rds.force_ssl = 1; MySQL: require_secure_transport = ON.

  5. Interne Service-Kommunikation prüfen: Service-Mesh oder API-Gateways auf TLS-Pflicht konfigurieren.

  6. Zertifikats-Lifecycle managen: ACM-Zertifikate nutzen (automatische Erneuerung); Expiry-Alarms auf verbleibende Laufzeit < 30 Tage einrichten.

Reifegrad-Abstufung

Level Bezeichnung Kriterien

1

HTTP und HTTPS gemischt

Viele Services auf HTTP ohne Redirect; kein einheitlicher TLS-Standard; veraltete TLS-Versionen im Einsatz.

2

HTTPS auf externen Endpunkten

Externe Load Balancer auf HTTPS; interne Service-Kommunikation noch unverschlüsselt; TLS 1.0/1.1 noch erlaubt.

3

TLS 1.2+ auf allen Endpunkten und HTTP-Redirect

HTTP-zu-HTTPS-Redirect auf allen Listenern; TLS 1.0/1.1 deaktiviert; RDS mit force_ssl; OpenSearch enforce_https.

4

TLS 1.3 bevorzugt; mTLS für interne Services

TLS 1.3-Sicherheitsrichtlinien auf Load Balancern; mutual TLS (mTLS) für Service-zu-Service-Kommunikation.

5

Zero-Trust-Transit mit mTLS und automatisierter Zertifikatsverwaltung

Service-Mesh mit automatischer mTLS-Ausstellung; Certificate Transparency Monitoring; Zertifikats-Anomalieerkennung.

Terraform Checks

waf-sec-040.tf.aws.lb-listener-no-plain-http

Prüft: Load-Balancer-Listener dürfen kein unverschlüsseltes HTTP ohne HTTPS-Redirect betreiben.

Compliant Non-Compliant
# HTTP-Redirect-Listener
resource "aws_lb_listener" "http" {
  load_balancer_arn = aws_lb.app.arn
  port              = 80
  protocol          = "HTTP"
  default_action {
    type = "redirect"
    redirect {
      port        = "443"
      protocol    = "HTTPS"
      status_code = "HTTP_301"
    }
  }
}

# HTTPS-Listener
resource "aws_lb_listener" "https" {
  load_balancer_arn = aws_lb.app.arn
  port              = 443
  protocol          = "HTTPS"
  ssl_policy        = "ELBSecurityPolicy-TLS13-1-2-2021-06"
  certificate_arn   = aws_acm_certificate.app.arn
  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.app.arn
  }
}
resource "aws_lb_listener" "http" {
  load_balancer_arn = aws_lb.app.arn
  port              = 80
  protocol          = "HTTP"
  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.app.arn
    # Kein Redirect zu HTTPS
    # WAF-SEC-040 Violation
  }
}

Remediation: HTTP-Listener auf redirect-Action mit protocol = "HTTPS" und port = "443" umstellen. Keinen HTTP-Listener mit direkter forward-Action ohne vorherigen Redirect betreiben.


waf-sec-040.tf.aws.opensearch-enforce-https

Prüft: OpenSearch-Domains müssen HTTPS erzwingen und TLS 1.2+ als Minimalstandard vorschreiben.

Compliant Non-Compliant
resource "aws_opensearch_domain" "app" {
  domain_name    = "app-search"
  engine_version = "OpenSearch_2.11"

  domain_endpoint_options {
    enforce_https       = true
    tls_security_policy = "Policy-Min-TLS-1-2-2019-07"
  }
}
resource "aws_opensearch_domain" "app" {
  domain_name    = "app-search"
  engine_version = "OpenSearch_2.11"

  domain_endpoint_options {
    enforce_https       = false  # WAF-SEC-040 Violation
    tls_security_policy = "Policy-Min-TLS-1-0-2020-07"
    # TLS 1.0 als Minimum – WAF-SEC-040 Violation
  }
}

Remediation: enforce_https = true und tls_security_policy = "Policy-Min-TLS-1-2-2019-07" im domain_endpoint_options-Block der aws_opensearch_domain-Ressource setzen.

Evidenz

Typ Pflicht Beschreibung

IaC

✅ Pflicht

Terraform-Konfiguration aller Load-Balancer-Listener mit HTTPS-Redirect und aller OpenSearch/RDS-Ressourcen mit TLS-Erzwingung.

Config

✅ Pflicht

AWS Config Rule alb-http-to-https-redirection-check Compliance-Report.

Process

Optional

Zertifikats-Inventar mit Ablaufdaten und Erneuerungsverantwortlichkeiten.

Config

Optional

TLS-Scan-Report (z. B. SSL Labs oder testssl.sh) für alle externen Endpunkte mit Bewertung ≥ A.

Regulatorisches Mapping

Framework Controls

ISO 27001:2022

A.5.15 – Threat intelligence; A.5.16 – Threat classification; A.5.24 – Information security incident management; A.5.25 – Assessment and decision on information security events; A.5.26 – Response to information security incidents; A.5.27 – Learning from information security incidents; A.5.28 – Collection of evidence; A.8.16 – Technology use identification and monitoring; A.8.21 – Telecommunications and network security

ISO 27017

CLD.5.1 – Information security in cloud services; CLD.5.2 – Access control in cloud services

ISO 27018

A.2 – Purpose legitimacy and PII protection; A.10 – Confidentiality and security of PII

GDPR

Art. 5(1)(c) – Data minimisation; Art. 5(1)(f) – Integrity and confidentiality; Art. 9 – Special categories of personal data; Art. 25 – Data protection by design and by default; Art. 32 – Security of processing

BSI C5:2020

IDM-01 – Identity and access management policy; IDM-02 – Role management; IDM-03 – User lifecycle management; COM-01 – Network and service security; COM-02 – Cloud monitoring

EUCS (ENISA)

IAM-01 – Identity and access management; IAM-02 – Access rights management; IAM-03 – Privileged access management

NIST SP 800-53

AC-1 – Policy and procedures; AC-2 – Account management; AC-3 – Access enforcement; AC-6 – Least privilege; IA-2 – Identification and authentication; SI-4 – Information system monitoring

FedRAMP

AC-1, AC-2, AC-3, AC-6, IA-2 (Moderate/High baseline)

HIPAA

§ 164.308(a)(4) – Access management; § 164.312(a) – Access control; § 164.312(d) – Information system activity review

PCI DSS v4.0

Req 7 – Restrict access to cardholder data; Req 8 – Identify and authenticate access; Req 8.3 – Non-service accounts

SOC 2 Type II

CC6.1 – Logical access security software; CC6.2 – Logical access security management; CC6.6 – Secure configuration

CSRD

ESRS E1 – Climate change; ESRS G1 – Governance

NIST CSF 2.0

GV.AC – Identity management and access control; DE.CM – Configuration management

CIS Controls v8

CIS 4 – Secure Configuration; CIS 4.4 – Access control; CIS 4.5 – Least privilege

TISAX

Information security – Access rights management

ANSSI SecNumCloud

Domain – Identity and access management; Domain – Security monitoring

BIO

BIO – Identificatie en authenticatie; BIO – Toegangsbeheer

ENS High

org.3 – Políticas de acceso; op.exp.5 – Monitorización de la configuración

UK NCSC CAF

B1 – Access control; B2 – Secure configuration

CMMC 2.0

AC.L2-3.1.1 – Access control policy; AC.L2-3.5.1 – Access enforcement

IRAP

ISM – Identity and access management; ISM – Access control

CCCS PBMM

AC-6 – Least privilege; AC-7 – Unsuccessful logon attempts

MAS TRM

Ch.4 – Identity and access management; Ch.8 – Security monitoring

ISMAP

Access control and identity management

FISC

Operational measures – Access control

Best Practice