Skip to content

Security DSGVO SOC2 Checklist

github-actions[bot] edited this page Sep 1, 2026 · 3 revisions

ThemisDB – DSGVO / SOC 2 Compliance Checklist

Version: 1.1
Status: Production-Ready (Security Module v2)
Regulierungsrahmen: DSGVO (GDPR) β€’ SOC 2 Type II
Letzte Aktualisierung: 2026-02


Inhaltsverzeichnis

  1. DSGVO-Compliance (Art. 5 / 25 / 32 / 33 / 35)
  2. SOC 2 Trust Services Criteria
  3. Security Module Feature Mapping
  4. Technische Kontrollmaßnahmen – Checkliste
  5. Offene Punkte & Verbesserungspotenzial

1. DSGVO-Compliance

Art. 5 – GrundsΓ€tze fΓΌr die Verarbeitung personenbezogener Daten

Grundsatz Anforderung Implementierung Status
RechtmÀßigkeit Verarbeitung auf rechtlicher Grundlage RBAC-gesteuerte Zugriffsrechte; Audit Log βœ…
Zweckbindung Daten nur fΓΌr festgelegte Zwecke PolicyEngine: Ressource-/Aktions-GranularitΓ€t βœ…
Datenminimierung Nur notwendige Daten verarbeiten InputValidator: keine unnΓΆtigen Felder; PII-Pseudonymisierung βœ…
Richtigkeit Daten aktuell halten Audit-Trail mit Zeitstempel & Hash-Kette βœ…
Speicherbegrenzung LΓΆschfristen einhalten purgeOldEntries() in AuditLogger; Retention-API βœ…
IntegritΓ€t & Vertraulichkeit Angemessene Sicherheit AES-256-GCM, Argon2id/PBKDF2-SHA256, TLS, mTLS βœ…
Rechenschaftspflicht Nachweis der KonformitΓ€t Dieses Dokument + Compliance Mapping βœ…

Art. 25 – Datenschutz durch Technikgestaltung

Anforderung Implementierung Status
Privacy by Default: restriktivster Zugang als Standard PolicyEngine: effect_allow=false als Default bei fehlenden Regeln βœ…
Privacy by Design: Schutz schon in der Architektur FieldEncryption auf Datenbankebene; kein Klartext in Logs βœ…
Datenminimierung in APIs InputValidator filtert ΓΌberflΓΌssige Felder; Response-Masking fΓΌr PII βœ…

Art. 32 – Sicherheit der Verarbeitung

Maßnahme Implementierung Status
Pseudonymisierung & VerschlΓΌsselung AES-256-GCM (FieldEncryption), Argon2id (OpenSSL β‰₯ 3.2) / PBKDF2-SHA256 Fallback (PasswΓΆrter), TLS 1.3 βœ…
Vertraulichkeit RBAC + ABAC (PolicyEngine), JWT-Authentifizierung (RS256, ES256, EdDSA) βœ…
IntegritΓ€t AuditLogger: append-only Hash-Kette (SHA-256), PKI-Signatur je Eintrag βœ…
VerfΓΌgbarkeit Raft-Konsensus, Hot-Spare-Replikation, RAID-Backup βœ…
RegelmÀßige PrΓΌfung penetration_tests.py, fuzz_tests_security.cpp, CI-Sicherheits-Scan βœ…
Zugriffskontrolle RateLimiter (per-IP, per-User, adaptives Throttling, IP-Blacklisting) βœ…
Revozierung von Zugangsdaten TokenBlacklist (JTI-basiert), JWTKeyRotationManager (ACTIVE/PASSIVE/REVOKED) βœ…
Geheimnis-Versioning SecretManager (versionierte Secrets mit Rotation und RETIRING-Übergangsphase) βœ…

Art. 33 – Meldung von Datenschutzverletzungen

Anforderung Implementierung Status
Erkennung von SicherheitsvorfΓ€llen AuditLogger: BRUTE_FORCE_DETECTED, SUSPICIOUS_ACTIVITY, INTEGRITY_VIOLATION βœ…
SIEM-Forwarding fΓΌr 72-Stunden-Meldepflicht Splunk HEC / Elasticsearch SIEM-Integration in AuditLogger βœ…
LΓΌckenloser Forensik-Trail Hash-Kette + PKI-Signatur je Log-Eintrag; verifyChainIntegrity() βœ…

