Project

General

Profile

Sicherheit & Compliance

Seitenregeln

  • Single Source of Truth für Sicherheitsmodell, Anforderungen und Nachweise; keine Implementierungsdetails.
  • Definiert Policies/Standards; Umsetzung wird in den Technik‑Seiten verlinkt.
  • Keine Geheimnisse oder Schlüssel; nur Verfahren, Orte und Rotationsregeln.
  • Enthält Datenschutz (Datenklassen, Lösch-/Aufbewahrung, AV‑Verträge).
  • Aktualisieren bei: neue Bedrohungen/Findings, Policy‑Änderungen, Audit‑Ergebnisse.
  • Verweise auf: „Plattform, Netzwerk & Edge“ (Header/TLS‑Umsetzung), „Build, Deployment & Laufzeit“ (Secrets‑Nutzung), „Daten, …“ (Datenlebenszyklus).
  • Benenne betroffene Dateien inkl. Pfad als Unterpunkte, wenn diese für zukünftige Änderungen relevant.

Zweck und Abgrenzung

  • Zweck: Sicheres Betreiben des Projekts „n8n aktien“ (Workflows, Datenbank, Benachrichtigungen, Dashboard) auf Basis klarer Policies und prüfbarer Nachweise.
  • Geltungsbereich: n8n (Community Edition), PostgreSQL (App‑DB), Datenpipelines (HTTP/APIs), interne Netzwerke (Docker), Benachrichtigungskanäle (Webex), Datenhaltung (Kurse, Kennzahlen, Logs).
  • Nicht enthalten: Finanzberatung, automatisierte Trades, externe Benutzerportale.

Authentifizierung (lokal/SSO) und Autorisierung/Rollen

  • n8n Auth:
    • Modus: Lokale Konten (n8n CE), Admin‑Account vorhanden.
    • Policy: Mindestpasswortlänge ≥ 14, 2FA sofern verfügbar, Administratoren minimal halten.
  • Rollenmodell (Policy):
    • Admin: System‑ und Credential‑Verwaltung, Workflow‑Änderungen.
    • Operator: Workflows ausführen, Logs einsehen, keine Credential‑Änderung.
    • Viewer: Lesender Zugriff auf Ausführungen/Dashboards (falls angewendet).
  • Zugriff auf PostgreSQL:
    • App‑User: mf_app (Least Privilege, Owner der App‑DB mf_app, eigenes Schema core).
    • Trennung von n8n‑System‑DB (n8n) und App‑DB (mf_app).
  • Webex:
    • Bot‑Token als Secret in n8n‑Credentials (kein Klartext in Workflows/Repos).
  • Nachweise:
    • Container/DB: postgres:16‑alpine, DB mf_app + Role mf_app angelegt.
    • n8n Version: 2.1.4 (Self‑Hosted), erfolgreich verbundene Credentials (Postgres, OpenFIGI, Alpha Vantage, SimFin, FMP).

Secrets‑Management (Ablage, Rotation – ohne Werte)

  • Ablage:
    • n8n Credentials Store für API‑Keys/Tokens (OpenFIGI, Alpha Vantage, SimFin, FMP, Webex).
    • Keine Secrets in Workflows (Expressions/Referenzen nutzen).
  • Zugriff:
    • Nur Admins dürfen Credentials anlegen/ändern; Nodes referenzieren Credentials.
  • Rotation:
    • Policy: API‑Keys halbjährlich oder bei Verdacht/Wechsel rotieren.
    • Widerruf: Alte Keys unmittelbar deaktivieren und Credential‑Referenzen aktualisieren.
  • Speicherung:
    • Keine Speicherung von Secrets in der App‑DB (mf_app).

Verschlüsselung (Transport/Ruhend)

  • Transport:
    • Externe API‑Aufrufe: HTTPS erzwungen (OpenFIGI, Alpha Vantage, SimFin, FMP).
    • Interne Verbindungen: n8n ↔ PostgreSQL im Docker‑Netzwerk (segmentiert). Policy: Bei Exponierung nach außen TLS per Reverse Proxy.
  • Ruhend:
    • Daten: PostgreSQL Volumes (Docker‑managed). Policy: Regelmäßige verschlüsselte Backups.
    • Credentials: In n8n‑Credential‑Speicher (Policy: Host‑Disk verschlüsselt; OS‑Ebene).
  • Dateien/Pfade (relevant):
    • Docker Volume Postgres (Beispiel): /var/lib/docker/volumes/n8n_n8n_pg_data/_data

