Internes Dokument · nicht öffentlich verlinkt
Konzept: Regelmäßige Sicherheitsprüfung
1. Zweck
Art. 32 DSGVO verlangt ein Verfahren zur regelmäßigen Überprüfung, Bewertung und Evaluierung der Wirksamkeit der technischen und organisatorischen Maßnahmen. Dieses Konzept beschreibt die eingerichtete automatisierte Sicherheits-Selbstprüfung. Sie ersetzt keinen externen Penetrationstest, deckt aber die laufende Grundüberwachung ab.
2. Umfang der Prüfung
| Prüfbereich | Methode |
|---|---|
| Offene Ports / Netzexposition | Auflistung lauschender Sockets, Markierung von 0.0.0.0-Binds; Firewall-Default-Policy (iptables/ufw) |
| HTTP-Sicherheits-Header | Prüfung aller Live-Domains auf HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy |
| TLS-Konfiguration | Aktives Protokoll/Cipher je Domain; Test auf veraltete Protokolle (TLS 1.0/1.1) |
| Container-Schwachstellen | Trivy-Scan der eingesetzten Docker-Images (HIGH/CRITICAL-CVEs) |
| SSH-Härtung | PermitRootLogin, PasswordAuthentication |
| OWASP-Top-10 (Web-App-Schicht) | SQL-Injection: Codebase-Audit auf rohe SQL-Strings vs. SQLAlchemy-Parametrisierung; XSS: pytest-Suite test_richtext_sanitizer mit positiven + negativen Fällen (Script-Tag, onclick, javascript:-URL, Style-Tag); IDOR: 9-Rollen-Permission-Matrix test_role_matrix_extended + test_negative_permissions verifizieren 403/404 bei Direkt-URL-Aufruf; Auth-Bypass: test_auth + test_role_map_routes; SSRF: Audit der Geocode-Proxy- und URL-Validierungs-Endpoints; Sensitive Data Exposure: Audit-Logs, Recovery-Code-Display, Session-Cookies. |
| Web-App-Cron-Tests | Drift-Test Rollen-Landkarte ↔ App-Routen läuft mit jedem Push; volle pytest-Suite (~700 Tests) wird vor jedem Major-Release ausgeführt. |
3. Durchführung & Intervall
- Automatisch monatlich: Cron-Job am 1. des
Monats (
/root/webapp-security-scan.sh). - On-Demand: jederzeit über den Button „Sicherheits-Check" im Superadmin-Dashboard auslösbar; das Ergebnis wird dort angezeigt, die Anzahl offener Warnungen erscheint am Button.
- Aufbewahrung: Reports unter
/var/log/webapp-security/, 180 Tage.
4. Umgang mit Befunden
Jeder Lauf endet mit der Anzahl der Warnungen. Befunde werden zeitnah bewertet und behoben oder als akzeptiertes Restrisiko dokumentiert (z. B. nicht behebbare Basis-Image-CVEs ohne praktische Ausnutzbarkeit). Container-CVEs werden primär durch regelmäßiges Neubauen der Images auf aktualisierter Basis adressiert.
5. Verantwortlichkeit & Review
Verantwortlich: Stefan Eschbach. Überprüfung dieses Konzepts mindestens jährlich oder bei wesentlichen Architektur-Änderungen. Ein ergänzender externer Penetrationstest wird anlassbezogen erwogen — insbesondere bei nennenswertem Wachstum der Plattform, Aufnahme besonders sensibler Datenkategorien oder nach einer Datenpanne. Ein verbindliches Intervall wird im Rahmen der nächsten TOM-Review festgelegt.