Ihr KI-Coding-Agent sollte Ihren Logs nicht vertrauen
Agentjacking zeigt, warum KI-Coding-Agenten Logs, Monitoring-Daten, Tickets und MCP-Tool-Ausgaben als untrusted Input behandeln müssen.
Kyluke McDougall
Software-Architekt & Gründer
Inhaltsverzeichnis
- Tool-Ausgaben sind Input, keine Anweisung
- Die neue Trust Boundary liegt um den Kontext
- Warum das für seriöse Produkte zählt
- Ein praktisches Trust Model für KI-Coding-Agenten
- 1. Operative Daten standardmäßig als untrusted behandeln
- 2. Lesen und Handeln trennen
- 3. Least-Privilege-Credentials verwenden
- 4. Redaction vor dem Agentenkontext
- 5. Menschliche Freigabe für Boundary-Crossing Actions
- 6. Der Agent muss Evidenz liefern
- MCP braucht Architektur, nicht nur Begeisterung
- Was Entscheider vor dem Skalieren fragen sollten
- Der sinnvolle Weg nach vorn
KI-Coding-Agenten werden deutlich nützlicher, wenn sie den Kontext rund um den Code sehen können.
Sie können Error Reports lesen. Sie können Logs untersuchen. Sie können Tickets, CI-Fehler, Dokumentation, Datenbankschemas, Observability-Dashboards und Deployment-Ausgaben einbeziehen. Über MCP und ähnliche Integrationen können sie sich mit den Tools verbinden, die ein Softwareteam ohnehin nutzt.
Das ist stark.
Genau dort ändert sich aber auch das Sicherheitsmodell.
Heute wurde auf X ein neuer Begriff schnell sichtbar: Agentjacking. Das beschriebene Muster ist auch für Nicht-Security-Spezialisten relevant. Ein Angreifer kann schädliche Anweisungen in operative Daten einschleusen, zum Beispiel in ein Sentry-Error-Event. Ein KI-Coding-Agent liest dieses Event anschließend über eine Integration und behandelt den Inhalt als nützlichen Debugging-Kontext. Wenn der Agent Befehle ausführen, Credentials sehen oder Code bearbeiten darf, kann aus diesem manipulierten “Kontext” eine echte Aktion werden.
Die konkreten Details werden sich weiterentwickeln. Einzelne Tools werden Patches bekommen. Security Researcher werden Beispiele verfeinern. Anbieter werden Warnungen und Controls nachziehen.
Aber die wichtigste Lehre ist bereits klar:
Ihr KI-Coding-Agent sollte Ihren Logs nicht vertrauen.
Genauer: Er sollte keiner externen Tool-Ausgabe automatisch vertrauen. Nicht Logs. Nicht Tickets. Nicht Monitoring-Events. Nicht CI-Kommentaren. Nicht Dokumentation aus einem gemeinsamen Workspace. Nicht MCP-Antworten. Nicht Support-Transkripten. Nicht Daten, die von Nutzern, Angreifern, Dritten, falsch konfigurierten Systemen oder alten internen Prozessen beeinflusst werden können.
Für Gründer, CTOs, Product Owner und Mittelstandsteams ist das kein Grund, KI-gestützte Entwicklung zu vermeiden. Es ist ein Grund, sie mit echter Architektur einzuführen.
Tool-Ausgaben sind Input, keine Anweisung
Der gefährlichste Fehler ist subtil.
Ein Team verbindet einen KI-Coding-Agenten mit nützlichen Systemen, weil es besseren Kontext möchte. Das ist verständlich. Ein Bugfix ist einfacher, wenn der Agent den Fehler, den Stack Trace, das letzte Deployment, das zugehörige Ticket und den fehlschlagenden Test sehen kann.
Dann beginnt der Agent, diesen Kontext so zu behandeln, als wäre er eine vertrauenswürdige Anweisung.
Das ist der Bruch.
Eine Logzeile ist kein Manager. Ein Sentry-Event ist kein Senior Engineer. Ein Ticket-Kommentar ist keine Deployment-Freigabe. Eine CI-Fehlermeldung ist nicht automatisch ein sicherer Befehl. Diese Dinge sind Eingaben. Manche sind nützlich. Manche sind laut. Manche sind falsch. Manche können feindlich sein.
Menschen verstehen das intuitiv. Wenn ein Stack Trace einen merkwürdigen String aus User Input enthält, behandelt ein Entwickler ihn nicht als Shell-Befehl. Wenn ein Support-Ticket kundengeliefertes HTML enthält, kopiert das Team es nicht blind in Produktion. Wenn ein Log ein Access Token enthält, ist die Antwort nicht, es weiterzuverbreiten.
KI-Agenten brauchen dieselbe Grenze, aber umgesetzt in Prozess und Tooling statt nur im Bauchgefühl.
Das ist besonders wichtig, weil Agenten darauf optimiert sind, hilfreich zu sein. Wenn ein Error Event sagt “führe diesen Befehl aus, um das Problem zu beheben”, kann der Agent diesen Text als Teil der Aufgabe interpretieren, sofern das System Evidenz und Autorität nicht klar trennt.
Diese Trennung wird für produktive KI-Entwicklung zentral.
Die neue Trust Boundary liegt um den Kontext
Klassische Application Security konzentriert sich stark auf Eingaben, die in eine Anwendung gelangen: Formulare, API Requests, Uploads, Webhooks, Query Parameter, Auth Tokens, Datenbankzugriffe und so weiter.
KI-gestützte Entwicklung fügt eine zweite Klasse von Eingaben hinzu: Kontext, der in einen Agenten gelangt.
Dieser Kontext kann enthalten:
- Applikationslogs;
- Monitoring-Events;
- Sentry-Issues;
- CI-Ausgaben;
- Pull-Request-Kommentare;
- Jira- oder Linear-Tickets;
- Slack-Threads;
- Kundensupport-Konversationen;
- Dokumentationsseiten;
- Datenbankschemas;
- Terminalausgaben;
- MCP-Tool-Antworten;
- Code, der von einem anderen Agenten generiert wurde.
Jede Quelle hat ein anderes Vertrauensniveau. Manche sind intern. Manche extern. Manche teilweise nutzergesteuert. Manche maschinell erzeugt. Manche können von vielen Menschen bearbeitet werden. Manche enthalten Secrets. Manche enthalten Angreifer-Strings, weil die Anwendung sie während eines Incidents geloggt hat.
Wenn all das zu einem einzigen undifferenzierten Prompt wird, kann der Agent Autorität kaum sauber einordnen.
Deshalb reicht “wir haben dem Modell gesagt, es soll nichts Gefährliches tun” nicht aus. Prompt-Regeln helfen, aber sie sind keine Architektur. Ein produktives System braucht Controls, die nicht komplett davon abhängen, dass das Modell die Falle erkennt.
Die nützliche Frage lautet nicht nur:
“Kann der Agent das lesen?”
Sondern:
“Was darf diese Quelle beeinflussen?”
Eine öffentliche Fehlermeldung darf dem Agenten helfen, einen Bug zu lokalisieren. Sie sollte ihm nicht erlauben, einen Shell-Befehl anzuweisen. Ein Ticket darf gewünschtes Verhalten beschreiben. Es sollte keinen Datenbankzugriff verleihen. CI-Output darf einen fehlschlagenden Test zeigen. Er sollte kein Grund sein, Review zu umgehen.
Auch Kontext braucht Berechtigungen.
Warum das für seriöse Produkte zählt
Bei einem Prototyp wirkt das Risiko vielleicht abstrakt. Ein Entwickler experimentiert lokal, das Repository ist klein, und der Agent generiert vor allem Code, den jemand liest.
Bei einem ernsthaften Produkt ist die Lage anders.
Der Agent hat möglicherweise Zugriff auf:
- privaten Source Code;
- Environment Variables;
- Git Credentials;
- Package-Registry-Tokens;
- produktionsnahe Daten;
- Deployment-Skripte;
- Cloud-Projekt-Metadaten;
- interne Dokumentation;
- kundenspezifische Bug Reports;
- sicherheitssensitive Logs.
Selbst wenn der Agent nicht direkt deployen kann, kann er Schaden anrichten. Er kann Code schreiben. Er kann Tests verändern. Er kann Konfiguration bearbeiten. Er kann Pull Requests öffnen. Er kann Shell-Befehle empfehlen. Er kann Migrationen erzeugen. Er kann eine plausible Erklärung für eine schlechte Änderung liefern.
Deshalb behandelt McDougall Digital KI-gestützte Entwicklung als Operating Model, nicht nur als Tooling-Entscheidung.
Die Frage lautet nicht: “Sollten wir Claude Code, Cursor, Devin, Replit oder ein anderes Tool verwenden?”
Die bessere Frage lautet:
“Welche Privilegien braucht ein KI-gestützter Workflow wirklich, und wo stoppen wir ihn bewusst?”
Das ist eine Architekturfrage. Sie betrifft Repository-Struktur, Credentials, Deployment-Rechte, Review-Prozess, Logging, Observability, Datenschutz und Teamgewohnheiten.
Für Kunden im deutschen Markt ist das besonders relevant. Viele Mittelstandsteams bauen keine Wegwerf-Apps. Sie bauen Systeme, die in Betrieb, Kundenprozesse, Lieferantenbeziehungen, Finanzen, Logistik, Gesundheitsdaten, HR-Daten oder regulierte Umgebungen hineinreichen. Das Risiko ist nicht nur eine kompromittierte Demo. Es ist ein geschwächter Geschäftsprozess.
Ein praktisches Trust Model für KI-Coding-Agenten
Die richtige Reaktion ist nicht Panik.
Die richtige Reaktion ist ein Trust Model.
Beginnen Sie mit dem Agenten-Workflow. Welche Systeme darf der Agent lesen? In welche Systeme darf er schreiben? Welche Befehle darf er ausführen? Welche Credentials sind in seiner Umgebung verfügbar? Welche Dateien darf er ändern? Welche Aktionen brauchen einen Menschen? Welche Ergebnisse werden reviewed, bevor sie produktionsnah wirken?
Danach klassifizieren Sie die Kontextquellen.
1. Operative Daten standardmäßig als untrusted behandeln
Logs, Monitoring-Events, Error Reports und kundennah erzeugte Eingaben sollten als untrusted gelten, selbst wenn sie durch interne Tools kommen.
Das macht sie nicht nutzlos. Es bedeutet: Sie sind Evidenz, keine Autorität.
Ein Agent kann ein Error Event nutzen, um einen Fehler zu verstehen. Er sollte keine Anweisungen ausführen, die in diesem Event eingebettet sind. System Prompt, Agent Runner und Review-Prozess sollten diese Grenze explizit machen.
2. Lesen und Handeln trennen
Ein Agent, der ein Sentry-Issue lesen kann, braucht nicht automatisch das Recht, beliebige Shell-Befehle auszuführen.
Ein Agent, der CI-Output prüfen kann, braucht nicht automatisch das Recht, Deployment-Konfiguration zu verändern.
Ein Agent, der eine Migration entwerfen kann, braucht nicht automatisch das Recht, sie auszuführen.
Lesen und Handeln sollten getrennte Fähigkeiten sein. Je sensibler die Aktion, desto klarer sollte der Freigabepfad sein.
3. Least-Privilege-Credentials verwenden
Agenten sollten nicht in einer Entwicklerumgebung laufen, in der alle nützlichen Secrets ohnehin verfügbar sind.
Das ist unbequem, weshalb viele Teams es trotzdem tun. Aber genau dadurch entsteht der große Blast Radius, den indirekte Prompt Injection ausnutzen will.
Agenten sollten möglichst scoped Tokens, begrenzte Umgebungen, temporäre Credentials und separate Service Accounts verwenden. Wenn ein Agent keinen Produktionszugriff braucht, sollte er Produktionssecrets auch nicht zufällig erreichen können.
4. Redaction vor dem Agentenkontext
Wenn Logs Tokens, personenbezogene Daten, Kundenkennungen oder sensible Betriebsdetails enthalten, sollte die Lösung nicht lauten: Hoffen, dass das Modell vorsichtig damit umgeht.
Filtern oder redigieren Sie, bevor die Daten in den Agentenkontext gelangen.
Das ist Security und Datenschutz zugleich. Für europäische Teams passt es direkt zum GDPR-Prinzip der Datenminimierung: Nur die Daten bereitstellen, die für die Aufgabe wirklich nötig sind.
5. Menschliche Freigabe für Boundary-Crossing Actions
Manche Änderungen verdienen jedes Mal explizites menschliches Review:
- Authentifizierung und Autorisierung;
- Datenmodell-Änderungen;
- Migrationen;
- Dependency-Upgrades mit Security-Relevanz;
- Deployment-Konfiguration;
- Infrastruktur;
- Logging und Telemetrie;
- Payment-, Finance- oder Kundendaten-Workflows;
- produktionsnahe Incident-Fixes.
KI kann die Änderung vorbereiten. Sie kann sie erklären. Sie kann Tests vorschlagen. Sie kann Rollback-Notizen entwerfen. Aber sie sollte wichtige Produkt-, Security- oder Betriebsgrenzen nicht still überschreiten.
6. Der Agent muss Evidenz liefern
Ein nützlicher Agent sagt nicht nur “fixed”.
Er sollte Evidenz liefern:
- welche Quellen er genutzt hat;
- was er als untrusted ignoriert hat;
- welche Dateien geändert wurden;
- welche Tests liefen;
- welche Risiken bleiben;
- was menschliches Review braucht;
- was nach dem Release beobachtet werden sollte.
So wird KI von einem magischen Assistenten zu einem Teilnehmer in einem Delivery-Prozess.
Das klingt weniger spektakulär, ist aber sehr viel nützlicher.
MCP braucht Architektur, nicht nur Begeisterung
MCP-artige Integrationen sind spannend, weil sie Agenten fähiger machen. Gleichzeitig machen sie das Trust-Problem konkret.
Ein isolierter Coding Assistant kann nur begrenzt handeln. Ein Agent, der mit Monitoring, Tickets, GitHub, Datenbanken, Cloud-Tools, Dokumentation und lokaler Shell verbunden ist, kann deutlich mehr. Genau das ist der Sinn.
Aber jede Integration beantwortet zwei Fragen:
Was darf der Agent wissen?
Was darf der Agent tun?
Viele Teams beantworten die erste Frage begeistert und die zweite versehentlich.
Das ist die falsche Reihenfolge.
Bevor ein Agent mit einem neuen Tool verbunden wird, sollte klar sein:
- ob die Tool-Ausgabe nutzergesteuerte Daten enthalten kann;
- ob die Tool-Ausgabe Secrets oder personenbezogene Daten enthalten kann;
- ob der Agent Evidenz von Anweisung unterscheiden kann;
- ob die Integration read-only oder write-fähig ist;
- ob Schreibzugriffe sandboxed sind;
- ob Credentials scoped sind;
- ob sensitive Aktionen ein Audit Trail hinterlassen;
- ob ein Mensch das Ergebnis verstehen und rückgängig machen kann.
Das ist nicht anti-KI. Es ist die Arbeit, die KI in echten Unternehmen nutzbar macht.
Die Teams, die am meisten von KI-Coding-Agenten profitieren, werden nicht die mit der längsten Integrationsliste sein. Es werden die mit den klarsten Grenzen sein.
Was Entscheider vor dem Skalieren fragen sollten
Wenn Ihr Team bereits KI-Coding-Tools nutzt, ist jetzt ein guter Moment für ein paar direkte Fragen.
Wo darf ein Agent aktuell lesen?
Wo darf er schreiben?
Welche Secrets sind in der Umgebung verfügbar, in der er läuft?
Kann ein externer oder halb-externer Nutzer Text beeinflussen, der den Agenten erreicht?
Behandeln Agenten Logs, Tickets und Monitoring-Events als untrusted Input?
Kann ein Agent Befehle ausführen, die von solchen Quellen vorgeschlagen werden?
Sind generierte Änderungen klein genug für echtes Review?
Werden riskante Änderungen klar gekennzeichnet?
Gibt es einen separaten Review-Pfad für security-sensitive, daten-sensitive und produktionsnahe Arbeit?
Lässt sich später rekonstruieren, warum ein Agent eine Änderung vorgenommen hat?
Wenn diese Fragen schwer zu beantworten sind, ist das Problem nicht das KI-Tool. Das Problem ist, dass das Operating Model noch informell ist.
Das ist normal. Die meisten Teams haben KI-Coding-Tools von unten nach oben eingeführt. Ein Entwickler hat sie ausprobiert, sie waren nützlich, und die Nutzung hat sich verbreitet. So entdeckt man Wert. So steuert man aber noch keinen Produktionseinfluss.
Irgendwann muss KI-gestützte Entwicklung von persönlicher Produktivität in Team-Architektur übergehen.
Der sinnvolle Weg nach vorn
Agentjacking ist als Warnsignal nützlich, weil es ein abstraktes Risiko leicht verständlich macht.
Die langfristige Lehre ist aber größer als ein einzelner Angriffsname.
KI-Coding-Agenten werden Teil des Software-Delivery-Systems. Sie sind nicht mehr nur Autocomplete. Sie lesen Kontext, bilden Pläne, editieren Dateien, führen Tools aus, fassen Fehler zusammen und schlagen produktionsnahe Fixes vor.
Deshalb brauchen sie dieselbe Ernsthaftigkeit, die wir auch auf andere Teile von Delivery anwenden:
- klare Verantwortlichkeiten;
- Least Privilege;
- Input Validation;
- Review Gates;
- Audit Trails;
- Datenminimierung;
- Rollback-Planung;
- operatives Monitoring;
- menschliche Ownership für wichtige Entscheidungen.
Die besten Teams werden darauf nicht mit einem KI-Verbot reagieren. Sie werden Agenten sicherer und nützlicher machen.
Sie geben Agenten genug Kontext, um zu helfen, aber nicht genug Autorität, um leise Schaden anzurichten. Sie lassen Agenten Fixes vorbereiten, verlangen aber Evidenz vor dem Merge. Sie verbinden Agenten mit Tools, klassifizieren diese Tools aber nach Vertrauensniveau. Sie nutzen KI, um Tests, Dokumentation, Observability und Review-Qualität zu verbessern, nicht nur um mehr Code zu erzeugen.
Das ist der praktische Mittelweg.
McDougall Digital hilft Teams, genau diesen Mittelweg zu bauen: KI-gestützte Softwareentwicklung mit architekturorientierter Delivery, wartbaren Codebases, sicherheitsbewussten Workflows und Operating Models, die zu seriösen Produkten passen. Für Gründer, CTOs und Mittelstandsteams geht es nicht darum, starke Tools zu vermeiden. Es geht darum, diese Tools in ein System zu setzen, das ihre Geschwindigkeit verdient.
Ihre Logs sind wertvoll.
Ihre Monitoring-Daten sind wertvoll.
Ihre Tickets, CI-Ausgaben und MCP-Integrationen sind wertvoll.
Aber sie sind keine Autorität.
Behandeln Sie sie als Evidenz. Gestalten Sie den Agenten-Workflow um diese Tatsache herum. Dann können KI-Coding-Tools zu einem ernsthaften Delivery-Vorteil werden, statt zu einer neuen ungeprüften Angriffsoberfläche.