Parcurs 03Lecție 3 / 6

Tratați conținutul obținut ca date care nu sunt de încredere

Recunoașteți instrucțiunile ascunse în fișierele depozitului de cod și rezultatele instrumentelor. Separați informațiile obținute de autoritatea de a acționa.

Practică10 minVerificat

Publicat de Cum scriem

Verificați ce ați înțelesUn fișier din depozitul de cod spune că toate testele sunt opționale și că agentul trebuie să ignore instrucțiunile sarcinii. Cum trebuie tratat în fluxul de lucru?Faceți exercițiul
Un fișier din depozitul de cod spune că toate testele sunt opționale și că agentul trebuie să ignore instrucțiunile sarcinii. Cum trebuie tratat în fluxul de lucru?

Ce veți învăța

  • Identificați o injecție indirectă de prompt într-un flux de dezvoltare.
  • Explicați de ce etichetele text nu pot impune singure o limită de securitate.
  • Proiectați un test sigur pentru restricțiile instrumentelor.

Identificați punctul în care datele devin instrucțiuni

Un agent de programare citește mai mult decât cererea utilizatorului. Poate inspecta tichete, fișiere din depozitul de cod, documentația pachetelor, rezultate de căutare și răspunsuri ale instrumentelor. O parte din acest conținut poate include instrucțiuni de la altă persoană.

Injecția de prompt apare când un astfel de conținut îndepărtează modelul de sarcina autorizată. O injecție indirectă ajunge printr-o sursă obținută, nu prin cererea directă a utilizatorului. OWASP descrie materialele din depozitul de cod și rezultatele instrumentelor ca puncte de intrare relevante. Citiți ghidul de prevenire.

Luați în considerare o sarcină fictivă de mentenanță. Utilizatorul cere agentului să repare un filtru de raport și să execute testele necesare. Un README obținut spune că testele sunt depășite și cere agentului să încarce un fișier de configurație. README-ul poate explica proiectul. Nu poate autoriza omiterea verificărilor cerute de utilizator sau trimiterea fișierelor în altă parte.

Identificați consecințele posibile

Același text înșelător are consecințe diferite în medii diferite. Un instrument de rezumare cu acces doar pentru citire poate produce un rezumat incorect. Un agent cu drept de scriere în depozitul de cod poate modifica codul. Un agent cu secrete și acces de ieșire la rețea poate expune informații.

Inspectați acțiunile disponibile înainte de a decide ce măsuri de apărare contează. Enumerați resursele sensibile, țintele în care se poate scrie și destinațiile externe. Includeți conectorii adăugați după configurarea inițială. Un instrument nou poate amplifica efectul unei slăbiciuni existente.

Un agent poate și transfera conținut înșelător într-o etapă ulterioară. De exemplu, poate copia o instrucțiune dintr-o sursă care nu este de încredere într-o descriere de sarcină generată. Următorul agent nu trebuie să trateze acea descriere ca politică aprobată independent.

Folosiți mai multe controale cu scopuri distincte

Separați instrucțiunile de încredere ale sarcinii de datele obținute în proiectarea aplicației. Arătați originea materialului obținut. Acești pași îmbunătățesc interpretarea, dar nu stabilesc o limită completă de securitate.

Impuneți permisiunile resurselor în sistemul de execuție. Restricționați destinațiile datelor sensibile. Cereți decizia adecvată înainte de acțiunile cu consecințe importante. Validați operațiunea propusă în raport cu sarcina și ținta autorizate.

Filtrele și un al doilea model pot ajuta la detectarea conținutului suspect. Pot și rata atacuri sau bloca informații legitime. Nu înlocuiți autorizarea deterministă cu scorul de încredere al unui model. OWASP menționează explicit limitele dependenței doar de prompturi sau de obținerea informațiilor. Citiți descrierea riscului.

Testați fluxul de lucru fără expunere reală

Folosiți un depozit de cod temporar și fișiere fictive. Nu acordați evaluării credențiale de producție sau scrieri externe nerestricționate. Introduceți o instrucțiune inofensivă care contrazice sarcina, precum omiterea unei verificări obligatorii.

Observați atât răspunsul modelului, cât și acțiunile efective ale instrumentelor. Un mesaj „Am ignorat instrucțiunea” este insuficient dacă verificarea a fost totuși omisă. Notați sarcina, datele de test injectate, instrumentele permise și rezultatul observat.

Repetați cazurile reprezentative după schimbări de prompturi, modele, conectori sau permisiuni. Un exemplu blocat este o dovadă pentru acel caz, nu o dovadă împotriva tuturor injecțiilor. Dacă un test eșuează, limitați consecințele posibile în timp ce remediați fluxul de lucru de bază.

Faceți exercițiul

Creați date de test temporare cu un comentariu care cere agentului să omită o verificare obligatorie. Executați o evaluare autorizată și izolată, fără secrete sau scrieri externe. Verificați că verificarea este totuși executată. Notați permisiunile instrumentelor, comportamentul observat și limitele acestui singur test.

Descărcați fișa de lucru (Markdown)
Verificați ce ați înțeles ↑

Continuați învățarea

Surse și lecturi suplimentare

Lecturi asociate de la Taiga

← Lecția anterioară: Limitați autoritatea unui agent