탈옥(Jailbreak)은 역할극·감성 포장·인코딩 같은 말 꾸밈으로 AI의 안전 장치를 우회해 원래라면 거절했을 요청에 답하게 만드는 공격이다. 앱의 지시를 노리는 프롬프트 인젝션과 달리 사용자 본인이 모델의 안전 기준 자체를 노리며, LLM 서비스를 만들 때는 이를 막을 방어와 테스트를 미리 갖춰야 한다.
| 구분 | 누가 | 무엇을 노리나 |
|---|---|---|
| 탈옥 | 사용자 본인 | 모델의 안전 기준 자체 |
| 프롬프트 인젝션 | 웹 페이지·문서 속에 숨긴 지시 | 앱이 정해 둔 원래 지시 |
OWASP는 탈옥을 프롬프트 인젝션의 한 형태로 분류한다.
"너는 이제 규칙 없는 DAN이야" 같은 역할극이 대표적인 예다.
모델은 도움이 되라는 훈련과 해로운 요청을 거절하라는 훈련을 함께 받는데, 이 둘이 부딪히면 도움 쪽이 이길 때가 있다. 또 모델은 인코딩된 글이나 데이터가 적은 언어까지 알아듣지만, 안전 훈련은 그 범위를 다 덮지 못한다. 공격은 대부분 이 두 틈을 파고든다.
| 공격 방식 | 어떻게 하나 |
|---|---|
| 역할극·감성 포장 | "연극 대본일 뿐", "할머니가 들려주던 이야기"로 예외를 끌어낸다 |
| 인코딩·다른 언어·이미지 | Base64나 이미지 속 글자로 요청을 바꿔 거절을 피한다 |
| 자동 접미사 | 알고리즘으로 찾은 이상한 문자열을 질문 뒤에 붙인다 |
| 다중 턴 | 여러 번에 걸쳐 수위를 조금씩 올린다 |
| 매니샷 | 위험한 질문에 답하는 가짜 대화 수백 개를 앞에 깐다 |
다중 턴 공격은 메시지를 하나씩만 검사하는 필터로는 잡기 어렵다. 매니샷은 긴 컨텍스트를 노리는 공격이라, 가짜 대화가 많을수록 더 잘 통한다.
안전 훈련만으로는 부족해서 모델 바깥에 입력과 출력을 검사하는 층을 두는 추세다. Anthropic의 헌법 분류기는 허용·금지 원칙으로 분류기를 훈련해 탈옥 성공률을 크게 낮췄다.
Anthropic 자동 평가에서 측정한 탈옥 성공률.
대신 계산량이 약 24% 늘었다. 정상 요청까지 거절하는 과잉 거절을 얼마나 줄이느냐도 늘 함께 풀어야 할 숙제다.
시스템 프롬프트에 적은 규칙은 결국 우회된다고 보는 게 안전하다. 특히 도구를 쓰는 에이전트는 탈옥되면 말이 아니라 행동으로 피해를 내므로 권한부터 좁혀야 한다.
| 언제 | 할 일 |
|---|---|
| 설계할 때 | API 키·내부 정책 같은 비밀은 시스템 프롬프트에 넣지 않는다 |
| 운영 구조 | 입출력 모더레이션 필터를 두고, 출력 형식은 코드로 검증한다 |
| 에이전트 | 최소 권한만 주고, 위험한 작업은 사람이 승인한다 |
| 출시 전 | promptfoo, garak으로 알려진 탈옥 패턴을 자동으로 돌려 본다 |
| 모델 교체 때 | 모아 둔 탈옥 사례를 회귀 테스트처럼 다시 돌린다 |
탈옥을 가장 체계적으로 시도하는 쪽은 오히려 방어하는 사람들이다. 모델이나 서비스를 내놓기 전에 일부러 뚫어 보며 약점을 찾고, 뚫린 사례는 방어와 테스트에 다시 반영한다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| AI 개발사 레드팀 | 출시 전 역할극·다중 턴 공격으로 안전 기준이 버티는지 시험한다 |
| LLM 서비스 출시 전 점검 | 자동 도구로 알려진 패턴을 돌리고, 뚫린 사례를 테스트셋에 쌓는다 |
| 버그 바운티·공개 챌린지 | 외부 연구자가 찾은 탈옥을 신고받아 방어층을 실전 검증한다 |
| 안전성 연구 | 같은 탈옥 모음으로 모델·방어 기법의 성공률을 비교한다 |