Aanvallen op grote taalmodellen gaan inmiddels veel verder dan louter prompt-injecties. Naarmate de mogelijkheden van de systemen toenemen, krijgen aanvallers de beschikking over een steeds breder scala aan maatregelen. Tijd voor een stand van zaken.
Van prompt-injectie naar volledige systeemcompromittering
De AI-boom houdt onverminderd aan, steeds meer software krijgt AI-functies en AI-agents worden steeds vaker aan systemen gekoppeld. In de regel zijn die artificiële intelligenties gebaseerd op grote taalmodellen (Large Language Models, LLM) en daardoor kwetsbaar voor allerlei problemen.
Grote taalmodellen hebben bijvoorbeeld de neiging om bij een gebruiker te proberen in een goed blaadje te komen, en ze hallucineren soms over feiten en bronnen die simpelweg niet bestaan. Daar komt nog bij dat ze actief kunnen worden aangevallen. Dit laatste is een probleem dat vaak wordt aangeduid met de term prompt-injectie.
Prompt-injectie verwijst echter alleen naar de eerste stap die aanvallen op LLM’s doorgaans nemen. Kwaadaardige instructies aan taalmodellen zijn inmiddels uitgebreide en vaak complexe constructies. Ze stellen een aanvaller bijvoorbeeld in staat het betreffende systeem te verkennen, kunnen persistentie in het netwerk van het slachtoffer verschaffen of een remote-bediening van het geïnfiltreerde LLM mogelijk maken.
Prompt-injecties
Als verzamelnaam voor aanvallen op grote taalmodellen was prompt-injectie nooit bedoeld of correct. Simon Willison, de bedenker van de term, waarschuwde al ruim twee jaar geleden dat de term steeds vaker synoniem met jailbreaking gebruikt werd, wat niet alleen onjuist is, maar ook de risicoperceptie vertekent (verwijzingen naar de genoemde bronnen via de link bij dit artikel).
Jailbreaking verwijst naar trucs waarmee LLM’s ertoe kunnen worden gebracht dingen te schrijven die ze – volgens de wil van de LLM-aanbieder – niet zouden moeten schrijven, bijvoorbeeld obsceniteiten of auteursrechtelijk beschermd of anderszins verboden materiaal.
De makers programmeren daarom diverse richtlijnen (guardrails) in hun LLM’s, onder andere door bij latere trainingsstappen dergelijke output uit hun modellen te verwijderen of door invoer- en uitvoergegevens te filteren op ongewenste inhoud.
Prompt-injecties vinden daarentegen plaats wanneer taalmodellen instructies opvolgen, hoewel die voorkomen in een context waarin ze niet mogen worden opgevolgd. Een document kan bijvoorbeeld de instructie bevatten om alleen nog maar met een piratenaccent en veel Arrr! te spreken.
Een LLM dat dit document moet samenvatten, maar vervolgens niet alleen over die instructie rapporteert, maar hem ook opvolgt en zich als een zeerover gaat gedragen, is getroffen door een prompt-injectie.

De term is bewust afgeleid van SQL-injectie, omdat net als daar commando’s bij invoergegevens niet als gegevens worden verwerkt, maar als instructies worden opgevolgd.
In tegenstelling tot bij SQL-injecties kun je prompt-injecties echter niet betrouwbaar uitfilteren, en LLM’s kunnen hun kwetsbaarheid daarvoor ook niet volledig uitbannen.
Praat mee