Hopp til hovedinnhold

Onsdag 7. oktober

 Tilbake Koding 2 min 16.26

CodeQL 2.26 finner prompt-injeksjon i JavaScript, men ikke i Python

søndag 12. juli · KI-generert · Kilde: ByteIota

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Skanner nå JavaScript og TypeScript for brukerinput som havner i systemprompten, gratis på offentlige repoer, men Python er ikke dekket.

GitHub sendte CodeQL 2.26.0 den 10. juli med spørringen js/system-prompt-injection, ifølge ByteIota. Har du allerede Code Scanning på et JavaScript- eller TypeScript-repo, fikk du den automatisk, uten oppsett.

Spørringen bruker taint tracking, CodeQLs kjerneteknikk: den følger data du ikke kontrollerer fra inngangen (HTTP-parametere, skjemafelt, query-strenger) til utgangen, altså systemmeldingen i et modellkall. Analogien til SQL-injeksjon holder presist. Når CodeQL flagger en spørring der bruker-ID-en limes rett inn i SQL-strengen, er det fordi upålitelige data styrer en privilegert instruksjon. En systemmelding satt til content: userInput er nøyaktig samme feil: modellen kan ikke skille utviklerens instruks fra angriperens når de deler streng. Dekningen omfatter OpenAI (inkludert Realtime og Sora), Anthropics messages-API og Google GenAI.

To begrensninger avgjør om dette hjelper deg i praksis. Spørringen dekker bare JavaScript og TypeScript, mens mesteparten av LLM-koden i produksjon er Python. Og den finner ikke indirekte prompt-injeksjon, der instruksjonen ligger i et dokument, en nettside eller et verktøysvar som flyter inn i modellens kontekst. Statisk analyse kan ikke vite hva eksternt innhold vil inneholde ved kjøretid. Det er nettopp den varianten Ghostcommit-angrepet bruker.

Hva bør du gjøre?

  1. Åpne Security-fanen på JavaScript- og TypeScript-repoene dine og se etter nye varsler om system-prompt-injection. Code Scanning er gratis på offentlige repoer.
  2. Flytt all brukerinput ut av systemmeldingen og inn i user-rollen. Systemprompten skal være en statisk streng du kontrollerer.
  3. Regn med tiltak ved kjøretid uansett. Den direkte varianten er den eneste spørringen fanger.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.