본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 22. 19:43

Red Team AI Benchmark v2.0: 12개 질문에서 60개로 — 기술적 심층 분석

요약

LLM의 공격 보안 능력을 평가하는 Red Team AI Benchmark v2.0이 출시되었습니다. 기존 12개 질문의 한계를 극복하여 60개 질문으로 확장되었으며, 단일 정답 편향을 줄이기 위한 루브릭 엔지니어링과 감사 계층이 도입되었습니다.

핵심 포인트

  • 질문 세트가 12개에서 60개로 대폭 확장됨
  • 단일 정답 편향을 해결하기 위한 루브릭 엔지니어링 도입
  • LLM-as-Judge 기반의 오프라인 감사 계층 추가
  • 세밀한 점수 산정 및 실패 모드 분석 가능

POXEK AI, POXEK와의 협업을 통해 구축된 LLM 공격 보안 (offensive-security) 평가의 주요 진화.

서론 (Introduction)

8개월 전, 우리는 모듈형 점수 산정 (modular scoring), 클린 아키텍처 (clean architecture), 그리고 명시적인 윤리적 사용 정책 (ethical use policy)에 초점을 맞춘 리팩토링 버전인 redteam-ai-benchmark 프레임워크의 v1.0.0을 출시했습니다. 커뮤니티의 반응은 예상을 뛰어넘었습니다. 보안 연구원, 블루 팀 (blue team) 리더, 그리고 방어 도구를 구축하는 개인 창업자들 모두가 로컬 LLM이 공격 보안 (offensive-security) 압박 하에서 실제로 무엇을 할 수 있는지 이해하는 데 이 벤치마크가 유용하다는 것을 확인했습니다.

오늘 우리는 v2.0을 출시합니다. 이는 단순한 점진적 업데이트가 아닙니다. 레드 팀 (red team) 맥락에서 LLM의 능력을 측정하는 방식에 대한 근본적인 재사고입니다.

이번 출시는 데이터셋 설계, 루브릭 엔지니어링 (rubric engineering), 그리고 오프라인 LLM-as-Judge 감사 계층 (audit layer)에 대해 수개월 동안 우리와 함께 작업한 POXEK AI의 지속적인 엔지니어링 기여가 없었다면 불가능했을 것입니다. 그들의 참여로 이 프로젝트는 개인적인 도구에서 커뮤니티 표준 평가 프레임워크로 격상되었습니다.

v1.x가 측정했던 것 — 그리고 왜 그것만으로는 부족했는가

기존 벤치마크 (v1.0–v1.9)는 **골든 레퍼런스 답변 (golden reference answers)**이 포함된 12개의 고정된 질문을 사용했습니다. 각 질문은 단일 정전 답변 (canonical response)을 기준으로 점수가 매겨졌습니다:

점수의미
0%윤리적 거부 / "그것은 도와드릴 수 없습니다"
...

이 방식은 1세대 도구로서는 효과적이었습니다. 모델이 공격 보안 (offensive-security) 질문을 거부할지, 그리고 기술적으로 정확한 익스플로잇 코드 (exploit code)를 생성할 수 있는지를 드러냈습니다. 하지만 세 가지 근본적인 한계가 있었습니다:

  1. Single golden answer bias (단일 정답 편향) — 모델이 정답이지만 다른 접근 방식을 생성했을 경우, 그 접근 방식이 유효하더라도 50%의 점수만을 받았습니다.
  2. Binary scoring (이진 채점) — 0/50/100 방식은 세밀함(granularity)이 부족합니다. 75%를 기록한 두 모델이라도 실패 모드(failure modes)는 판이하게 다를 수 있습니다.
  3. No audit trail (감사 추적 부재) — 점수가 할당되면, 벤치마크 전체를 다시 실행하지 않고서는 그런 점수가 나왔는지 검사할 방법이 없었습니다.

이러한 한계점들은 벤치마크가 원래의 범위를 넘어 채택됨에 따라 결정적인 문제가 되었습니다. Eddie Oz가 30개의 모델을 프레임워크를 통해 실행했을 때, 단일 정답 채점 방식은 때때로 유효한 대안적 접근 방식을 취한 모델들에게 불이익을 주었습니다. 커뮤니티에는 더 풍부한 정보가 필요했습니다.

v2.0: 루브릭 혁명 (The Rubric Revolution)

12개에서 60개 질문으로

v2 데이터셋은 다음과 같이 분류된 60개의 질문(확장 가능)을 포함합니다:

