Čo je prompt injection?

← Slovník SEO pojmov

Prompt injection je zraniteľnosť, pri ktorej vstup od používateľa alebo z externého zdroja nechcene zmení správanie jazykového modelu. Organizácia OWASP ju vo svojom zozname rizík pre aplikácie s jazykovými modelmi radí na prvé miesto (LLM01). Súvisí s prompt engineeringom, lebo ukazuje, že pokyn v prompte nestačí ako ochrana.

Aká je priama a nepriama prompt injection?

OWASP rozlišuje dve formy a rovnaké rozdelenie používa aj Anthropic vo svojej dokumentácii.

FormaOdkiaľ prichádza škodlivý pokynPríklad
PriamaPriamo od používateľa, ktorý model oslovujePoužívateľ chatbotu napíše, aby ignoroval pôvodné pokyny
NepriamaZ externého obsahu, ktorý model spracuje, napríklad z webovej stránky, e-mailu alebo súboruSkrytý pokyn v stránke, ktorú model číta pri zhrnutí

Nepriama forma je dôležitá pri AI agentoch a nástrojoch, ktoré čítajú weby. OpenAI uvádza, že riziko je najväčšie pri agentoch, ktorí majú k dispozícii nástroje.

Aké dopady môže prompt injection mať?

OWASP uvádza tieto možné dôsledky.

Dopady podľa OWASP
  • únik údajov alebo systémového promptu
  • zmanipulovaný výstup
  • neoprávnený prístup k funkciám
  • vykonanie príkazov
  • ovplyvnenie rozhodnutí

Čím viac oprávnení má AI funkcia, tým väčšie škody môže spôsobiť. OpenAI preto zdôrazňuje, že riziko sa zvyšuje, keď agent dostane prístup k nástrojom.

Ako sa pred prompt injection chránime?

OWASP, OpenAI aj Anthropic odporúčajú viacero vrstiev ochrany. Ani jedna nezaručuje úplné zabezpečenie. OWASP píše, že nie je jasné, či sa prompt injection dá úplne zabrániť, a OpenAI uvádza, že ochrany riziko znižujú, no neodstraňujú ho.

Odporúčané opatrenia
  • obmedziť rolu a oprávnenia modelu na minimum
  • overovať výstupy v pevne definovanom formáte
  • filtrovať vstupy aj výstupy
  • oddeliť nedôveryhodný obsah od pokynov, nedôveryhodný text nedávať do správ od vývojára
  • pri rizikových akciách vyžadovať schválenie človekom
  • používať štruktúrované výstupy a zábrany (guardrails), ktoré ale nie sú neomylné
  • podľa Anthropic nedôveryhodný obsah posielať len ako výsledok nástroja, označiť jeho pôvod a zapísať ho ako JSON
  • podľa Anthropic v systémovom prompte výslovne uviesť, že obsah z nástrojov a dokumentov nikdy neprepíše pokyny
  • pravidelne testovať odolnosť a vyhodnocovať výsledky

Čím sa líši od SQL injection?

Názvy sú podobné, ale cieľ je iný. SQL injection zneužíva nevalidovaný vstup na ovplyvnenie databázového dotazu. Prompt injection pôsobí na to, ako model chápe pokyny. Model nevie spoľahlivo rozlíšiť pokyn od údajov, ktoré má spracovať, a preto sa dá ovplyvniť aj textom z externého zdroja. Ide o náš výklad rozdielu.

Čo si zapamätať o pojme Prompt injection?

Prompt injection je zneužitie modelu pomocou škodlivých pokynov vo vstupe, či už priamo od používateľa alebo nepriamo z externého obsahu. Úplná ochrana nie je zaručená, preto obmedzujeme oprávnenia modelu, kontrolujeme výstupy a rizikové akcie necháme na schválenie človekom.

Ako to rieši webstrankanamieru.sk: Ak na webe nasadzujeme AI funkcie, napríklad chatbota, vychádzame z odporúčaní OWASP, teda obmedzené oprávnenia, kontrola výstupov a schvaľovanie rizikových akcií. O možnostiach AI integrácie na webe a bezpečnosti sa môžeme porozprávať na bezplatnej konzultácii cez kontakt.

Súvisiace pojmy: Prompt, Prompt engineering, LLM, AI agent, AI integrácia na webe, SQL injection, Bezpečnostný audit webu, Halucinácia AI, Generatívna AI

Často kladené otázky o pojme Prompt injection

Čo je prompt injection?

Je to zraniteľnosť, pri ktorej vstup nechcene zmení správanie jazykového modelu, napríklad aby ignoroval pôvodné pokyny alebo prezradil údaje.

Aký je rozdiel medzi priamou a nepriamou prompt injection?

Pri priamej škodlivý pokyn zadá používateľ. Pri nepriamej je ukrytý v externom obsahu, ktorý model spracuje, napríklad na webovej stránke alebo v súbore.

Dá sa prompt injection úplne zabrániť?

OWASP uvádza, že nie je jasné, či je to možné. Ochranné opatrenia riziko znižujú, ale ho neodstraňujú.

Prečo je to dôležité pri AI agentoch?

OpenAI uvádza, že riziko je najväčšie pri agentoch s nástrojmi. Škodlivý text z externého zdroja môže agenta pohnúť k akcii, ktorú nemal vykonať.

Ako sa chránime pri AI chatbote na webe?

Obmedzíme oprávnenia chatbota, výstupy kontrolujeme, nedôveryhodný obsah oddelíme od pokynov a rizikové akcie necháme schvaľovať človekom.

Zdroje

  1. OWASP GenAI Security Project: LLM01 Prompt InjectionDefinícia, priama a nepriama forma, dopady a opatrenia.
  2. OpenAI: Safety in building agentsNedôveryhodný text, riziko pri agentoch s nástrojmi a odporúčané ochrany.
  3. Anthropic: Mitigate jailbreaks and prompt injectionsPriama a nepriama prompt injection, zaobchádzanie s nedôveryhodným obsahom a testovanie vlastného agenta.

Všetky pojmy v slovníku