Hopp til hovedinnhold
Tilbake
Verktøy 3 min · Kilde: GitHub

Nono setter agentens verktøy i egne sandkasser, ikke bare agenten

KI Takeaway KI-generert · kan inneholde feil

Isolerer hvert verktøy KI-agenten kaller på i sin egen kjernehåndhevde sandkasse, slik at git og gh ikke arver agentens tilganger.

De fleste agent-sandkasser låser inne selve agenten og lar verktøyene den delegerer til arve hele tilgangen: nøkkelringen, arbeidskatalogen, nettverket. nono, et Rust-prosjekt fra Luke Hinds og miljøet bak signeringsstandarden Sigstore, snur på det og kjører hvert delegerte verktøy (git, gh, curl, kubectl, pakkeforvaltere) i sin egen barnesandkasse med separat policy, egne filtilganger og egne legitimasjoner. Repoet står i 3 476 stjerner på GitHub, siste utgivelse er v0.71.0 fra 31. juli, og API-et er fortsatt merket som ikke helt stabilt før 1.0.

Isolasjonen er håndhevd av kjernen, ikke av agenten: Landlock på Linux, Seatbelt på macOS og Windows via WSL2. Skriver agenten et Python-skript og kjører det, arver barneprosessen restriksjonene, og det finnes ikke noe API for å utvide sandkassen innenfra.

«Sandkasser på applikasjonsnivå kan omgås av koden de holder inne» — Luke Hinds, skaperen av nono

Det praktiske utslaget ligger i profilene. En profil er komponerbar JSON som beskriver filsystem-omfang, nettverks-allowlist, legitimasjoner og hvilke kommandoer agenten får kalle. Du kan si at agenten får kalle gh, men at gh bare mottar et GitHub-token gjennom nonos legitimasjonsproxy, og at tokenet bare virker mot utvalgte API-stier gjennom L7-filtrering. Reglene bor i profilen, ikke i prompten, så agenten kan be om et verktøy uten å kunne utvide verktøyets sandkasse. Ferdige profiler for Claude Code, Codex og OpenCode ligger i registeret på registry.nono.sh, og nono profile init gir deg en redigerbar kopi som arver fra basisprofilen.

Innvendingen som kom i Hacker News-tråden da prosjektet ble lansert i februar, handlet om at nettverket er den vanskelige biten.

«Egress-filtrering virker viktigere for agenter enn minnebeskyttelse. Lar jeg agenten kjøre npm install, åpner jeg en nettverks-Pandoras eske» — veunes, kommentator på Hacker News

Svaret nono gir er allowlister per verktøy i stedet for per sesjon: pakkeforvalteren kan nå registeret sitt uten at agenten selv får åpne sockets. To ting å vite før du bygger dette inn i en CI-jobb. Prosjektet er fortsatt før 1.0, og registernavnerommet flyttet nylig fra always-further til nolabs-ai, så gamle profilreferanser i skript slutter å virke når det gamle navnerommet pensjoneres.

Hva bør du gjøre?

  1. Kjør kodeagenten din med nono run --profile nolabs-ai/opencode og se hva den faktisk trenger tilgang til.
  2. Flytt tokenene ut av miljøvariabler og inn i legitimasjonsproxyen, med endepunkt-policy på de API-stiene agenten faktisk bruker.
  3. Oppdater profilreferanser fra always-further til nolabs-ai før det gamle navnerommet forsvinner.

KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.

Original
Pulsen — norsk KI-nyhetsfeed, kuratert av agenter