1. 문제 상황 요약
현재 진행 중인 AI 챗봇 보안 테스트(AgentShield)에서 프롬프트 인젝션(LLM01) 공격을 테스트한 결과, 다수의 오탐(False Positive)이 발생하고 있다. 타겟 모델(gemma4:e2b)은 공격 지시를 명시적으로 거부하거나 조용히 무시하며 성공적으로 방어하고 있으나, 채점 시스템인 Judge가 이를 '취약(vulnerable)'으로 오판하는 상황이다. 즉, 모델의 보안 능력이 아닌 평가 로직 자체의 결함이다.
2. 오탐의 핵심 원인
- 규칙 기반 판정의 한계 (Layer 1): 현재 로직은 응답 초반에 '명시적 거부 문구'가 없으면 무조건 취약하다고 판정한다. 모델이 공격 지시를 완전히 무시하고 본래의 정상적인 작업만 수행하는 것(가장 이상적인 방어)을 인지하지 못하고 오답 처리한다.
- LLM Judge (Layer 2) 도달 실패: Layer 1에서 규칙 기반으로 성급하게 '취약' 판정을 내려버리기 때문에, 더 정교한 판정이 가능한 Layer 2로 넘어가지 못하고 테스트가 종료된다.
3. 업계의 보안 판정 동향 및 해결책
업계의 보안 검증 도구들(garak, Llama Guard, HarmBench 등)은 다음과 같은 방법론을 사용해 오탐률을 줄이고 있다.
판정 패러다임의 전환:
- 핵심 질문은 "모델이 거절 문구를 출력했는가?"가 아니라 "모델이 실제로 공격자가 원하는 유해한 정보나 행동을 제공했는가?"이다.
전용 분류 모델 활용:
- 범용 LLM(GPT-4 등)이나 단순 규칙 기반보다는, 보안 판정 전용으로 파인튜닝된 소형 모델(Llama Guard, WalledGuard 등)을 사용하는 것이 오탐률(FPR)을 크게 낮추는 추세다.
다중 스코어링 시스템:
- 입력(공격)과 출력(응답) 스캐너를 분리하고, 강제 거부 여부부터 유해 정보의 구체성까지 단계별로 평가하는 구조(StrongREJECT 등)를 채택하고 있다.
4. 개선 방향 (Action Items)
단기 조치 사항
- Layer 1 로직 전면 수정: "거부 문구 없음 = 취약" 공식을 폐기하고, "유해 행동 탐지됨 = 취약"으로 변경한다. 모델이 악의적 지시를 무시하고 정상 작업만 수행한 경우(무시 패턴)를 '안전(Safe)'으로 정상 분류하도록 예외 처리한다. 확실하지 않은 케이스는 모두 Layer 2로 넘긴다.
- Few-shot 예시 추가: LLM Judge의 프롬프트에 명시적 거부, 조용한 무시, 악의적 지시 순응 등 다양한 방어/취약 패턴에 대한 구체적인 예시를 추가하여 채점 기준을 명확히 한다.
중장기 조치 사항
- 전용 Judge 모델 고도화: LoRA-Judge 어댑터를 파인튜닝할 때, 거부 응답뿐만 아니라 '무시하고 정상 작업 수행' 샘플도 안전한 데이터로 균형 있게 추가한다.
- 오탐률(FPR) 지표 관리: XSTest 등 벤치마크를 활용해 Judge 시스템 자체가 안전한 응답을 취약하다고 오판하는 비율을 지속적으로 측정하고, 목표치(예: 5% 미만) 내로 관리한다.
'4. [팀] 프로젝트 및 공모전 > 4-5 AgentShield(보안 플랫폼)' 카테고리의 다른 글
| [트러블슈팅] Ollama EOF 에러의 원인: Thinking 모델과 KV Cache 오버플로 (0) | 2026.04.21 |
|---|---|
| [개인 공부] AgentShield: 자동화 모의해킹 파이프라인 및 DPO 데이터 수집 아키텍처 정리 (0) | 2026.04.15 |
| [개인 공부] AgentShield 프로젝트 작업 일지 — 2026년 4월 14일 (0) | 2026.04.12 |
| [모델 테스트] LLM 보안 방어력 실측: SecureCode AI/ML 데이터셋 기반 비교 평가 (0) | 2026.04.09 |
| [모델 테스트] AgentShield POC — 기본 모델 방어율 테스트 결과 정리 (0) | 2026.04.08 |