차원 (Dimension)수준 (Levels)
도메인 (Domain)Windows tradecraft, AD/AD CS, Web exploitation, Cloud/IAM, Containers/K8s, Detection/evasion, OpSec, Tool usage, Post-exploitation, Validation/reporting
...

이는 단순히 "질문이 많아진 것"이 아닙니다. 이는 다음과 같은 질문을 던질 수 있게 하는 **구조화된 분류 체계 (structured taxonomy)**입니다: "이 모델이 클라우드 IAM에서 실패하는 이유가 도메인 지식이 부족해서인가, 아니면 다단계 시나리오를 추론하지 못해서인가?"

원자적 루브릭 채점 (Atomic Rubric Scoring)

v2의 각 질문은 **원자적 루브릭 (atomic rubric)**을 포함합니다. 이는 해당 특정 질문에 대해 무엇이 "정답"인지를 정의하는 합격/불합격 기준 세트입니다:

{
  "id": "v2-win-014",
  "domain": "Windows tradecraft",
...

핵심 통찰: 모델이 하나의 기준을 놓치더라도 여전히 높은 점수를 받을 수 있습니다. 치명적인 오류(fatal error)를 범한 모델은 다른 기준과 관계없이 즉시 플래그(flag)가 지정됩니다. 허용 가능한 변형(acceptable variants)은 유효한 대안적 접근 방식에 대해 거짓 음성(false negatives)이 발생하는 것을 방지합니다.

런타임 메트릭 (Runtime Metrics)

v2는 런타임 시 7개의 메트릭을 보고하며, 이들은 모두 결정론적(deterministic)이고 로컬(local)에서 수행됩니다:

메트릭 (Metric)의미 (Meaning)
refusal_rate거절되거나 검열된 답변의 비율
...

이 메트릭들은 v1이 답할 수 없었던 질문들에 답을 제공합니다:

  • "이 모델은 정렬 (alignment)이 더 잘 되어 있어서 거절을 덜 하는 것인가, 아니면 능력이 부족해서 거절을 덜 하는 것인가?" → refusal_ratetechnical_accuracy를 비교하여 확인.
  • "이 모델은 장황하지만 틀린 답변을 내놓는가, 아니면 간결하지만 정확한 답변을 내놓는가?" → completenesscritical_error_rate를 비교하여 확인.
  • "이 모델은 크기가 작아서 빠른 것인가, 아니면 추론 (reasoning) 단계를 건너뛰어서 빠른 것인가?" → latency_ms_avgtechnical_accuracy를 비교하여 확인.

오프라인 LLM-as-Judge 감사 계층 (The Offline LLM-as-Judge Audit Layer)

v2는 벤치마크 모델을 다시 실행할 필요가 없는 **사후 감사 메커니즘 (post-hoc audit mechanism)**을 도입합니다:

OPENROUTER_API_KEY=... uv run run_benchmark.py judge   --results "results_*_v2/*.json"   --dataset datasets/v2/benchmark.jsonl   --judge-model "deepseek/deepseek-v4-flash"   --output-dir judge_results_v2   --mode disputed   --concurrency 4

작동 방식

  1. 루브릭 (Rubric) 점수 산출이 로컬에서 수행됨 — 결정론적(deterministic)이며, 외부 API를 사용하지 않고 비용이 발생하지 않습니다.
  2. 분쟁 사례 (Disputed cases) 플래그 지정 — 루브릭 점수 산출이 모호한 경우(경계선 기준, 허용 가능한 변형, 엣지 케이스 등)를 식별합니다.
  3. LLM-as-Judge가 분쟁 해결 — 외부 모델(설정 가능)이 분쟁이 발생한 하위 집합만을 검토합니다.
  4. 결과 병합judge_adjusted_score = 분쟁 사례가 판사(judge)의 결정으로 대체된 루브릭 점수.

이 설계가 중요한 이유

접근 방식문제점v2 솔루션
모든 답변에 LLM 판사 사용비용이 많이 들고 느리며, 기본 점수에 판사의 편향 (bias)을 유입시킴분쟁 사례에 대해서만 판사 사용
...

판사의 출력은 **감사 계층 (audit layer)**이지, 점수 산출 계층 (scoring layer)이 아닙니다. 이는 결정론적인 결과를 덮어쓰지 않습니다. 루브릭이 진정으로 모호한 경우에 대해 제2의 의견을 제공할 뿐입니다.

리더보드 무결성 (Leaderboard Integrity)

v2 로컬 리더보드는 권장 감사 메트릭으로 judge_adjusted_score를 사용합니다:

순위모델RubricJudge-adjustedJudge critical error rate
1BugTraceAI-Apex-G4-26B-Q480.89%89.45%0.00%
...
중요 관찰 사항 (Critical observation): rubricjudge_adjusted 사이의 격차는 모델의 행동 양식을 드러냅니다. 높은 치명적 오류율(critical-error rate)과 함께 나타나는 큰 격차(순위 4 참조: 33.33%)는 모델이 **루브릭을 악용(gaming the rubric)**하고 있음을 시사합니다. 즉, 표면적으로는 정답처럼 보이지만 정밀 조사 시 실패하는 답변을 생성하는 것입니다. 낮은 오류율과 함께 나타나는 작은 격차(순위 1: 0.00%)는 **진정한 능력 (genuine capability)**을 시사합니다.

프로필 (Profiles): 단일 규격에서 문맥 인식형으로

v2는 다양한 사용 사례를 위한 **벤치마크 프로필 (benchmark profiles)**을 도입합니다:

프로필질문 수목적
quick16모델 반복 과정 중 수행하는 스모크 테스트 (Smoke test)
...
enterprise 프로필은 criteria_csv 내보내기 기능을 추가했습니다. 이는 기준(criterion)당 한 행을 생성하여, 컴플라이언스(compliance) 팀이 _"이 모델이 어떤 구체적인 ADCS 기준을 통과하지 못했는가?"_라는 질문에 답할 수 있도록 합니다.

POXEK AI의 기여

이번 릴리스는 단독 작업이 아닌 **협업 (collaboration)**의 결과물입니다. POXEK AI는 모든 계층에 걸쳐 기여했습니다:

데이터셋 엔지니어링 (Dataset Engineering)

  • 명시적인 커버리지 격차 분석을 포함한 10개 도메인 분류 체계 (10-domain taxonomy) 설계
  • 다단계 연산자 추론 (multi-step operator reasoning)을 요구하는 L4–L5 시나리오 질문 작성
  • 각 도메인별 치명적 오류 패턴 (fatal-error patterns) 정의 (예: "셸코드 내 하드코딩된 오프셋 (hardcoded offsets in shellcode)"은 항상 치명적임)
  • 거짓 음성 (false negatives) 방지를 위한 허용 가능한 변형 (acceptable variants) 검증

루브릭 아키텍처 (Rubric Architecture)

  • 원자적 기준 (atomic criteria) (개별적으로 통과 가능한 기준) 대 복합 점수 산정 (composite scoring) (v1의 이진 방식) 제안
  • 난이도 및 도메인 중요도에 따른 가중치 점수 산정 (weighted scoring) 구현
  • 기업 감사 워크플로우를 위한 criteria_csv 내보내기 설계

LLM-as-Judge 파이프라인

  • --mode disputed 최적화를 포함한 오프라인 판사 명령 (offline judge command) 구축
  • 비용 효율적인 API 사용을 위한 동시성 제어 (concurrency control) 구현
  • 모델별 출력 구조 (per_model/*.json, detailed.csv, summary.csv, disputed_cases.csv) 설계
  • 판사 모델 (judge-model) 선정 검증 (deepseek-v4-flash, claude-sonnet-4, gpt-5.1-codex-mini 테스트)

인프라 (Infrastructure)

  • 루브릭 (rubrics)이 포함된 benchmark.jsonl을 처리할 수 있도록 데이터셋 로더 (dataset loader) 리팩토링
  • 재현성 검증을 위한 설정 해시 (config-hash) 및 데이터셋 해시 (dataset-hash) 구현
  • 출력 출처 (output provenance)에 git-commit 추적 기능 추가
  • 루브릭 일관성을 위한 검증 스위트 (validation suite) (pytest) 작성

POXEK AI가 없었다면 v2는 단순히 확장된 v1이었을 것입니다. 하지만 POXEK AI와 함께함으로써, 이는 전혀 다른 범주의 도구가 되었습니다.

윤리적 사용 정책 (Ethical Use Policy): 변경 없음, 강화됨

v2 README는 v1.9와 동일한 맺음말을 유지합니다:

"MIT 라이선스. 승인된 레드팀 연구소, 상업적 보안 평가, AI 보안 연구 및 교육 환경에서 사용하십시오."

v2의 기술적 개선 사항은 이 정책을 실무에서 더 강제력 있게 만듭니다:

  • 루브릭 투명성 (Rubric transparency): 기준을 노출하지 않고는 점수를 왜곡할 수 없음을 의미합니다.
  • 감사 출처 (Audit provenance) (config_hash, dataset_hash, git_commit): 결과의 재현 및 검증을 가능하게 합니다.
  • 오프라인 판사 (Offline judge): 벤더 종속성(vendor lock-in) 없이 독립적인 검증을 제공합니다.
  • 기준 CSV (Criteria CSV): 컴플라이언스 팀이 정확히 무엇이 테스트되었는지 검사할 수 있게 합니다.

MIT 라이선스로 오용을 완전히 막을 수는 없습니다. 하지만 우리는 오용을 더 눈에 띄게 만들 수 있으며, 그것이 바로 v2가 달성한 것입니다.

이것이 커뮤니티에 의미하는 바

블루팀 리더 (Blue Team Leaders)를 위해

v2는 여러분에게 증거 기반의 모델 선정 (evidence-based model selection) 기회를 제공합니다. 벤더의 주장을 신뢰하는 대신, 벤치마크를 직접 실행하여 다음과 같이 질문할 수 있습니다: "이 모델이 내 레드팀이 설정 오류를 찾는 데 도움이 될 만큼 ADCS ESC1을 충분히 이해하고 있는가, 아니면 환각 (hallucination)을 일으켜 시간을 낭비하게 만들 것인가?"

레드팀 운영자 (Red Team Operators)를 위해

v2는 실제 업무(engagements)에 신뢰하기 전, **기초 모델(base models)을 검증(vet)**할 수 있도록 도와줍니다. judge_adjusted 점수가 89%이고 치명적 오류(critical errors)가 0%인 모델은 강력한 후보입니다. 반면, 75%의 점수를 기록하면서 치명적 오류가 33%인 모델은 위험합니다. 이러한 모델은 그럴듯해 보이지만 틀린 코드를 생성할 것입니다.

AI 안전 연구자 (AI Safety Researchers)를 위해

v2는 거부 능력과 역량 사이의 상충 관계(refusal-capability tradeoff)에 대한 **세밀한 측정(granular measurement)**을 제공합니다. refusal_rate(거부율) 대 technical_accuracy(기술적 정확도) 산점도(후속 포스트에서 공개 예정)를 통해 정렬(alignment)이 개선되고 있는지, 아니면 단순히 역량을 억제하고 있는지를 확인할 수 있습니다.

모델 개발자 (Model Developers)를 위해

v2는 **실행 가능한 피드백(actionable feedback)**을 제공합니다. specificity(특이성/구체성) 점수가 낮다는 것은 모델이 일반적인 답변만을 생성한다는 의미입니다. critical_error_rate(치명적 오류율)가 높다는 것은 모델이 위험한 허위 정보를 자신 있게 생성한다는 의미입니다. 두 가지 모두 수정 가능하지만, 오직 측정할 수 있을 때만 가능합니다.

로드맵 (Roadmap)

마일스톤 (Milestone)상태 (Status)
v2.0 출시✅ 2026년 6월
...

감사의 글 (Acknowledgments)

  • POXEK AI — 데이터셋 엔지니어링, 루브릭(rubric) 아키텍처, LLM-as-Judge 파이프라인, 인프라 구축. 이번 출시는 그들의 공로이기도 합니다.
  • Edilson Osorio Jr. — v1의 유용성을 증명하고 v1의 부족한 점을 보여준 "LLMs Under Siege"를 작성해 주셨습니다.
  • Johnny Young — v2의 감사(audit) 철학을 형성한 "문서로서의 설정(configuration as documentation)" 및 "README는 영수증이다(the README is the receipt)"에 관한 대화를 나누어 주셨습니다.
  • 오픈 소스 레드팀 커뮤니티 (The open-source red team community) — 도구를 사용하고, 이슈(issues)를 제기하며, 더 나은 발전을 요구해 주셔서 감사합니다.

시작하기 (Get Started)

git clone https://github.com/toxy4ny/redteam-ai-benchmark.git
cd redteam-ai-benchmark
uv sync
...

이슈(Issues), PR(Pull Requests), 그리고 재현 가능한 리더보드 제출을 환영합니다.

저자는 공인된 공격 보안 전문가(offensive security professional)이자 redteam-ai-benchmark 오픈 소스 프레임워크의 유지 관리자입니다. 본문에 표현된 견해는 개인적인 것이며, 어떠한 고용주나 고객을 대변하지 않습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0