Sikring af AI-agenter og tool use
Begræns autonome agenters handlinger.
Sikring af AI-agenter og tool use er en gratis Cyber Security Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Cyber Security Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
Hvad gør agenter risikable
En AI-agent er en LLM, der er forbundet med værktøjer og en løkke: Den ræsonnerer, kalder funktioner (søgning, kodekørsel, API'er, filadgang), observerer resultater og gentager processen, indtil et mål er nået. Denne selvstændighed er både kraftfuld og farlig.
Det centrale sikkerhedsskift er, at et dårligt resultat med en almindelig chatbot kun er tekst. Med en agent bliver en dårlig beslutning til en reel handling: en slettet post, en sendt e-mail, en brugt dollar eller en lækket hemmelighed.
Fordi ubetroet indhold kan komme ind i ræsonneringsløkken, er ethvert værktøj, agenten har adgang til, en angrebsflade for promptinjektion.
Mindste privilegium for værktøjer
Den vigtigste enkeltstående kontrol er mindste mulige privilegier. Giv hvert værktøj den snævrest mulige afgrænsning, der stadig løser opgaven.
- Foretræk skrivebeskyttet adgang frem for læse- og skriveadgang; begræns læsninger til den aktuelle brugers data.
- Opdel brede værktøjer i snævre værktøjer (et
get_invoice-værktøj, ikke et råt SQL-værktøj). - Knyt værktøjets legitimationsoplysninger til slutbrugerens identitet, ikke til en delt tjenestekonto, så agenten kun arver det, brugeren må gøre.
# Scope queries to the authenticated user, never raw SQL
def get_invoice(invoice_id: str, *, user_id: str):
return db.query(
"SELECT * FROM invoices WHERE id=%s AND owner=%s",
(invoice_id, user_id),
)Kontrolpunkter med menneske i løkken
For handlinger med stor indvirkning eller handlinger, der ikke kan fortrydes, skal du kræve udtrykkelig menneskelig godkendelse før udførelsen. Agenten foreslår; en person bekræfter.
- Udsendelse af eksterne e-mails eller beskeder.
- Finansielle transaktioner eller køb.
- Sletning eller overskrivning af data.
- Udrulning af kode eller ændring af infrastruktur.
Vis brugeren den præcise handling og argumenterne i et klart sprog, så vedkommende kan opdage en indsat eller hallucineret kommando, før den køres.
Kørsel af kode og kommandoer i sandkasse
Agenter, der kører kode eller shell-kommandoer, skal gøre det i en isoleret sandkasse, aldrig på værten.
- Brug midlertidige containere eller microVM'er uden monteringer fra værten.
- Deaktivér netværksadgang som standard; tillad kun udgående trafik til en eksplicit tilladelsesliste.
- Sæt grænser for CPU, hukommelse og tid for at begrænse løbsk eller ondsindet kode.
- Kør som en ikke-privilegeret bruger, der ikke er root, med et skrivebeskyttet rodfilsystem.
docker run --rm \
--network none \
--read-only \
--user 1000:1000 \
--memory 256m --cpus 0.5 \
--pids-limit 64 \
agent-sandbox:latest python /work/task.pyBryd den dødelige trefaktor
En agent bliver et værktøj til dataeksfiltration, når den samtidig har adgang til private oplysninger, udsættes for ubetroet indhold og kan kommunikere eksternt. Den kombination er den dødelige trefaktor.
Design arbejdsgangen, så mindst ét ben fjernes:
- Isolér sessioner, der håndterer ubetroet indhold, fra sessioner med adgang til følsomme data.
- Begræns udgående netværkstrafik til en streng tilladelsesliste.
- Kræv godkendelse før enhver ekstern afsendelse, når private oplysninger er i konteksten.
Ubetroede værktøjsresultater
Værktøjsresultater kommer tilbage i modellens kontekst, så værktøjsresultater er ubetroede inddata. En webside, en hentet fil eller et API-svar kan indeholde indsatte instruktioner, der er rettet mod det næste ræsonneringstrin.
- Indram værktøjsresultater med tydelige afgrænsere, og mærk dem som data, ikke kommandoer.
- Fjern eller neutralisér skjult tekst (HTML-kommentarer, tegn uden bredde, CSS, der placerer indhold uden for skærmen).
- Begræns størrelsen på indsat indhold for at begrænse pladsen til en nyttelast.
Lad aldrig rå værktøjsresultater i stilhed diktere det næste værktøjskald uden politikontroller.
Tilladelseslister for handlinger og håndhævelse af politikker
Stol ikke på, at modellen kontrollerer sig selv. Håndhæv et politiklag i koden mellem agenten og hvert værktøj.
- Valider hvert værktøjskald mod en tilladelsesliste over tilladte handlinger og argumentstrukturer.
- Afvis kald, der ligger uden for den aktuelle opgaves afgrænsning.
- Anvend hastighedsbegrænsninger og budgetter pr. værktøj og pr. bruger.
Denne deterministiske kontrol fungerer uanset modellens beslutning, så en vellykket injektion stadig rammer en fast barriere.
def authorize(call):
if call.name not in ALLOWED_TOOLS:
raise PolicyError("tool not allowed")
if not SCHEMA[call.name].validate(call.args):
raise PolicyError("bad arguments")
if exceeds_budget(call):
raise PolicyError("rate limit")Begrænsning af løkken
Selvstændige løkker kan løbe løbsk: uendelige gentagelser, rekursive værktøjskald og løbsk forbrug (økonomisk tjenestenægtelse). Afgræns dem.
- Begræns det maksimale antal trin og det samlede antal tokens pr. opgave.
- Sæt tidsgrænser for hele kørslen.
- Følg de samlede omkostninger, og afbryd ved en fastsat grænse.
- Opdag løkker (gentagne identiske kald), og bryd dem.
Disse grænser dæmper også DoS-angreb og angreb med ubegrænset forbrug (OWASP LLM10).
Risici ved hukommelse og flere agenter
Vedvarende agenthukommelse og systemer med flere agenter skaber nye angrebsflader:
- Forgiftning af hukommelse: En injektion, der skrives til langtidshukommelsen i én session, påvirker senere sessioner. Validér og afgræns det, der gemmes permanent.
- Tillid mellem agenter: Én kompromitteret agent kan indsætte instruktioner i en anden. Behandl meddelelser mellem agenter som ubetroede.
- Forvirret stedfortræder: En privilegeret agent, der handler efter en anmodning fra en agent med lavere tillid. Videregiv den oprindelige aktørs autorisation gennem hele kæden.
Logning og observerbarhed
Du kan ikke sikre det, du ikke kan se. Instrumentér hele agentens spor:
- Log hvert værktøjskald, dets argumenter og dets resultat.
- Registrér ræsonneringskonteksten og alt hentet indhold til efterforskning.
- Udsend alarmer ved afvigelser: uventet udgående trafik, brug af privilegier, gentagne afvisninger, pludselige omkostningsstigninger.
- Bevar et uforanderligt revisionsspor, der er knyttet til den handlende bruger.
God telemetri gør en ubemærket kompromittering til en hændelse, der kan opdages og undersøges.
En lagdelt agentarkitektur
Samlet set ser en robust agentarkitektur sådan ud:
- Identitet: Handlinger udføres som slutbrugeren med afgrænsninger, der anvender mindst mulige privilegier.
- Politikkontrolpunkt: Deterministisk tilladelsesliste og skemavalidering ved hvert værktøjskald.
- Sandkasse: Isoleret udførelse med begrænset netværk og begrænsede ressourcer.
- Menneskelige kontrolpunkter: Godkendelse af uigenkaldelige handlinger.
- Grænser: Budgetter for trin, tokens, tid og omkostninger.
- Observerbarhed: Fuld revisionslogning og alarmer ved afvigelser.
Antag, at modellen kan kapres; sørg for, at skadeomfanget forbliver begrænset, hvis det sker.
Hurtigt tjek
Test din forståelse af sikkerhedskontroller for agenter.
Opsummering
Sikring af AI-agenter og brug af værktøjer:
- Agenter forvandler dårlige resultater til virkelige handlinger, så hvert værktøj er en angrebsflade.
- Anvend mindst mulige privilegier for hvert værktøj, og bind legitimationsoplysninger til slutbrugeren.
- Kræv menneskelig godkendelse for irreversible handlinger, og kør kode i en sandkasse.
- Bryd det dødelige trekløver, og betragt resultater fra værktøjer som upålidelige inddata.
- Håndhæv en deterministisk politikport (tilladelseslister, skemavalidering) i koden, ikke i instruktionen.
- Begræns forløbet (trin, tokens, tid, omkostninger), og registrer hvert kald af et værktøj med henblik på detektion.
Lær Cyber Security Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 303
Ofte stillede spørgsmål
Er lektionen “Sikring af AI-agenter og tool use” gratis?
Ja — alle 3 lektioner i læringssporet Cyber Security Academy, inklusive “Sikring af AI-agenter og tool use”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Sikring af AI-agenter og tool use”?
Begræns autonome agenters handlinger. Du øver dig i Cyber Security Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cyber Security Academy?
Der kræves ingen tidligere erfaring. Cyber Security Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Sikring af AI-agenter og tool use”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cyber Security Academy-lektion?
Ja. Alle Cyber Security Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Prompt injection og jailbreaks
- OWASP LLM Top 10
- Sikring af AI-agenter og tool use
- Risici ved modeller, data og supply chain