112 lines
2.1 KiB
Markdown
112 lines
2.1 KiB
Markdown
# 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
|