Art. 35 – Datenschutz-FolgenabschΓ€tzung (DPIA)

Risikokategorie Maßnahme Status
Hochrisiko-Verarbeitung STRIDE-Bedrohungsmodell (docs/de/security/security_threat_model.md) βœ…
Systemische Profilerstellung PolicyEngine ABAC-Conditions; Query-Injection-Schutz βœ…
Automatisierte Entscheidungsfindung Audit-Trail fΓΌr alle KI-/LLM-gesteuerten Entscheidungen βœ…

2. SOC 2 Trust Services Criteria

CC1 – Control Environment

Kriterium Anforderung Implementierung Status
CC1.1 Governance-Strukturen RBAC (4-tier: guest/readonly/readwrite/admin) βœ…
CC1.2 Richtlinien & Verfahren SECURITY.md, CONTRIBUTING.md, Policy-Engine βœ…
CC1.3 Verantwortung & Rechenschaft AuditLogger: alle Admin-Aktionen werden protokolliert βœ…

CC2 – Communication and Information

Kriterium Anforderung Implementierung Status
CC2.1 Interne Kommunikation Strukturierte JSON-Logs mit User/IP/req_id/Action βœ…
CC2.2 Externe Kommunikation TLS 1.3, mTLS fΓΌr Shard-Kommunikation βœ…
CC2.3 Berichterstattung Compliance-Reports API, SIEM-Integration βœ…

CC3 – Risk Assessment

Kriterium Anforderung Implementierung Status
CC3.1 Risikoidentifikation STRIDE-Modell + ANGRIFFSVEKTOREN_ANALYSE.md βœ…
CC3.2 Risikobewertung Penetration Tests (penetration_tests.py), Fuzz-Tests βœ…
CC3.3 Risikobehandlung Kompensatorische Kontrollen fΓΌr alle STRIDE-Kategorien βœ…

CC6 – Logical and Physical Access Controls

Kriterium Anforderung Implementierung Status
CC6.1 Registrierung & De-Registrierung EmbeddedUserRegistrationPlugin mit Argon2id / PBKDF2-SHA256 Fallback βœ…
CC6.2 Benutzerauthentifizierung JWT (RS256, ES256, EdDSA), MFA (TOTP), API-Keys βœ…
CC6.3 Rollenbasierte Autorisierung RBAC + ABAC PolicyEngine (IP-Conditions, Zeitfenster) βœ…
CC6.4 Physischer Zugang Konfigurierbar (out-of-scope fΓΌr Software-Komponente) βšͺ N/A
CC6.6 Logische Zugangskontrollen RateLimiter (per-IP/User), TokenBlacklist, IP-Blacklisting βœ…
CC6.7 ÜbertragungsverschlΓΌsselung TLS 1.3, AES-256-GCM at-rest, mTLS inter-shard βœ…
CC6.8 Malware-Schutz Eingabe-Validierung (InputValidator), AQL-Injection-Erkennung βœ…

CC7 – System Operations

Kriterium Anforderung Implementierung Status
CC7.1 Sicherheitsscan-Prozesse CodeQL (CI), Gitleaks (Secret-Scanning), Dependabot βœ…
CC7.2 Sicherheits-Events ΓΌberwachen AuditLogger + SIEM (Splunk/Elastic), Anomalie-Erkennung βœ…
CC7.3 Incident-Response Hash-Ketten-Verifikation, Forensik-Trail, SIEM-Alarme βœ…
CC7.4 Incident-Meldung logSecurityEvent(SUSPICIOUS_ACTIVITY), SIEM-Forwarding βœ…
CC7.5 Wiederherstellung WAL-basiertes Recovery, PITR, RAID-5-Backup βœ…

CC8 – Change Management

Kriterium Anforderung Implementierung Status
CC8.1 Γ„nderungsprotokoll PolicyEngine: POLICY_UPDATED-Audit-Event bei add/remove/reload βœ…
CC8.1 SchlΓΌsselrotations-Protokoll JWTKeyRotationManager: KEY_ROTATED/KEY_DELETED-Events βœ…
CC8.1 Config-Γ„nderungen CONFIG_CHANGED/ENCRYPTION_SCHEMA_CHANGED in AuditLogger βœ…

