// ai · security
marlin
Problem
Dienstleister wollen Chat-Automatisierung — Reviews beantworten, Anfragen vorsortieren, Belege erfassen. Der übliche Weg gibt einem LLM API-Tokens und Handlungsvollmacht. Das ist keine Automatisierung, das ist eine Sicherheitslücke mit Chat-Interface: ein injizierter Prompt in einer Kundenmail genügt, und das Modell handelt im Namen der Firma.
Ansatz
marlin baut die Grenze deterministisch. Fünf Regeln bilden das Rückgrat:
- LLM raus aus dem Action-Path. Das Modell produziert ausschließlich Text — Entwürfe, Klassifikationen, Extraktionen. Es hält keine Tokens, keine Shell, kein Netz. Deterministischer Code hält die Secrets und führt jede privilegierte Aktion aus.
- Allowlist statt Blocklist. „Tu X nie“ als Prompt-Regel ist schwach, Injection schlägt Instruktionen. Die echte Guardrail: die Fähigkeit existiert nicht. You can’t be tricked into using a power you don’t have.
- Das LLM ist nie die Security-Boundary. Autorisierung ist deterministisches RBAC auf Discord-Rollen aus der API — unfälschbar.
- Human-Approval vor Side-Effects. Das Modell entwirft, ein autorisierter Mensch klickt Approve, ein deterministischer Sender führt aus.
- Untrusted Text ist Data, nicht Command. Jede privilegierte Aktion landet in einer Append-only-Audit-Tabelle.
Kurzform: The LLM proposes; code disposes. Jeder Tenant läuft als eigener gehärteter Container — minimale Privilegien, kein Docker-Socket, nur ausgehende Verbindungen.
Entscheidungen
- Kein Memory-Framework im MVP. Generische Memory-Layer merken sich die falschen Dinge und entscheiden mit. Kuratiertes, reversibles Memory über explizite Kommandos schlägt automatisches Sammeln.
- Threat-Model explizit gemacht: Prompt-Injection über angreiferkontrollierte Review-, Mail- oder Chat-Texte ergibt schlimmstenfalls einen schlechten Entwurf — nie einen Breach.
Status & Learnings
Gebaut, deployt, erste Phasen produktiv gelaufen — aktuell pausiert. Das Sicherheitsmodell ist das eigentliche Produkt: die Muster (LLM aus dem Action-Path, Allowlist, deterministisches RBAC) übertragen sich auf jedes Agent-System, das mit fremdem Text arbeitet.