Files
aza/AzA march 2026/deploy/SECURITY_CHECKLIST.md

112 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2026-03-25 22:03:39 +01:00
# AZA Final Security Checklist
## Ziel
Finale Sicherheitsprüfung vor produktivem Einsatz von AZA Medical AI Assistant.
---
## 1. Auth / Tokens
- `X-API-Token` wird für geschützte Endpoints verwendet
- keine Umstellung auf `Authorization: Bearer` ohne expliziten Auftrag
- Tokens nie loggen
- Tokens nie in JSON-Antworten zurückgeben
- Dev-Token nur bewusst für lokale/dev Zwecke verwenden
---
## 2. License Endpoint
- `/license/status` Schema bleibt exakt:
- `{ "valid": true, "valid_until": 1774553596 }`
- `{ "valid": false, "valid_until": null }`
- keine Breaking Changes am Response-Format
---
## 3. Logging
- keine Secrets loggen
- keine Tokens loggen
- keine PHI loggen
- keine Diktatinhalte loggen
- keine Suchanfragen mit sensiblen Inhalten loggen
- nur technische Minimal-Logs
---
## 4. Telemetry
- nur freigegebene Events
- keine PHI
- keine Freitexte
- `crash_type` nur aus Whitelist
- `target_version` nur bei `update_check`
- Rate-Limit aktiv
---
## 5. Request Limits
- sinnvolle Request-Size-Limits für öffentliche Endpoints
- Schutz vor sehr großen Payloads
- Schutz vor Missbrauch durch Flooding
---
## 6. Public Endpoint Review
Öffentlich erlaubte Endpoints bewusst prüfen:
- `/health`
- `/version`
- `/download`
- `/telemetry/ping`
Nicht öffentlich versehentlich exponieren:
- interne Admin-Endpunkte
- Diagnose-/Debug-Endpunkte
- tokenpflichtige interne APIs
---
## 7. Deployment / Ops
- korrekte ENV-Variablen gesetzt
- `MEDWORK_API_TOKEN` gesetzt
- Reverse Proxy korrekt
- nur benötigte Ports offen
- Healthcheck erfolgreich
---
## 8. Release / Download
- `release/version.json` konsistent
- `download_url` zeigt auf `aza-medwork.ch`
- Release-Skript erzeugt korrekte URL
- keine kaputten oder leeren Release-Metadaten
---
## 9. Billing / Dokumente
- keine sensiblen Inhalte unnötig speichern
- Rechnungsdaten klar getrennt von medizinischen Inhalten
- Pflichtfelder für Rechnungen dokumentiert
---
## 10. Go-Live Entscheidung
Go-Live nur wenn:
- Healthcheck PASS
- `/version` PASS
- `/download` PASS
- `/license/status` Schema PASS
- Telemetry validiert
- keine offensichtlichen offenen Secret-/Logging-Probleme