Sicherheitsprinzipien — Datengetrieben

Gestalten Sie Ihre Anwendung nach Prinzipien, nicht durch Flickwerk. Daten zeigen: geschichtete Kontrollen reduzieren Geschwindigkeit & Auswirkungen von Sicherheitsvorfällen.
Prinzipien

Kernprinzipien

Least privilege: Beschränken Sie Zugriffe (Benutzer, Services, Schlüssel). Defense in depth: Setzen Sie mehrere unabhängige Kontrollen ein (z. B. Validierung + CSP + Sanitisierung). Fail secure: Standardeinstellungen sind sicher; Fehler geben minimale Informationen preis.

Datengetriebene Hinweise

Überwachen Sie wichtige Metriken: Auth-Fehler, Passwortrücksetzung-Rate, Ausnahme-Spikes, JWT-Ablehnungen, 4xx/5xx-Raten. Verwenden Sie Schwellwerte und Anomalieerkennung — automatisches Tuning verkürzt die mittlere Zeit bis zur Erkennung (MTTD).

Checkliste

OWASP Top 10 zu Richtlinien zugeordnet

Ordnen Sie jeden Top-10-Punkt einer konkreten Richtlinie und messbaren Kontrollen zu (SLA für Behebung, CI-Pipelines, Scanner).

Top-10 Highlights

  1. A01:2021 – Broken Access Control → RBAC, ABAC durchsetzen, Regeln testen
  2. A02 – Cryptographic Failures → Schlüssel, TLS, MFA für Schlüssel-Operationen
  3. A03 – Injection → Prepared Statements, parametrisierte Abfragen
  4. A04 – Insecure Design → Threat-Modeling, Secure-Design-Reviews
  5. A05 – Security Misconfiguration → gehärtete Images, automatisierte Scans
  6. A06 – Vulnerable Components → Dependency-Scanning, Pinning
  7. A07 – Identification & Authentication → Mehrfaktor, Token-Rotation
  8. A08 – Software & Data Integrity Failures → signierte Artefakte, reproduzierbare Builds
  9. A09 – Security Logging & Monitoring → Aufbewahrung, Alerting, SOAR-Integration
  10. A10 – Server-Side Request Forgery (SSRF) & weitere → Egress-Denylist, Egress-Proxies

Umsetzbare Zuordnung

Für jeden OWASP-Punkt: a) verhindern mit Code/Config, b) detektieren mit Tests & Runtime-Sensoren, c) reagieren mit Incident-Playbook. Beispiel: Broken Access Control → automatisierte Zugriffstests + Runtime-RBAC-Audit-Logs.
MTTD
Ziel: < 24h
MTTR
Ziel: < 72h
Coverage
SAST/DAST ≥ 90%

Authentifizierung & Autorisierung

Machen Sie Authentifizierung intelligent: Schützen Sie Kontowiederherstellung, rotieren Sie Schlüssel, verlangen Sie MFA bei sensitiven Aktionen.
Auth

Design & Kontrollen

  • Verwenden Sie starke Passwort-Hashes (Argon2id bevorzugt; bcrypt oder scrypt akzeptabel). Verwenden Sie pro Benutzer Salt und memory-hard Parameter, abgestimmt auf Latenz & Kosten.
  • Bevorzugen Sie kurzlebige Access-Tokens + Refresh mit Rotation. Nutzen Sie das Muster der Refresh-Token-Rotation zur Erkennung von Diebstahl.
  • Implementieren Sie MFA (TOTP + Push + FIDO2) für alle privilegierten Operationen und Admins.
  • Durchsetzen von Account-Lockout/Backoff & Benachrichtigung bei verdächtigen Zurücksetzungen.

Code & Konfiguration

Beispiel: Autorisierungs-Check (express-ähnlich, Pseudocode)
// Principle: check privileges at every entry point
async function authorize(user, resource, action){
  // minimal example: ABAC + explicit deny
  if(!user || user.disabled) throw new Error('unauthenticated');
  const policy = await getPolicyFor(resource);
  if(policy.deny.includes(user.role)) throw new Error('forbidden');
  if(!policy.allowedActions.includes(action)) throw new Error('forbidden');
  // log decision for auditing
  audit('authz', {user:user.id, resource, action});
  return true;
}

Checkliste

Eingabevalidierung & XSS

Validiere früh, kodieren Sie spät. Vertraue niemals Client-Input; verwenden Sie Allowlists. Bevorzugen Sie kontextuelle Kodierung zur Vermeidung von XSS.

XSS-Prävention

  1. Serverseitige Ausgabe-Kodierung für HTML-, JS-, URL- und CSS-Kontexte verwenden. Verwenden Sie Templates mit Auto-Encoding.
  2. Implementieren Sie CSP mit strengen Direktiven und Nonces, wo möglich. Vermeiden Sie Inline-Skripte/-Styles.
  3. Sanitizen Sie untrusted HTML nur mit einer sicheren Bibliothek und Allowlist.

Beispiel CSP-Header

Empfohlener strikter Basis-Header mit Nonce
Content-Security-Policy:
  default-src 'none';
  script-src 'self' 'nonce-';
  style-src 'self' 'nonce-';
  img-src 'self' data:;
  connect-src 'self' https://api.example.com;
  frame-ancestors 'none';
  base-uri 'self';
  block-all-mixed-content;

Checkliste

Sitzungen & Cookies

Schützen Sie Session-Tokens bei Speicherung, Übertragung und Rotation. Bevorzugen Sie Cookies mit strikten Attributen für Browser-Sessions.

Cookie-Attribute

Set-Cookie: session=eyJ...; HttpOnly; Secure; SameSite=Strict; Path=/; Max-Age=3600

