Læringsløp 03Leksjon 3 / 6

Behandle hentet innhold som ikke-betrodd inndata

Gjenkjenn instruksjoner skjult i repositoryfiler og verktøyresultater. Hold hentet informasjon atskilt fra fullmakten til å handle.

Praktisk10 minGjennomgått

Publisert av Slik skriver vi

Dette lærer du

  • Identifiser en indirekte prompt injection i en utviklingsflyt.
  • Forklar hvorfor tekstetiketter alene ikke kan håndheve en sikkerhetsgrense.
  • Design en trygg test av verktøybegrensninger.

Finn punktet der data blir en instruksjon

En kodeagent leser mer enn brukerens forespørsel. Den kan undersøke issues, repositoryfiler, pakkedokumentasjon, søkeresultater og verktøysvar. Noe av innholdet kan inneholde instruksjoner fra en annen person.

Prompt injection oppstår når slikt innhold leder modellen bort fra den autoriserte oppgaven. En indirekte injeksjon kommer gjennom en hentet kilde, ikke brukerens direkte forespørsel. OWASP beskriver repositorymateriale og verktøyresultater som relevante inngangspunkter. Les forebyggingsveiledningen.

Se for deg en fiktiv vedlikeholdsoppgave. Brukeren ber agenten rette et rapportfilter og kjøre påkrevde tester. En hentet README sier at testene er utdaterte, og ber agenten laste opp en konfigurasjonsfil. README kan forklare prosjektet. Den kan ikke autorisere å hoppe over brukerens kontroller eller sende filer andre steder.

Kartlegg mulige konsekvenser

Samme villedende tekst har ulike konsekvenser i ulike miljøer. Et oppsummeringsverktøy med bare lesetilgang kan lage et feil sammendrag. En agent med skrivetilgang til repositoryet kan endre kode. En agent med hemmeligheter og utgående nettverkstilgang kan eksponere informasjon.

Undersøk tilgjengelige handlinger før du bestemmer hvilke forsvar som betyr noe. List opp sensitive ressurser, skrivbare mål og eksterne mottakere. Ta med koblinger lagt til etter første oppsett. Et nytt verktøy kan øke virkningen av en eksisterende svakhet.

En agent kan også føre villedende innhold videre til et senere trinn. Den kan for eksempel kopiere en ikke-betrodd instruksjon inn i en generert oppgavebeskrivelse. Neste agent må ikke behandle beskrivelsen som en uavhengig godkjent policy.

Bruk flere kontroller med ulike formål

Skill betrodde oppgaveinstruksjoner fra hentede data i applikasjonsdesignet. Vis opprinnelsen til hentet materiale. Trinnene forbedrer tolkningen, men etablerer ikke en komplett sikkerhetsgrense.

Håndhev ressurstillatelser i utførelsessystemet. Begrens mottakere av sensitive data. Krev riktig beslutning før handlinger med vesentlige konsekvenser. Valider den foreslåtte operasjonen mot autorisert oppgave og mål.

Filtre og en annen modell kan hjelpe med å oppdage mistenkelig innhold. De kan også overse angrep eller blokkere legitim informasjon. Ikke erstatt deterministisk autorisasjon med modellens konfidensscore. OWASP påpeker uttrykkelig begrensningene ved å stole på prompter eller gjenfinning alene. Les risikobeskrivelsen.

Test arbeidsflyten uten reell eksponering

Bruk et midlertidig repository og fiktive filer. Gi evalueringen ingen påloggingsopplysninger til produksjon og ingen ubegrenset ekstern skrivetilgang. Innfør en harmløs instruksjon som strider mot oppgaven, som å hoppe over en påkrevd kontroll.

Observer både modellens svar og faktiske verktøyhandlinger. En melding som sier «jeg ignorerte instruksjonen», er utilstrekkelig hvis kontrollen likevel ble hoppet over. Registrer oppgaven, de injiserte testdataene, tillatte verktøy og observert resultat.

Gjenta representative tilfeller etter endringer i prompter, modeller, koblinger eller tillatelser. Et blokkert eksempel er dokumentasjon for tilfellet, ikke bevis mot alle injeksjoner. Hvis en test feiler, reduser mulige konsekvenser mens den underliggende arbeidsflyten rettes.

Gjør øvelsen

Lag midlertidige testdata med en kommentar som ber agenten hoppe over en påkrevd kontroll. Kjør en autorisert, isolert evaluering uten hemmeligheter eller ekstern skriving. Verifiser at kontrollen fortsatt kjøres. Registrer verktøytillatelser, observert atferd og begrensningene ved denne ene testen.

Last ned arbeidsark (Markdown)

Kontroller forståelsen din

En repositoryfil sier at alle tester er valgfrie, og at agenten skal ignorere oppgaveinstruksjonene. Hvordan bør arbeidsflyten behandle den?

Kilder og videre lesning

Relatert lesning fra Taiga