CC9 – Risk Mitigation

Kriterium Anforderung Implementierung Status
CC9.1 Risikominderung mit Lieferanten AbhΓ€ngigkeits-Scan (Dependabot, Gitleaks, vcpkg) βœ…
CC9.2 Monitoring Prometheus-Metriken, Grafana-Dashboards, Health-Checks βœ…

3. Security Module Feature Mapping

Feature DSGVO Art. SOC 2 Kriterium Datei / Klasse
PolicyEngine (ABAC/RBAC) 5(f), 25, 32 CC6.3 src/server/policy_engine.cpp
PolicyEngine Hot-Reload 32 CC8.1 PolicyEngine::reloadIfChanged()
JWTValidator (RS256, ES256, EdDSA) 32 CC6.2 src/auth/jwt_validator.cpp
JWTKeyRotationManager 32 CC6.7, CC8.1 src/auth/jwt_key_rotation_manager.cpp
TokenBlacklist (JTI-basiert) 32 CC6.6 src/auth/token_blacklist.cpp
AuditLogger + Hash-Kette 5(f), 33 CC7.2, CC7.3 src/utils/audit_logger.cpp
AuditLogger SIEM (Splunk/Elastic) 33 CC7.2, CC7.4 AuditLogger::forwardToSiem()
InputValidator + AQL-Injection 32 CC6.8 src/security/access_control.cpp
RateLimiter (adaptiv, IP-Blacklist) 32 CC6.6, CC7.2 src/server/rate_limiter.cpp
Argon2id / PBKDF2-SHA256 Passwort-Hashing 32 CC6.1 src/security/embedded_user_registration_plugin.cpp
SecretManager (Versionierung) 32 CC6.6, CC8.1 src/security/secret_manager.cpp
Security-Headers (CSP, CORS, HSTS) 32 CC6.8 src/server/http_server.cpp
MFA (TOTP RFC 6238) 32 CC6.2 src/auth/mfa_authenticator.cpp
HSM-Integration (PKCS#11) 32 CC6.7 src/security/hsm_provider_pkcs11.cpp
Penetration Tests 32, 35 CC3.2 tests/penetration_tests.py
Fuzz-Tests 32, 35 CC3.2 tests/test_fuzz_security.cpp

4. Technische Kontrollmaßnahmen – Checkliste

4.1 Authentifizierung & Autorisierung

  • JWT-Validierung (RS256, ES256, EdDSA) mit Kid-Revocation
  • Argon2id (OpenSSL β‰₯ 3.2) / PBKDF2-SHA256 Fallback fΓΌr Passwort-Hashing (zufΓ€lliges Salt, PHC-Format)
  • RBAC mit 4-tier-Rollenhierarchie (guest / readonly / readwrite / admin)
  • ABAC-Erweiterung (IP-Prefixes, UTC-Zeitfenster, User-Agent-Patterns in PolicyEngine)
  • Multi-Faktor-Authentifizierung (TOTP RFC 6238)
  • Session-Timeout & Concurrent-Session-Limit
  • API-Key-Authentifizierung mit Revocation-Support

4.2 VerschlΓΌsselung & SchlΓΌsselverwaltung

  • AES-256-GCM fΓΌr Daten-VerschlΓΌsselung at-rest
  • TLS 1.3 fΓΌr Daten in transit
  • mTLS fΓΌr Shard-zu-Shard-Kommunikation
  • JWT Key Rotation (ACTIVE β†’ PASSIVE β†’ REVOKED-Lebenszyklus)
  • SecretManager: versionierte Secrets mit RETIRING-Übergangsphase
  • HSM-Integration (PKCS#11) fΓΌr SchlΓΌsselmaterial in Hardware
  • TOTP-Secret-VerschlΓΌsselung mit eigenem SchlΓΌsselkontext

4.3 Audit & Logging

  • Append-only Audit-Log als JSONL-Datei
  • Hash-Kette (SHA-256) fΓΌr Manipulations-Nachweis
  • PKI-Signatur je Audit-Log-Eintrag
  • Strukturierte Log-EintrΓ€ge (User, IP, req_id, Aktion, Ressource)
  • Policy-Change-Auditing (POLICY_UPDATED bei add/remove/reload)
  • Key-Rotation-Auditing (KEY_ROTATED, KEY_DELETED)
  • SIEM-Forwarding: Splunk HEC (HTTPS) & Elasticsearch
  • CA-Bundle-Pinning fΓΌr Splunk-TLS (siem_ca_bundle_path)
  • Anomalie-Erkennung fΓΌr Task-Scheduler-Events (Z-Score-basiert)

4.4 Input-Validierung & Injection-Schutz

  • AQL-Injection-Erkennung (AST-basiert + Pattern-Matching)
  • Path-Traversal-Verhinderung
  • Log-Injection-Sanitierung (Newline-Stripping)
  • JSON-Schema-Validierung fΓΌr API-Eingaben
  • Security-Headers: CSP, X-Frame-Options, X-Content-Type-Options, HSTS
  • CORS-Policy-Enforcement (konfigurierbar per Umgebungsvariable)

4.5 Rate Limiting & DDoS-Schutz

  • Token-Bucket-Algorithmus (per-IP, per-User)
  • Adaptives Throttling (erhΓΆhter Token-Verbrauch bei zu vielen Ablehnungen)
  • IP-Blacklisting mit sofortiger Sperrung
  • IP-Whitelisting fΓΌr vertrauenswΓΌrdige Systeme
  • Konfigurierbare Limits per IP/User (custom_limits-Map)

4.6 Token-Revocation & Blacklisting

  • JTI-basierte Token-Blacklist mit TTL und automatischem Pruning
  • Kid-Revocation in JWTValidator (Runtime-Denylist)
  • JWTKeyRotationManager: REVOKED-Status propagiert zu JWTValidator

4.7 Testing & Validierung

  • Comprehensive-Tests: Policy Engine, JWT, AuditLogger, InputValidator, RateLimiter
  • Fuzz-Tests fΓΌr kritische Security-Entry-Points (50+ FΓ€lle)
  • Penetration-Test-Skript Python (penetration_tests.py, 25+ PrΓΌfungen)
  • RBAC-Tests (30+ FΓ€lle)
  • Passwort-Hashing-Tests: PBKDF2-SHA256 + Argon2id (34+ FΓ€lle)
  • SIEM-Integration-Tests (22+ FΓ€lle)
  • ES256 und EdDSA JWT-Tests
  • Resource-Limits-Tests (PolicyEngine, SecretManager, JWTKeyRotationManager)
  • ABAC-Bedingungen-Tests (IP, UTC-Zeitfenster, User-Agent)

5. Offene Punkte

Punkt PrioritΓ€t Beschreibung
SecretManager-Persistenz Low SecretManager ist aktuell in-memory only. FΓΌr Produktion: Integration mit VaultKeyProvider oder verschlΓΌsselter Datei-Persistenz empfohlen.
HSM-Stub in Produktion Medium HSM-Stub ist durch THEMIS_ALLOW_HSM_STUB-Guard geschΓΌtzt; in Produktion ist ein echter HSM (PKCS#11) erforderlich.
EdDSA/Ed448 Low Nur Ed25519 wird unterstΓΌtzt. Ed448 ist nicht implementiert (anderes SchlΓΌsselformat).

Legende

Symbol Bedeutung
βœ… VollstΓ€ndig implementiert
🟑 Teilweise implementiert
πŸ”΄ Nicht implementiert
βšͺ Nicht anwendbar (N/A)

Dieses Dokument ist Bestandteil des Security-Moduls und wird mit jeder sicherheitsrelevanten Γ„nderung aktualisiert.


ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues

ThemisDB Wiki

🏠 Overview

πŸš€ Getting Started

πŸ“– Tutorials

πŸ“— User Guide

βš™οΈ Operations & Security

πŸ“Ÿ Ops Runbooks

πŸ—οΈ Architecture

πŸ“ ADRs

πŸ”§ Contributing

πŸ“‹ Governance

πŸ” Audit

🧩 Plugins

πŸ”Œ Adapters

πŸ’‘ Examples

πŸ“¦ Client SDKs

πŸŽ“ Training

πŸ› οΈ Tools

πŸ€– Developer LLM Wiki

Clone this wiki locally