HttpOnly verhindert JS-Zugriff; Secure verlangt TLS; SameSite mindert CSRF (Lax/Strict je nach UX).

Best Practices für Sessions

  • Kurzlebige Session-TTL für sensitive Apps. Verwenden Sie Refresh-Tokens für längere UX mit rotierender Refresh-Token-Strategie.
  • Speichern Sie Session-State serverseitig oder verwenden Sie signierte/verschlüsselte Tokens mit Audience & Expiry.
  • Invalidieren Sie Sessions bei Passwortänderung oder Logout; stellen Sie Admin-APIs zur Session-Revokation bereit.

Checkliste

Transport Layer & TLS

Starkes TLS und korrektes Zertifikatsmanagement sind Pflicht. Bevorzugen Sie TLS 1.3, Forward Secrecy und strikte Zertifikatsvalidierung.

TLS-Konfigurations-Essentials

  • TLS 1.3 bevorzugen wo möglich. Falls TLS 1.2 unterstützt werden muss, deaktivieren Sie schwache Chiffren; aktivieren Sie ECDHE für Forward Secrecy.
  • HSTS-Header mit langem max-age und preload wenn bereit: Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • OCSP-Stapling aktivieren; Zertifikatabläufe überwachen und Automatisierung für Erneuerung (ACME) einrichten.

Beispiel Nginx-Snippet

# nginx TLS 1.3 strong config
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_session_tickets off;
ssl_stapling on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Checkliste

Sicherheits-Header & CSP (vertieft)

Verwenden Sie geschichtete Header: CSP, HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy. Strikte Header reduzieren die Angriffsfläche.

Essenzielle Header

Referrer-Policy: no-referrer-when-downgrade
Permissions-Policy: camera=(), microphone=(), geolocation=()
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Expect-CT: max-age=86400, enforce

CSP schrittweise einführen

Beginnen Sie im Report-Only-Modus, um Verstöße zu sammeln: verwenden Sie report-uri/report-to. Dann iterativ auf Enforcement umstellen. Erwägen Sie Nonce- oder Hash-Ansatz für notwendige Inline-Skripte.

Checkliste

Speicherung & Datenschutz

Verschlüsseln Sie sensible Daten im Ruhezustand & während der Übertragung. Wenden Sie feldbasierte Verschlüsselung für PII an und schützen Sie Schlüssel mit KMS/HSM und Rotationsrichtlinien.

Key-Management

  • Nutzen Sie verwaltetes KMS mit starken IAM-Richtlinien und Least Privilege. Rotieren Sie Schlüssel quartalsweise oder gemäß Richtlinie.
  • Speichern Sie niemals rohe Zugangsdaten oder Geheimnisse im Code oder Klartext. Verwenden Sie Secret-Manager & ephemere Credentials (IAM-Rollen).

Datenminimierung & Aufbewahrung

Sammeln Sie nur notwendige Daten; setzen Sie Aufbewahrungsrichtlinien und automatisierte Löschung um; verwenden Sie Pseudonymisierung, wo möglich.

Checkliste

Abhängigkeiten & Lieferketten-Sicherheit

Behandeln Sie Third-Party-Code als hohes Risiko: scannen, pinnen, validieren und Artefakte signieren. Verwenden Sie reproduzierbare Builds und minimale Abhängigkeiten.

Praktische Schritte

  • Automatisierte SBOM-Erzeugung und Dependency-Scanning (Snyk, OSS Index, etc.). Blockieren Sie kritische Vulnerabilities in CI/CD-Gates.
  • Pinnen Sie Abhängigkeiten und bevorzugen Sie Lockfiles. Richten Sie Alerts für transitive Abhängigkeitsprobleme ein.
  • Signieren Sie Artefakte (Container-Images, Pakete) und überprüfen Sie Signaturen in Produktions-Policies.

Checkliste

CI/CD & Testing

Shift left: Führen Sie SAST, Dependency-Checks, Secret-Scanning und SBOM-Erzeugung in CI aus. Verwenden Sie reproduzierbare Pipelines und least-privileged Runner.

Pipeline-Kontrollen

  • Scheitern Sie Builds bei hochkritischen Findings. Bieten Sie Auto-PR-Remediations für niedrige/mittlere Severity, wo sicher.
  • Isolieren Sie Build-Umgebungen und rotieren Sie Servicetokens zwischen Stages. Verwenden Sie ephemere Runner, um Exponierung zu reduzieren.
  • Automatisieren Sie Infrastruktur-Scanning (IaC-Checks) und erzwingen Sie sichere Baseline-Images.

Checkliste

Logging, Monitoring & Incident Response

Gestalten Sie Logging für Erkennung und Forensik. Zentralisieren Sie Logs, stellen Sie Unveränderbarkeit/Aufbewahrung sicher und führen Sie Playbook-Drills durch.

Monitoring-Essentials

  • Loggen Sie Auth-Entscheidungen, kritische Fehler und Policy-Verstöße. Telemetrie muss Request-IDs und Benutzerkontext für Traceability enthalten.
  • Bauen Sie Alerts auf anomalische Muster (Credential Stuffing, plötzlicher Traffic zu Admin-Endpunkten, Anstiege bei 401/403).
  • Führen Sie Tabletop-Übungen durch und automatisieren Sie IR-Schritte wo möglich: Container isolieren, Schlüssel rotieren, Sessions widerrufen.

Checkliste

Master-Checkliste (exportierbar)

Alle erforderlichen Items gesammelt. Exportieren Sie als CSV zur Integration mit Trackern.

Kurzes Quiz — Testen Sie Ihr Basiswissen

Wählen Sie die beste Antwort und senden Sie ab. Sofortiges Feedback.

1) Welcher Header erzwingt HTTPS am besten?
2) Empfohlener Passwort-Hash?