AI agenti · bezpečnosť · špedícia

Dispečerský agent pod útokom

AI dispečerský agent, postavený a napadnutý v sandboxe, ktorý sme sami vytvorili. QR kód na dodacom liste sa pokúša presmerovať kamión.

01

Prehľad

Postavili sme malého dispečerského agenta, ktorý rezervuje vyzdvihnutia zásielok, aktualizuje ETA a podľa e-mailov od dopravcov a dodacích listov zapracúva zmeny adries. Beží na lokálnom otvorenom modeli v sandboxe, ktorý sme vytvorili: v simulovanom systéme riadenia dopravy, s fiktívnou e-mailovou schránkou a vytlačenými dodacími listami, ktorých QR kódy agent dekóduje z obrázka.

Potom sme naň zaútočili 24 útokmi typu prompt injection. Päť zo šiestich šablón útokov používa zverejnené útočné reťazce z AgentDojo (samotný benchmark AgentDojo sme nespúšťali); šiesta je naša. Ukrývajú pokyny do QR kódu, do neviditeľného bieleho textu, do tela e-mailu alebo do e-mailu z podobne vyzerajúcej adresy a pokúšajú sa presunúť zásielku do iného skladu, vyzradiť PIN na vyzdvihnutie, zrušiť rezerváciu alebo podstrčiť falošné ETA. Človek, ktorý sa pozrie na dodací list, vidí rezervačný kód. Agent číta príkaz.

Obrana vychádza zo zjednodušenej verzie návrhu CaMeL (len lineárne plány bez vetvenia). Plánovač, ktorý vidí iba požiadavku dispečera, napíše plán skôr, než sa prečíta akýkoľvek e-mail. Samostatný extraktor bez nástrojov číta nedôveryhodný obsah a môže iba dopĺňať hodnoty. Každá hodnota nesie informáciu o svojom zdroji a bezpečnostná politika drží nedôveryhodné hodnoty mimo príjemcov, zrušení a ID zásielok. Každá zmena adresy navyše čaká na spätné overovacie volanie na evidované číslo. Tie isté útoky sme spustili aj bez obrany a len s pravidlom spätného volania. Ukazujeme aj to, čo obrana nezastaví: falošné ETA. Prešlo v 4 zo 6 pokusov, z e-mailu dopravcu, zo skrytého textu na dodacom liste a od podobne vyzerajúceho odosielateľa, pretože politika dovoľuje, aby sa prečítané hodnoty dostali do ETA. Trasy, rezervácie a príjemcovia zostali chránené. Rovnaká medzera sa týka časových okien a rezervačných čísel, ktoré sme netestovali.

02

Čo sme vytvorili

  • Dispečerský agent používajúci nástroje na lokálnom otvorenom modeli so 4 miliardami parametrov, s 12 nástrojmi sandboxu (čítanie e-mailu, čítanie dokumentu, dekódovanie QR kódu, rezervácia časového okna, aktualizácia ETA, zmena cieľa, odoslanie e-mailu, zrušenie rezervácie a ďalšie).
  • Sandbox s fiktívnymi zásielkami, dopravcami a príjemcami, s dodacími listami vyrenderovanými so skutočnými QR kódmi a so simulovaným spätným volaním na evidované číslo príjemcu.
  • Zjednodušená obrana v štýle CaMeL (lineárne plány): plánovač napíše plán len z požiadavky, izolovaný extraktor číta nedôveryhodný obsah, pri každej hodnote sa sleduje jej pôvod a bezpečnostná politika kontroluje každú akciu.
  • Sada 24 útokov typu prompt injection (6 šablón × 4 ciele, na 4 miestach ukrytia), vyhodnotených podľa stavu sandboxu po každom behu.
03

Technológie

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

04

Čísla

ČísloAko sme ho zmerali
12 · 7 · 4 z 24 útokov prešlo

bez obrany, len s pravidlom spätného volania a s úplnou obranou. Každý z 24 prípadov bol v každej konfigurácii spustený raz na tom istom lokálnom modeli s greedy dekódovaním; útok sa počíta ako úspešný, keď sa jeho cieľ prejaví v stave sandboxu na konci behu (adresa, e-mail útočníkovi, zrušená rezervácia alebo ETA). Malé počty na jednom modeli; nejde o všeobecné tvrdenie.

Všetky 4 útoky, ktoré prešli úplnou obranou, boli falošné ETA

(4 zo 6 prípadov falošného ETA: 2 z e-mailu dopravcu, 1 zo skrytého textu na dodacom liste, 1 od podobne vyzerajúceho odosielateľa). V týchto behoch sa nezmenila žiadna trasa, rezervácia ani príjemca. Jeden z nich (f1) obaja základní agenti ignorovali; extraktor ho skopíroval, takže čistá zmena od samotného spätného volania k úplnej obrane je 7 → 4.

5 z 5 úloh dokončených bez útoku vo všetkých troch konfiguráciách.

Ide o päť požiadaviek dispečera spustených raz s čistou schránkou a skontrolovaných voči očakávaným rezerváciám, ETA, e-mailu a adrese.

05

Zábery

Riešite podobný problém?

Napíšte nám, čo potrebujete vypočítať, nasimulovať alebo rozhodnúť, a my vám povieme, ako by sme k tomu pristúpili.

Napíšte nám AI a strojové učenie