Sicherheitsanforderungen (Headers, CSP, HSTS, Rate‑Limits)

  • Reverse‑Proxy/Dashboards (Policy):
    • TLS 1.2+; HSTS: max‑age ≥ 6 Monate; Redirect HTTP→HTTPS.
    • Security‑Header: X‑Content‑Type‑Options=nosniff, X‑Frame‑Options=DENY, Referrer‑Policy=strict-origin-when-cross-origin.
    • CSP (Metabase/Custom UIs): default-src 'self'; img-src 'self' data: https:; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self' https:.
  • APIs/Outbound:
    • Allowed Domains in n8n‑Credentials/Nodes whitelisten (z. B. api.openfigi.com, www.alphavantage.co, api.simfin.com, financialmodelingprep.com, stooq.com).
    • Rate‑Limits: Externe Free‑APIs mit Backoff/Planung (tägliche Läufe, On‑Demand).
  • Logging‑Hygiene:
    • Keine Secrets in Logs; nur Statuscodes/IDs.

Schwachstellen‑ und Patch‑Prozess

  • Container‑Images:
    • Policy: Monatliches Update‑Fenster für n8n‑ und Postgres‑Images (Minor/Patches), CVE‑Monitoring.
  • Abhängigkeiten:
    • n8n Release Notes prüfen; inkompatible Änderungen in Testlauf validieren.
  • Konfiguration:
    • Least Privilege für DB‑Rollen, Netzwerk‑Isolation (Docker‑Netz).
  • Nachweise:
    • job_runs Tabelle protokolliert Workflow‑Läufe inkl. Status/Fehler.

Protokollierung für Sicherheit (Events, Aufbewahrung)

  • Protokollquellen:
    • n8n Workflow‑Runs: core.job_runs (Status ok/fail/partial, Fehlertext).
    • Alerts: core.alerts_log (Zeitpunkt, Kanal, Zustandswechsel Ja/Nein).
    • Datenqualität: core.data_quality (Issues mit Severity).
  • Aufbewahrung (Policy):
    • job_runs: 12 Monate.
    • alerts_log: 12 Monate.
    • data_quality: bis behobene Issues + 12 Monate.
  • Zugriff:
    • Nur Admin/Operator; keine PII in Logs.

Datenschutz/DSGVO (Datenklassen, Lösch-/Aufbewahrung, AV‑Verträge)

  • Datenklassen:
    • Markt‑/Finanzdaten (öffentlich): Kurse, Indikatoren, Kennzahlen, Rankings.
    • Betriebsdaten: job_runs, alerts_log, data_quality (betriebsbezogen).
    • Kommunikationsdaten: Webex‑Alert‑Metadaten (Kanal, message_id). Keine personenbezogenen Inhalte.
    • Personenbezogene Daten: Minimal; System speichert standardmäßig keine Nutzer‑PII in der App‑DB.
  • Lösch-/Aufbewahrung (Policy):
    • Markt‑/Historienkurse: unbegrenzt zulässig (kein Personenbezug).
    • Betriebs‑ und Alert‑Logs: gemäß Abschnitt „Protokollierung“.
    • KI‑Auswertungen: core.ai_evaluations (Begründungstexte) – Aufbewahrung 12 Monate (Policy).
  • Auftragsverarbeitung:
    • Externe Dienste (OpenFIGI, Alpha Vantage, SimFin, FMP, Stooq): reine Marktdatenabfragen, keine PII‑Übermittlung. Webex: Bot‑Nachrichten enthalten nur Faktentexte/Signale (Policy: keine PII senden).

Nachweise/Audits/Abnahmen

  • Bestand/Artefakte:
    • PostgreSQL App‑DB und Schema core mit Tabellen: securities, listings, prices_daily, fundamentals, mf_rank, liquidity, corporate_actions, signals, alerts_log, market_state, news_cache, ai_evaluations, config, job_runs, data_quality.
    • Netzwerk: Docker‑Netz „deploy_internal“; Postgres‑Container n8n-n8n-postgres-1; n8n‑Container n8n-n8n-1.
    • n8n Credentials vorhanden: Postgres (mf_app), OpenFIGI (Header Auth), Alpha Vantage (Query Auth), SimFin (Query Auth), FMP (Query Auth).
  • Reproduzierbarkeit:
    • Datenfluss und Berechnungen nachvollziehbar (Indikator‑SQL, Signal‑SQL in Workflows).
    • Marktstatus‑Proxy (VIX→FG) mit Quelle und Komponenten dokumentiert (core.market_state).
  • Abnahmen:
    • Funktionsnachweise über zuletzt erfolgreiche job_runs und befüllte Tabellen (z. B. prices_daily, signals).