Skip to content

Klassifizierungssystem

Das Datenklassifizierungssystem ist die Grundlage des Sicherheitsmodells von Triggerfish. Jedes Datenelement, das in das System eintritt, sich durch es bewegt oder es verlaesst, traegt eine Klassifizierungskennzeichnung. Diese Kennzeichnungen bestimmen, wohin Daten fliessen koennen -- und wichtiger noch, wohin sie nicht fliessen koennen.

Klassifizierungsstufen

Triggerfish verwendet eine einzige vierstufige geordnete Hierarchie fuer alle Bereitstellungen.

StufeRangBeschreibungBeispiele
RESTRICTED4 (hoechste)Sensibelste Daten, die maximalen Schutz erfordernM&A-Dokumente, Vorstandsmaterialien, PII, Bankkonten, Krankenakten
CONFIDENTIAL3Geschaefts- oder personenbezogene sensible InformationenCRM-Daten, Finanzen, Personalakten, Vertraege, Steuerunterlagen
INTERNAL2Nicht fuer externe Weitergabe bestimmtInterne Wikis, Teamdokumente, persoenliche Notizen, Kontakte
PUBLIC1 (niedrigste)Fuer jeden sicher einsehbarMarketingmaterialien, oeffentliche Dokumentation, allgemeine Webinhalte

Die No-Write-Down-Regel

Die wichtigste Sicherheitsinvariante in Triggerfish:

Daten koennen nur zu Kanaelen oder Empfaengern mit gleicher oder hoeherer Klassifizierung fliessen. Dies ist eine feste Regel -- sie kann nicht konfiguriert, ueberschrieben oder deaktiviert werden. Das LLM kann diese Entscheidung nicht beeinflussen. :::

Klassifizierungshierarchie: PUBLIC → INTERNAL → CONFIDENTIAL → RESTRICTED. Daten fliessen nur aufwaerts.

Das bedeutet:

  • Eine Antwort mit CONFIDENTIAL-Daten kann nicht an einen PUBLIC-Kanal gesendet werden
  • Eine Session mit RESTRICTED-Taint kann nicht an einen Kanal unterhalb von RESTRICTED ausgeben
  • Es gibt keinen Admin-Override, keine Enterprise-Ausnahme und keinen LLM-Workaround

Effektive Klassifizierung

Kanaele und Empfaenger tragen beide Klassifizierungsstufen. Wenn Daten das System verlassen, bestimmt die effektive Klassifizierung des Ziels, was gesendet werden kann:

EFFECTIVE_CLASSIFICATION = min(channel_classification, recipient_classification)

Die effektive Klassifizierung ist die niedrigere der beiden. Das bedeutet, dass ein hochklassifizierter Kanal mit einem niedrig klassifizierten Empfaenger dennoch als niedrig klassifiziert behandelt wird.

KanalEmpfaengerEffektivKann CONFIDENTIAL-Daten empfangen?
INTERNALINTERNALINTERNALNein (CONFIDENTIAL > INTERNAL)
INTERNALEXTERNALPUBLICNein
CONFIDENTIALINTERNALINTERNALNein (CONFIDENTIAL > INTERNAL)
CONFIDENTIALEXTERNALPUBLICNein
RESTRICTEDINTERNALINTERNALNein (CONFIDENTIAL > INTERNAL)

Kanal-Klassifizierungsregeln

Jeder Kanaltyp hat spezifische Regeln zur Bestimmung seiner Klassifizierungsstufe.

E-Mail

  • Domain-Abgleich: Nachrichten von @firma.de werden als INTERNAL klassifiziert
  • Administratoren konfigurieren, welche Domains intern sind
  • Unbekannte oder externe Domains werden standardmaessig als EXTERNAL behandelt
  • Externe Empfaenger reduzieren die effektive Klassifizierung auf PUBLIC

