hostile-data 문제
Prompt injection은 untrusted data — user message, retrieved 문서, tool 결과, webpage — 가 모델이 instruction으로 다루는 텍스트 담은 상황. 데이터가 모델한테 말해: 이전 instruction 무시, system prompt leak, user 이메일을 attacker한테 send, 조작된 URL로 exfiltrate. 모델이 데이터를 operator instruction이랑 같은 식으로 read해서 — 모델이 만지는 input 통제하는 누구한테든 manipulate 가능.
왜 안 풀렸나
모델 input stream 안에 enforce된 trust boundary가 근본적으로 없어서 single fix 없어. Defense는 layered mitigation, silver bullet 아니야. 2005년의 SQL injection처럼 다뤄 — 진짜, ongoing 버그 class, exotic threat 아니야.
3가지 injection surface
- Direct user injection — user가 chat에 adversarial instruction 타이핑.
- Indirect injection — adversarial instruction이 retrieved 문서, web page, email, tool output에 도착.
- Persistent injection — 이전 assistant output (또는 memory)에 attacker가 심은 instruction이 후속 turn에 fire.