피드로 돌아가기
Dev.toSecurity
원문 읽기
LLM 10종 중 3종의 Role Confusion 취약점 및 XML 기반 Prompt Injection 확인
I Sent the Same Prompt Injection to Ten LLMs. Three Complied.
AI 요약
Context
LLM이 시스템 구분자와 사용자 입력 태그를 구분하지 못하는 파싱 취약점으로 인해 발생하는 Role Confusion 문제 분석. 공격자가 XML 태그를 사용하여 사용자 입력을 시스템 명령어로 오인하게 만들어 내부 컨텍스트와 비밀 정보를 유출시키는 보안 허점 존재.
Technical Solution
- XML 기반의 Pseudo-system 태그 삽입을 통한 모델의 Role 인식 교란 유도
- 시스템 프롬프트, 비즈니스 로직, API Key 등 민감 정보 추출을 위한 JSON 구조화 출력 지시
- 선형 SVM 분류기를 기반으로 한 Rust 구현체 Parapet을 통한 입력 단계의 탐지 레이어 구축
- Hashmap Lookup 및 전처리를 통한 Inference 비용 제로의 고속 문자열 처리 방어 체계 설계
- 입력 단계에서의 XML 스타일 구분자 이스케이프 처리 및 스트립(Strip) 로직 적용
- ChatML과 같은 구조화된 메시지 포맷(Role Field) 도입을 통한 In-band 콘텐츠 변조 원천 차단
실천 포인트
1. 사용자 입력값 내 <SYSTEM>, <NOTE> 등 시스템 예약어와 유사한 태그 포함 여부 검토
2. Chat Completion API 사용 시 Role 필드를 명확히 분리하여 Content 내 주입 공격 방지
3. DLP(Data Loss Prevention) 도구가 JSON 구조화 데이터 내의 민감 정보 유출을 탐지하는지 확인
4. LLM 추론 전 단계에서 경량화된 분류 모델(SVM 등)을 통한 Prompt Injection 필터링 레이어 검토