Files
aza/AzA march 2026 - Kopie (5)/security/handovers/INCIDENT_2026-02-22_CREDENTIAL_EXPOSURE.md
2026-03-30 07:59:11 +02:00

4.9 KiB
Raw Blame History

INCIDENT REPORT CREDENTIAL EXPOSURE

Datum: 2026-02-22

Klassifikation: SICHERHEITSVORFALL (intern)


1. Zusammenfassung

Im Rahmen der systematischen Sicherheitsanalyse (STEP 4.4 Klartext-Credentials entfernen) wurde ein produktives E-Mail-Passwort im Klartext in einer Konfigurationsdatei des Projekts entdeckt.


2. Betroffene Komponente

  • Datei: aza_email_config.json
  • Modul: AZA E-Mail (aza_email.py)
  • Feld: password im accounts-Array
  • Betroffener Account: Produktiver Mail-Account (Details bewusst nicht aufgeführt)

3. Entdeckung

  • Entdeckt durch: Automatisierte Security Gap-Analyse (STEP 3) und bestätigt bei der Implementierung von STEP 4.4
  • Entdeckungsdatum: 2026-02-22
  • Entdeckungsmethode: Grep-Suche nach password, secret, token in allen JSON/YAML/Config-Dateien des Projekts

4. Risikoanalyse

Worst-Case-Szenarien

Szenario Risiko Schwere
Unbefugter Zugriff auf das Dateisystem Passwort-Exfiltration HOCH
Account-Übernahme (Mail) Lesen/Senden von E-Mails im Namen des Kontoinhabers HOCH
Mail-Missbrauch Spam, Phishing, Social Engineering über legitimen Account HOCH
Laterale Bewegung Falls Passwort wiederverwendet: Zugriff auf weitere Systeme KRITISCH
Datenschutzverletzung Zugriff auf medizinische Kommunikation (Patientendaten) KRITISCH
Backup-/Export-Exposition Passwort in Backups, Cloud-Syncs oder Transfers vorhanden MITTEL

Besondere Faktoren

  • Medizinischer Kontext: E-Mail-Account einer Arztpraxis potenziell Patientendaten in Mails (DSG/DSGVO-relevant)
  • Expositionsdauer: Unbekannt. Das Passwort war seit der Erstellung der Konfigurationsdatei im Klartext gespeichert.
  • Zugriffskreis: Alle Personen/Systeme mit Lesezugriff auf das Projektverzeichnis, Backups oder Transfers dieser Datei.

5. Sofortmassnahmen

Nr Massnahme Status Verantwortlich
1 Passwort aus Konfigurationsdatei entfernt ERLEDIGT (STEP 4.4) Security Engineer
2 Code umgestellt auf ENV-basierte Credentials ERLEDIGT (STEP 4.4) Security Engineer
3 Migrationswarnung implementiert ERLEDIGT (STEP 4.4) Security Engineer
4 Passwort beim Mail-Provider rotieren OFFEN DRINGEND Projektinhaber
5 Prüfung ob Account kompromittiert wurde OFFEN Projektinhaber

6. Empfohlene Folgeaktionen

Sofort (innerhalb 24h)

  • Passwort beim Mail-Provider ändern (neues, starkes Passwort, mindestens 16 Zeichen, keine Wiederverwendung)
  • 2FA aktivieren, falls der Mail-Provider dies unterstützt
  • Login-Protokolle prüfen: Gibt es unbekannte Zugriffe auf den betroffenen Mail-Account?

Kurzfristig (innerhalb 1 Woche)

  • Passwort-Wiederverwendung prüfen: Wurde dasselbe Passwort für andere Dienste/Systeme verwendet? Falls ja: dort ebenfalls rotieren.
  • Backups durchsuchen: Prüfen, ob Kopien der Datei aza_email_config.json in Backups, Cloud-Speicher, USB-Sticks, E-Mail-Anhängen oder anderen Transfers vorhanden sind. Falls ja: Passwort dort ebenfalls als exponiert betrachten.
  • Projekt-Kopien prüfen: Alle backup *-Ordner und Kopien des Projektverzeichnisses auf Klartext-Passwörter durchsuchen.

Mittelfristig (Empfehlung)

  • Secret-Scanning in CI/CD-Pipeline einführen (z.B. git-secrets, truffleHog, GitHub Secret Scanning), um zukünftige Klartext-Credentials automatisch zu erkennen.
  • OS-Keychain-Integration evaluieren (Windows Credential Manager), um Passwörter sicher und benutzerfreundlich zu speichern.

7. Lessons Learned

Ursache

Das Passwort wurde direkt im GUI-Dialog eingegeben und ohne Schutzmassnahmen in eine JSON-Datei auf der Festplatte geschrieben. Es gab keine Trennung zwischen Konfiguration und Credentials.

Präventionsmassnahmen (implementiert)

  1. Credentials werden NIE mehr in Dateien geschrieben (_strip_passwords() in save_email_config())
  2. Credentials kommen ausschliesslich aus ENV-Variablen (AZA_EMAIL_PASSWORD_0, _1, ...)
  3. Migrationswarnung bei bestehenden Klartext-Passwörtern in der Config
  4. Klartext-Passwörter in JSON werden ignoriert (kein Auto-Migrate)

Präventionsmassnahmen (empfohlen, nicht implementiert)

  1. Secret-Scanning in CI/CD
  2. Pre-Commit-Hooks für Secret-Detection
  3. OS-Keychain als sicherer Credential-Store
  4. Regelmässige Audits der Konfigurationsdateien

8. Referenzen

  • STEP 3 GAP-Analyse: Lücke #28 identifiziert
  • STEP 4.4 Implementierung der Credential-Entfernung
  • STEP 4.4 Handover: /security/handovers/STEP_4_4_CREDENTIALS.md

Erstellt: 2026-02-22 im Rahmen des AZA/MedWork Security & Compliance Projects Klassifikation: Intern Nicht zur externen Weitergabe bestimmt