본 블로그는 프로젝트 진행중인 개인 기록용 블로그입니다.
개요
초기 AgentShield 파이프라인은 'Red Agent(공격자)의 퀄리티 부족'과 'Judge(심판)의 오탐(False Positive/Negative)' 문제로 인해 유의미한 성공 데이터가 전혀 쌓이지 않는 교착 상태(Deadlock)에 빠져 있었다. 오늘 일련의 아키텍처 리팩토링과 로직 개선을 통해, 파이프라인의 탐지율을 4.2배(0% -> 70%대) 이상 끌어올렸으며, 향후 DPO(선호도 최적화) 파인튜닝을 위한 완벽한 실시간 데이터 플라이휠(Data Flywheel)을 완성했다.
핵심 개선 사항 5단계
Phase 1. 비대칭 모의해킹 구조 확립
- 문제: 타겟 모델과 공격 모델이 비슷한 체급이거나 안전망이 겹쳐 제대로 된 공격이 불가능했다.
- 해결: 타겟은 gemma4:e2b (5B)로 유지하되, Red Agent는 gemma4:26b 대형 모델로 체급을 분리했다.
- 효과: 홀/짝수 라운드의 억지스러운 룰 기반 섞기를 폐지하고 26B 모델에 전담시킴으로써, '시스템 로그 위장', '페이로드 분할' 등 실제 해커 수준의 다층적 기만 전술(Multi-vector Attack)이 생성되기 시작했다.
Phase 2. Judge 로직의 정상화 및 Layer 1 핫픽스
- 문제: 심판이 '실제 유해 행위'가 아닌 '거절 문구 유무'만 따지고 있었으며(False Negative), LLM02/07 등의 카테고리에서 룰 기반 로직 버그로 인해 무조건 '안전'이나 '애매함'으로 판정되었다.
- 해결:
- 판정 패러다임 전환: "거부했는가?"가 아니라 "실제로 유해한 정보를 내뱉었는가?"로 핵심 채점 기준을 변경.
- Layer 1 버그 수정: LLM07(시스템 프롬프트 노출)에서 거부 검사보다 유출 검사를 먼저 하도록 순서를 변경하고, LLM02(민감정보)에서 PII 탐지 시 즉시 vulnerable로 판정하도록 핫픽스 적용.
Phase 3. LLM06(과도한 권한) 활성화를 위한 가상 환경(Mock Tools) 주입
- 문제: 타겟 모델에게 권한을 남용해 보라고 공격해도, 실제로 타겟이 쓸 수 있는 '도구(Tool)'가 없어서 공격 자체가 성립하지 않았다 (LLM06 돌파율 0%).
- 해결: 타겟 모델의 시스템 프롬프트에 10개의 가상 도구(Mock Tools, 3단계 권한 레벨) 명세를 강제 주입하여 타겟이 조작할 수 있는 '무대'를 만들어 주었다.
- 효과: Red Agent가 가짜 시스템 메시지로 타겟을 속여 실제로 <tool_call>을 유도해 내는 데 성공, LLM06 카테고리 돌파율이 0%에서 90%로 수직 상승했다.
Phase 4. 경량 전용 판정 모델(0.5B) 투입 (Layer 2)
- 문제: 규칙 기반(Layer 1)을 통과한 애매한 답변들을 처리하기 위해 무거운 LlamaGuard를 썼으나, 이는 콘텐츠 유해성 검사기일 뿐 공격 성공 여부를 가리는 데는 부적합했다.
- 해결: 기존 LlamaGuard를 과감히 삭제하고, 빠르고 정확한 Qwen 2.5 (0.5B) 모델을 Layer 2 판정기로 교체 투입했다.
- 효과: 인간의 수동 검토(Layer 3)로 빠지던 '애매한 물타기 답변'들을 0.5B 모델이 정확히 캐치하여 11건의 추가 돌파를 찾아내는 등 판정의 정밀도와 속도가 극적으로 향상되었다.
Phase 5. RAG 데이터 플라이휠 및 DPO 학습 아키텍처 완성
- 문제: 어렵게 만든 성공 데이터가 재사용되지 않았고, 유사도 필터가 너무 빡빡해서 데이터를 날리고 있었다.
- 해결:
- ChromaDB 배선 완료: 성공한 공격 프롬프트를 ChromaDB에 실시간 적재하고, 다음 라운드에서 similar_cases로 즉시 불러오도록(RAG) 연결.
- 유사도 Threshold 조정: 미세한 프레이밍 차이도 수집하기 위해 중복 필터를 0.7 -> 0.90으로 대폭 완화.
- RDB 및 Seed ID 태깅 구축: JSON/벡터 DB 분산 저장을 넘어, PostgreSQL에 전체 트랜잭션을 저장하고 seed_id를 태깅.
- 효과: 파인튜닝 시 동일한 공격 시드에서 파생된 성공 사례(Chosen)와 실패 사례(Rejected)를 완벽히 묶어낼 수 있는 DPO(Direct Preference Optimization) 추출 파이프라인이 완성되었다.
'4. [팀] 프로젝트 및 공모전 > 4-5 AgentShield(보안 플랫폼)' 카테고리의 다른 글
| [트러블 슈팅] 로컬 단일 GPU에서 멀티 에이전트 LLM 파이프라인 실행하기: 직렬화와 VRAM 관리 (0) | 2026.04.22 |
|---|---|
| [트러블슈팅] Ollama EOF 에러의 원인: Thinking 모델과 KV Cache 오버플로 (0) | 2026.04.21 |
| [개인 공부 메모] AgentShield LLM Judge 오탐 문제 분석 및 보안 판정 동향 (0) | 2026.04.14 |
| [개인 공부] AgentShield 프로젝트 작업 일지 — 2026년 4월 14일 (0) | 2026.04.12 |
| [모델 테스트] LLM 보안 방어력 실측: SecureCode AI/ML 데이터셋 기반 비교 평가 (0) | 2026.04.09 |
