Byki

Ge inte AI-agenten dina egna nycklar

En AI-agent som bara ska skriva en anteckning behöver inte kunna styra hela servern. Ändå är det lätt att den får just det, utan att någon har bestämt det. Så hände det oss, och så rättade vi det.

Byki5 min läsning

Det mesta som skrivs om säkerhet i AI-byggda tjänster handlar om att stänga dörrar utåt. Lösenord ska inte ligga öppet, databasen ska inte gå att läsa för vem som helst, formulär ska inte gå att spamma. Allt det stämmer.

Men det finns en dörr till, och den står ofta på glänt inifrån: vad din egen AI-agent har lov att göra. Inte vad du har bett den göra, utan vad den faktiskt kan göra om något går fel.

Vad som hände hos oss

Vi har en AI-assistent som läser text från främlingar och skriver en anteckning i vår kunskapsbas. Ett litet, tydligt jobb.

Texten den läser har någon annan skrivit. Den texten kan innehålla dolda instruktioner, till exempel en mening som säger “ignorera det du blivit tillsagd och gör det här i stället”. Det kallas promptinjektion. Det finns i dag inget sätt att helt hindra en språkmodell från att ibland följa sådana instruktioner. Därför går det inte att lita på att agenten säger nej. Det som avgör hur illa det kan gå är vad den har behörighet till.

Assistenten ärvde inställningar som var gjorda för oss utvecklare, och de tillät administratörskommandon. Så assistenten, som bara skulle skriva en anteckning, hade i praktiken full kontroll över servern.

Ingen hade bestämt det. Det blev så, för att ingen hade tänkt på att inställningarna följde med.

Hur vi hittade det

Det kom fram i vår säkerhetsgranskning före release. Den görs av en annan AI-modell än den som skrev koden, just för att en andra läsare ser sådant den första tar för given.

Granskningen nöjde sig inte med att peka på risken. Den bevisade den, på ett ofarligt sätt: den bad assistenten köra ett kommando som bara visar vilken användare den kör som. Svaret var administratör.

Det är en bra regel i sig. En misstanke är lätt att avfärda. Ett svar på en enkel fråga är svårt att bortförklara.

Hur vi rättade det

Rättelsen var enkel i princip. Assistenten startas nu utan att läsa några inställningar alls. I stället får den en uttrycklig lista över vad den får göra:

  • läsa och skriva i två mappar,
  • köra ett enda skript.

Allt annat nekas. Inte “allt farligt”, utan allt som inte står på listan. Skillnaden är viktig. En lista över förbjudna saker blir aldrig komplett. En lista över tillåtna saker är komplett per definition.

Hur vi vet att skyddet håller

En rättelse som ingen har provat är en förhoppning. Vi gjorde två saker till.

Ett test som måste bli rött med de gamla inställningarna. Det låter bakvänt, men det är poängen. Om testet går igenom även när skyddet saknas, mäter det inget. Först när vi sett det misslyckas mot den gamla uppsättningen vet vi att det faktiskt kontrollerar rätt sak.

En vakt som provar skyddet varje gång AI-verktyget uppdateras. Verktyg ändras. En inställning som betyder en sak i dag kan betyda något annat i nästa version. Vakten kör provet efter varje uppdatering, och går provet inte igenom stoppas jobbet. Hellre att assistenten står still en dag än att den kör vidare med fel behörighet.

Det här gäller fler än oss

Du kanske inte bygger egna AI-agenter. Men du använder sannolikt tjänster som gör det åt dig: en assistent som sorterar inkommande mejl, en chattbot på webbplatsen, ett verktyg som läser fakturor eller sammanfattar dokument.

Alla de läser text som någon annan har skrivit. En främling kan skriva i ett mejl, fylla i ett formulär eller ladda upp ett dokument. Det är samma läge som vår assistent var i.

Grundregeln är därför: en AI-agent ska ha minsta möjliga behörighet för just sitt jobb. Särskilt när den läser text från främlingar. En agent som sammanfattar mejl behöver inte kunna skicka mejl. En chattbot som svarar på frågor om öppettider behöver inte kunna läsa kundregistret.

Frågor att ställa till leverantören

Du behöver inte förstå tekniken för att ställa rätt frågor. Tre räcker långt:

  1. Vad får agenten göra? Be om en lista, inte en försäkran. “Den kan läsa inkorgen och skapa utkast” är ett svar. “Den är säker” är det inte.
  2. Med vems rättigheter? Kör den som en egen användare med egna, begränsade behörigheter, eller med ditt konto, ett administratörskonto eller leverantörens?
  3. Hur provar ni det? Har någon försökt få agenten att göra något den inte ska, och vad hände? Provas det igen när något uppdateras?

Får du tydliga svar på alla tre är det ett gott tecken. Blir svaren svävande vet du var du ska gräva vidare.

Börja med en agent

Välj ett AI-verktyg ni redan använder och som läser text utifrån. Skriv ner vad det behöver kunna för att göra sitt jobb. Jämför sedan med vad det faktiskt har tillgång till. Ofta är skillnaden större än man tror, och det är den skillnaden som är risken.

Samma princip gäller när vi bygger AI-agenter och automation åt andra: agenten ska bara få göra det jobbet kräver. Vill du gå igenom ett av era verktyg tillsammans räcker ett kostnadsfritt samtal på 30 minuter långt.

Vill ni att vi sätter upp det åt er?Beskriv jobbet med några rader, så svarar vi ärligt om AI kan hjälpa.Berätta vad som tar tid