Prompt injection
Zaktualizowano:
Prompt injection to rodzaj ataku na modele językowe (LLM), polegający na wstrzykiwaniu do ich kontekstu wykonawczego instrukcji, które mają na celu zmianę ich zachowania. Atakujący może to osiągnąć, umieszczając złośliwy tekst w danych, które model przetwarza – na przykład w treści strony internetowej, którą model ma podsumować, lub w dokumencie, który ma analizować.
Celem prompt injection jest zazwyczaj:
- Ominięcie zabezpieczeń: Zmuszenie modelu do wykonania działań, które zostałyby zablokowane przez jego twórców (np. generowanie treści niezgodnych z polityką bezpieczeństwa).
- Ujawnienie wrażliwych danych: Wydobycie z modelu informacji, do których użytkownik nie powinien mieć dostępu, np. części jego wewnętrznych instrukcji, danych treningowych, czy informacji o innych użytkownikach.
- Manipulacja wyjściem: Sprawienie, że model wygeneruje treści, które promują konkretne poglądy, dezinformację lub wykonają inne niepożądane operacje.
Atak ten wykorzystuje fakt, że modele językowe traktują wszystkie dane wejściowe – zarówno te od użytkownika, jak i te z zewnętrznych źródeł – jako część swojego kontekstu. Złośliwe instrukcje mogą być ukryte w tekście w taki sposób, że dla ludzkiego oka są niewidoczne lub wydają się nieszkodliwe, ale dla modelu stają się priorytetowe. Różni się od jailbreakingu tym, że prompt injection często wykorzystuje zewnętrzne, niekontrolowane przez użytkownika dane jako wektor ataku, podczas gdy jailbreaking to zazwyczaj bezpośrednia interakcja z modelem mająca na celu ominięcie jego wewnętrznych zabezpieczeń.