Dokumentation

Sicherheitsprinzipien

Vier feste Zusagen von betool: strikte Mandantentrennung, Audit mandantenübergreifender Zugriffe, begründete Ablehnung destruktiver Aktionen, LLM-Souveränität.

betool ist für regulierte Umgebungen konzipiert. Sicherheit ist keine Schicht, die nachträglich aufgesetzt wird: Sie ist die Invariante, die jede Codezeile, jede Migration und jedes Modul prägt.

1. Strikte Mandantentrennung

Jede Organisation besitzt ihre eigenen Daten, Pipelines, Geheimnisse, Dateien und LLM-Schlüssel. Die Isolation wird durchgesetzt:

  • Auf Datenbankebene — jede Geschäftstabelle trägt eine indizierte Spalte org_id, und serverseitige Abfragen filtern immer nach der Sitzungsorganisation.
  • Auf Dateisystemebene — jede Organisation hat ihr eigenes Stammverzeichnis unter <data_root>/orgs/<org_id>/. Keine gemeinsam genutzten Pfade.
  • Auf Cache-Ebene — Caches pro Organisation; kein gemeinsamer Eintrag ohne ein explizites Flag is_shared = TRUE.
  • Auf Geheimnisebene — jede Organisation hat ihren eigenen Tresor, ihre eigenen API-Schlüssel, ihre eigenen Tokens. Kein globaler Fallback. Auch die in der Konfiguration eines Knotens eingegebenen Secrets (HMAC-Secret, Token, Passwort) sind überall maskiert, wo die Konfiguration erneut gelesen wird — Editor, API, von einer KI gelesene MCP-Tools, Vorschläge.

2. Verpflichtende Auditierung mandantenübergreifender Zugriffe

Bestimmte Rollen (typischerweise Plattformbetreiber-Konten auf Anbieterseite) könnten aus Support-Gründen auf die Inhalte einer anderen Organisation zugreifen müssen. Ein solcher Zugriff ist:

  • An ein Opt-in der Zielorganisation gebunden — jederzeit über das Administrationspanel widerrufbar.
  • Bei jedem Zugriff protokolliert — dedizierte Audit-Tabelle, auf die Zielorganisation begrenzt, für Kunden über eine Route GET /api/admin/me/*-reads einsehbar.
  • Verweigert, wenn der Audit-Schreibvorgang fehlschlägt — kein Lesevorgang ohne Nachweis.

Siehe DSGVO-Audit.

3. Begründete Verweigerung bei destruktiven Operationen

Jede Operation, die den Inhalt einer anderen Organisation zerstört oder ersetzt (REPLACE-IN-PLACE von Kindelementen, DELETE), wird verweigert, wenn die Zielorganisation das Lese-Opt-in nicht aktiviert hat. Begründung: Ohne Sichtbarkeit würde der Operator eine Nutzlast vorschlagen, die bestehende Inhalte blind überschreiben könnte.

4. Souveränität über das LLM-Modell

  • Natives BYOK — Ihre Schlüssel für OpenAI, Anthropic und Google werden von Ihrer Organisation verwaltet. Kein organisationsübergreifendes Durchsickern. BYOK ist optional (es gibt managed Modelle, abgerechnet in Credits), wird in regulierten Umgebungen aber empfohlen.
  • Private Modelle — Ollama, LM Studio oder ein beliebiger OpenAI-kompatibler Endpunkt (vLLM…), gehostet bei Ihnen oder in Ihrer Private Cloud. Prompts und Completions verlassen niemals Ihren Perimeter.
  • Kein stiller gemeinsamer Pool — verwendet eine Organisation ein gemeinsames Modell, ist dies eine explizite Entscheidung mit Zugriffskontrolle.

Ingenieurhaltung

Unser Standard ist Präzision: maximale Robustheit, vollständige Beobachtbarkeit, Determinismus, Anti-Halluzination, Anti-Regression, Tests an jeder Ecke.

Konkret bedeutet das bei jedem Kompromiss in Architektur / Code / Prompt:

WahlErwartete WahlWarum
Latenz × 2 vs. abgekürztes Reasoning× 2Verlorene Präzision wird durch das Vertrauen der Nutzer zurückgezahlt
Feingranulare Beobachtbarkeit vs. nur wesentliche LogsFeingranularOhne Sichtbarkeit ist Debugging blind
Abkürzung, die ein Verhalten verschlechtertVerweigerungVerhaltensrisiko wird in Kundenvorfällen gemessen

Mantra: „Wenn jemand einen Fehler findet, bedeutet das, dass wir nicht genug Schutzvorrichtungen hatten, nicht zu viele.“

Weiterführende Lektüre