Zum Inhalt springen

Sicherheitsübersicht

Der satware® AI OnlyOffice MCP Server wurde mit Sicherheit auf jeder Ebene entwickelt — von der Eingabevalidierung über die Docker-Container-Isolierung bis hin zur verschlüsselten Speicherung von Anmeldeinformationen.

Alle Vorlagendaten werden vor der Verarbeitung gegen JSON-Schemata validiert:

  • Pflichtfeldprüfungen — fehlende Felder werden vor der Dokumentgenerierung zurückgewiesen
  • Typvalidierung — Zod-Schemata erzwingen String-, Number-, Boolean-, Array- und Object-Typen
  • Mustererkennung — Regex-Beschränkungen für Datumsangaben, E-Mails und formatierte Strings
  • Enum-Validierung — eingeschränkte Wertemengen für Felder wie Beschäftigungsart oder Folientyp

Benutzerdaten werden durch JSON-Serialisierung bereinigt (Hin- und Rückkonvertierung entfernt Funktionen, undefinierte Werte und Zirkelbezüge).

Alle Befehlsausführungen verwenden Array-Argumente, niemals Shell-String-Interpolation:

execFile('docker', ['exec', '-i', containerName, ...])

Dies verhindert Shell-Injection selbst dann, wenn Benutzerdaten böswillige Zeichen enthalten. Vom Benutzer bereitgestellte Daten fließen durch JSON-Serialisierung in eine Skriptdatei, niemals in Shell-Befehlsstrings.

Document Builder läuft in einem isolierten Docker-Container:

  • Eingeschränkter Dateisystemzugriff — nur eingehängte Volumes sind zugänglich
  • Kontrollierter Netzwerkzugriff — der OnlyOffice-Container befindet sich in einem internen Docker-Netzwerk (backend), nicht extern erreichbar
  • Non-Root-Benutzer — der mcp-server-Container läuft als mcpuser (UID 1001)
  • Keine Host-Dateisystem-Einhängungen für sensible Daten — nur /var/artifacts und Docker-Socket

Der Docker-Socket ist für docker exec-Befehle eingehängt (erforderlich für DocBuilder). Dies ist ein bekanntes und dokumentiertes Risiko, das akzeptiert wird — der Container kann keine anderen Container starten oder stoppen, nur Befehle im angegebenen OnlyOffice-Container ausführen.

Cloud-Speicher-Anmeldeinformationen (Google Drive, OneDrive, S3, MinIO, WebDAV, SMB) werden verschüsselt gespeichert mit:

Aspekt Implementierung
Algorithmus AES-256-GCM (authentifizierte Verschlüsselung)
Schlüsselableitung scrypt mit OWASP-empfohlenen Parametern
IV 96-Bit (NIST-empfohlen für GCM)
Auth-Tag 128-Bit (maximale Stärke)
Speicherung Lokale verschlüsselte Datei mit 0600-Berechtigungen
Arbeitsspeicher Entschlüsselte Schlüssel werden mit Timeout und Nullung zwischengespeichert

Anmeldeinformationen werden niemals protokolliert oder in Fehlermeldungen ausgegeben. Das Master-Passwort wird aus der Umgebungsvariablen CREDENTIAL_MASTER_PASSWORD gelesen und niemals auf der Festplatte gespeichert.

Modus Sicherheit
STDIO Prozessisolation (kein Netzwerk)
HTTP TLS über Reverse-Proxy (Caddy/Nginx). Origin-Validierung gegen CORS_ORIGINS. Fail-closed in Produktion, wenn CORS_ORIGINS nicht gesetzt ist.
  • Cookie-basierte Sitzung (HMAC-SHA256-signiert, 8 Stunden Gültigkeit)
  • /admin gibt 503 zurück, wenn ADMIN_PASSWORD nicht gesetzt ist
  • Sitzungsgeheimnis vom Admin-Passwort abgeleitet (oder explizit über ADMIN_SESSION_SECRET gesetzt)

Alle Endpunkte (/mcp, /admin, /artifacts, /health, /instances) liegen auf Port :3847. Der OnlyOffice Document Server (:9980) ist nur intern erreichbar — nicht für externen Traffic freigegeben.

  • Keine Speicherung personenbezogener Daten — der Server verarbeitet Daten im Arbeitsspeicher und generiert Dokumente bei Bedarf
  • Temporäre Artefakte — generierte Dokumente werden automatisch gelöscht (Standard-TTL: 24 Stunden)
  • EU-Hosting — Produktionsbereitstellungen auf satware-Infrastruktur in Deutschland
  • Keine Telemetrie — keine Analytik, kein Tracking, keine Phone-Home-Aufrufe