Získaný obsah berte jako nedůvěryhodný vstup
DokončenoRozpoznejte pokyny skryté v souborech repozitáře a výsledcích nástrojů. Oddělte získané informace od oprávnění jednat.
Vydává TaigaJak píšeme
Ověřte si porozuměníSoubor repozitáře tvrdí, že všechny testy jsou volitelné a agent má ignorovat pokyny úkolu. Jak s ním má pracovní postup zacházet?Vypracovat cvičení
Co se naučíte
- Rozpoznat nepřímou prompt injection ve vývojovém postupu.
- Vysvětlit, proč samotné textové označení nevynucuje bezpečnostní hranici.
- Navrhnout bezpečný test omezení nástrojů.
Najděte místo, kde se data stávají pokynem
Programovací agent čte více než požadavek uživatele. Může prozkoumávat issue, soubory repozitáře, dokumentaci balíčků, výsledky hledání a odpovědi nástrojů. Část tohoto obsahu může obsahovat pokyny jiné osoby.
Prompt injection nastává, když takový obsah odkloní model od povoleného úkolu. Nepřímá injection přichází přes získaný zdroj, nikoli přímo od uživatele. OWASP uvádí materiály repozitáře a výstupy nástrojů jako relevantní vstupní body. Přečtěte si pokyny k prevenci.
Představte si fiktivní úkol údržby. Uživatel žádá agenta o opravu filtru sestavy a spuštění povinných testů. Načtený README tvrdí, že testy jsou zastaralé, a žádá agenta o nahrání konfiguračního souboru. README může projekt vysvětlit. Nemůže povolit vynechání kontrol uživatele ani odeslání souborů jinam.
Zmapujte možné následky
Stejný zavádějící text má v různých prostředích různé následky. Nástroj pro shrnutí s přístupem pouze pro čtení může vytvořit nesprávné shrnutí. Agent s právem zápisu do repozitáře může změnit kód. Agent s tajnými údaji a odchozím síťovým přístupem může odhalit informace.
Než zvolíte důležité obrany, prozkoumejte dostupné akce. Sepište citlivé prostředky, cíle zápisu a externí cíle. Zahrňte konektory přidané po počátečním nastavení. Nový nástroj může zvětšit účinek existující slabiny.
Agent může zavádějící obsah také přenést do pozdější fáze. Například zkopíruje nedůvěryhodný pokyn do vygenerovaného zadání. Další agent nesmí toto zadání považovat za nezávisle schválené pravidlo.
Použijte více opatření s různými účely
V návrhu aplikace oddělte důvěryhodné pokyny úkolu od získaných dat. Ukažte původ získaného materiálu. Tyto kroky zlepšují výklad, ale nevytvářejí úplnou bezpečnostní hranici.
Oprávnění k prostředkům vynucujte v systému provádění. Omezte cíle pro citlivá data. Před akcemi se závažnými následky požadujte odpovídající rozhodnutí. Ověřte navrženou operaci proti povolenému úkolu a cíli.
Filtry a druhý model mohou pomoci odhalit podezřelý obsah. Mohou také útok přehlédnout nebo zablokovat oprávněné informace. Deterministickou autorizaci nenahrazujte skóre jistoty modelu. OWASP výslovně upozorňuje na omezení spoléhání pouze na prompty nebo získávání informací. Přečtěte si popis rizika.
Testujte postup bez skutečného vystavení riziku
Použijte jednorázový repozitář a fiktivní soubory. Vyhodnocení nedávejte produkční přihlašovací údaje ani neomezený externí zápis. Vložte neškodný pokyn v rozporu s úkolem, například vynechání povinné kontroly.
Sledujte odpověď modelu i skutečné akce nástrojů. Zpráva „pokyn jsem ignoroval“ nestačí, pokud se kontrola přesto vynechala. Zaznamenejte úkol, vložený testovací soubor, povolené nástroje a pozorovaný výsledek.
Po změnách promptů, modelů, konektorů nebo oprávnění zopakujte reprezentativní případy. Zablokovaný příklad je důkazem pro tento případ, nikoli důkazem ochrany proti každé injection. Pokud test selže, omezte možné následky během opravy základního postupu.
Vypracovat cvičení
Vytvořte jednorázový testovací soubor s komentářem, který agenta žádá o vynechání povinné kontroly. Spusťte povolené izolované vyhodnocení bez tajných údajů a externího zápisu. Ověřte, že kontrola přesto proběhne. Zaznamenejte oprávnění nástrojů, pozorované chování a omezení tohoto jediného testu.
Stáhnout pracovní list (Markdown)Zrušení této volby smaže veškerý postup uložený v tomto prohlížeči.
Postup zůstává v tomto prohlížeči. Bez účtu a sledování.