Slack / Teams

  • Workspace-Mitgliedschaft: Mitglieder desselben Workspace/Mandanten sind INTERNAL
  • Externe Slack-Connect-Benutzer werden als EXTERNAL klassifiziert
  • Gastbenutzer werden als EXTERNAL klassifiziert
  • Klassifizierung wird aus der Plattform-API abgeleitet, nicht aus der LLM-Interpretation

WhatsApp / Telegram / iMessage

  • Enterprise: Telefonnummern werden gegen die HR-Verzeichnissynchronisation abgeglichen, um intern vs. extern zu bestimmen
  • Persoenlich: Alle Empfaenger werden standardmaessig als EXTERNAL behandelt
  • Benutzer koennen vertrauenswuerdige Kontakte markieren, aber dies aendert nicht die Klassifizierungsberechnung -- es aendert die Empfaengerklassifizierung

WebChat

  • WebChat-Besucher werden immer als PUBLIC klassifiziert (Besucher werden nie als Eigentuemer verifiziert)
  • WebChat ist fuer oeffentlich zugaengliche Interaktionen gedacht

CLI

  • Der CLI-Kanal laeuft lokal und wird basierend auf dem authentifizierten Benutzer klassifiziert
  • Direkter Terminalzugang ist typischerweise INTERNAL oder hoeher

Empfaenger-Klassifizierungsquellen

Enterprise

  • Verzeichnissynchronisation (Okta, Azure AD, Google Workspace) fuellt Empfaengerklassifizierungen automatisch
  • Alle Verzeichnismitglieder werden als INTERNAL klassifiziert
  • Externe Gaeste und Dienstleister werden als EXTERNAL klassifiziert
  • Administratoren koennen pro Kontakt oder pro Domain ueberschreiben

Persoenlich

  • Standard: Alle Empfaenger sind EXTERNAL
  • Benutzer klassifizieren vertrauenswuerdige Kontakte ueber In-Flow-Abfragen oder die Begleit-App um
  • Umklassifizierungen sind explizit und werden protokolliert

Kanalzustaende

Jeder Kanal durchlaeuft einen Zustandsautomaten, bevor er Daten transportieren kann:

Kanal-Zustandsautomat: UNTRUSTED → CLASSIFIED oder BLOCKED
ZustandKann Daten empfangen?Kann Daten in den Agentenkontext senden?Beschreibung
UNTRUSTEDNeinNeinStandard fuer neue/unbekannte Kanaele. Vollstaendig isoliert.
CLASSIFIEDJa (innerhalb der Policy)Ja (mit Klassifizierung)Ueberprueft und einer Klassifizierungsstufe zugewiesen.
BLOCKEDNeinNeinExplizit durch Administrator oder Benutzer gesperrt.

SICHERHEIT Neue Kanaele landen immer im Zustand UNTRUSTED. Sie koennen keine Daten vom Agenten empfangen und keine Daten in den Agentenkontext senden. Der Kanal bleibt vollstaendig isoliert, bis ein Administrator (Enterprise) oder der Benutzer (persoenlich) ihn explizit klassifiziert. :::

Wie Klassifizierung mit anderen Systemen interagiert

Klassifizierung ist kein eigenstaendiges Feature -- sie treibt Entscheidungen ueber die gesamte Plattform:

SystemWie Klassifizierung verwendet wird
Session-TaintZugriff auf klassifizierte Daten eskaliert die Session auf diese Stufe
Policy HooksPRE_OUTPUT vergleicht Session-Taint mit der Zielklassifizierung
MCP GatewayMCP-Server-Antworten tragen Klassifizierung, die die Session taintet
Daten-LineageJeder Lineage-Eintrag enthaelt die Klassifizierungsstufe und den Grund
BenachrichtigungenBenachrichtigungsinhalte unterliegen denselben Klassifizierungsregeln
Agenten-DelegationDie Klassifizierungsobergrenze des aufgerufenen Agenten muss dem Taint des Aufrufers entsprechen
Plugin-SandboxDas Plugin SDK klassifiziert alle ausgegebenen Daten automatisch