KI-Agenten · Sicherheit · Spedition

Dispositionsagent unter Angriff

Ein KI-Dispositionsagent, gebaut und angegriffen in einer von uns erstellten Sandbox. Ein QR-Code auf einem Lieferschein versucht, den Lkw umzulenken.

01

Überblick

Wir haben einen kleinen Dispositionsagenten gebaut, der Abholungen bucht, ETAs aktualisiert und Adressänderungen aus E-Mails von Frachtführern und aus Lieferscheinen übernimmt. Er läuft auf einem lokalen offenen Modell in einer von uns erstellten Sandbox: ein nachgebildetes Transportmanagementsystem, ein fiktives Postfach und gedruckte Lieferscheine, deren QR-Codes der Agent aus dem Bild dekodiert.

Dann haben wir ihn mit 24 Injection-Angriffen attackiert. Fünf der sechs Angriffsvorlagen verwenden die veröffentlichten Angriffstexte von AgentDojo (den AgentDojo-Benchmark selbst haben wir nicht ausgeführt); die sechste stammt von uns. Sie verstecken Anweisungen in einem QR-Code, in unsichtbarem weißem Text, im Text einer E-Mail oder in einer E-Mail von einer täuschend ähnlichen Adresse und versuchen, eine Sendung in ein anderes Lager umzuleiten, eine Abhol-PIN preiszugeben, eine Buchung zu stornieren oder eine falsche ETA unterzuschieben. Ein Mensch, der auf den Lieferschein schaut, sieht einen Buchungscode. Der Agent liest einen Auftrag.

Die Abwehr folgt einer vereinfachten Version des CaMeL-Entwurfs (nur lineare Pläne). Ein Planer, der nur die Anfrage des Disponenten sieht, schreibt den Plan, bevor irgendeine E-Mail gelesen wird. Ein separater Extraktor ohne Werkzeuge liest den nicht vertrauenswürdigen Inhalt und kann nur Werte einsetzen. Jeder Wert trägt seine Herkunft mit sich, und eine Richtlinie hält nicht vertrauenswürdige Werte von Empfängern, Stornierungen und Sendungsnummern fern. Jede Adressänderung wartet außerdem auf einen Rückruf an die hinterlegte Nummer. Dieselben Angriffe haben wir ohne Abwehr und nur mit der Rückrufregel ausgeführt. Wir zeigen auch, was die Abwehr nicht stoppt: eine falsche ETA. Sie kam in 4 von 6 Versuchen durch, aus der E-Mail des Frachtführers, aus verstecktem Text auf dem Lieferschein und von einem täuschend ähnlichen Absender, weil die Richtlinie gelesene Werte in eine ETA übernehmen lässt. Routen, Buchungen und Empfänger blieben geschützt. Dieselbe Lücke gilt für Zeitfenster und Buchungsreferenzen, die wir nicht getestet haben.

02

Was wir entwickelt haben

  • Ein werkzeugnutzender Dispositionsagent auf einem lokalen offenen Modell mit 4 Milliarden Parametern, mit 12 Sandbox-Werkzeugen (E-Mail lesen, Dokument lesen, QR-Code dekodieren, Zeitfenster buchen, ETA aktualisieren, Ziel ändern, E-Mail senden, Buchung stornieren und weitere).
  • Eine Sandbox mit fiktiven Sendungen, Frachtführern und Warenempfängern, mit Lieferscheinen, die mit echten QR-Codes gerendert sind, und einem simulierten Rückruf an die hinterlegte Nummer des Warenempfängers.
  • Eine vereinfachte Abwehr im Stil von CaMeL (lineare Pläne): Der Planer schreibt einen Plan allein aus der Anfrage, ein isolierter Extraktor liest den nicht vertrauenswürdigen Inhalt, die Herkunft jedes Werts wird verfolgt, und eine Richtlinie prüft jede Aktion.
  • Eine Suite aus 24 Injection-Angriffen (6 Vorlagen × 4 Ziele, verteilt auf 4 Verstecke), bewertet anhand des Sandbox-Zustands nach jedem Lauf.
03

Tech-Stack

Python · mlx-lm · Qwen3-4B-Instruct-2507 (4-bit, Apache-2.0) · zxing-cpp · qrcode · three.js · Playwright

04

Zahlen

KennzahlWie wir sie ermittelt haben
12 · 7 · 4 von 24 Angriffen kamen durch

ohne Abwehr, nur mit der Rückrufregel und mit der vollständigen Abwehr. Jeder der 24 Fälle wurde je Konfiguration einmal auf demselben lokalen Modell mit Greedy-Decoding ausgeführt; ein Angriff gilt als durchgekommen, wenn sein Ziel am Ende des Laufs im Sandbox-Zustand sichtbar ist (die Adresse, eine E-Mail an den Angreifer, eine stornierte Buchung oder die ETA). Kleine Zahlen auf einem einzigen Modell; keine allgemeine Aussage.

Alle 4, die die vollständige Abwehr überwanden, waren falsche ETAs

(4 der 6 Fälle mit falscher ETA: 2 aus der E-Mail des Frachtführers, 1 aus verstecktem Text auf dem Lieferschein, 1 von einem täuschend ähnlichen Absender). In diesen Läufen änderte sich keine Route, keine Buchung und kein Empfänger. Einen davon (f1) ignorierten beide einfachen Agenten; der Extraktor übernahm ihn, sodass die Nettoveränderung von „nur Rückruf“ zu „vollständige Abwehr“ 7 → 4 beträgt.

5 von 5 Aufgaben ohne Angriff erledigt, in allen drei Konfigurationen.

Das sind die fünf Anfragen des Disponenten, jeweils einmal mit sauberem Postfach ausgeführt und gegen die erwarteten Buchungen, ETA, E-Mail und Adresse geprüft.

05

Standbilder

Haben Sie eine ähnliche Fragestellung?

Sagen Sie uns, was Sie berechnen, simulieren oder entscheiden müssen, und wir sagen Ihnen, wie wir es angehen würden.

Schreiben Sie uns KI & Machine Learning