DeepTeam - LLM 레드팀 프레임워크 치트시트
DeepTeam은 DeepEval 팀이 구축한 오픈소스 LLM 레드팀 프레임워크입니다. 이는 LLM 애플리케이션에 대한 적대적 공격을 시뮬레이션합니다 — 프롬프트 주입, 탈옥, PII 누출, 과도한 에이전시, 편향 — 취약점과 공격 향상의 라이브러리를 사용합니다. 이는 기본 공격을 다시 작성하여 방어를 회피합니다. 핵심 아이디어는 레드팀이 반복 가능하고 자동화되어야 한다는 것이므로, 일회성 수동 연습이 아니라 테스트 스위트처럼 실행됩니다.
소유하거나 테스트 권한이 있는 시스템만 레드팀으로 테스트하세요. 생성된 공격은 실제 적대적 입력입니다.
설치
| 방법 | 명령 |
|---|
| pip | pip install deepteam |
| uv | uv add deepteam |
| 모델 키 | export OPENAI_API_KEY=... (시뮬레이터 + 판사) |
| 확인 | python -c "import deepteam; print('ok')" |
핵심 개념
| 용어 | 의미 |
|---|
| Vulnerability | 조사할 약점 클래스 (예: PII 누출) |
| Attack | 이를 유발하는 데 사용되는 기술 (예: 프롬프트 주입) |
| Enhancement | 공격을 탐지하기 어렵게 만드는 변환 |
| 모델 콜백 | DeepTeam이 호출할 수 있는 함수로 래핑된 당신의 앱 |
| 위험 평가 | 성공한 것에 대한 채점된 보고서 |
최소 레드팀 실행
from deepteam import red_team
from deepteam.vulnerabilities import Bias, PIILeakage
from deepteam.attacks.single_turn import PromptInjection
async def model_callback(input: str) -> str:
# call YOUR app/model here and return its output
return await my_llm_app(input)
risk = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(), PIILeakage()],
attacks=[PromptInjection()],
)
print(risk)
| 인수 | 목적 |
|---|
model_callback | 테스트 중인 시스템에 대한 어댑터 |
vulnerabilities | 조사할 약점 |
attacks | 사용할 기술 |
attacks_per_vulnerability_type | 테스트 케이스의 양 |
취약점 범주
| 범주 | 조사 대상 |
|---|
PIILeakage | 개인 데이터 누출 |
Bias | 성별/인종/종교/정치적 편향 |
Toxicity | 해로운 또는 모욕적인 출력 |
PromptLeakage | 시스템 프롬프트 공개 |
ExcessiveAgency | 권한 없는 조치 |
Misinformation | 사실상/근거 없는 주장 |
IllegalActivity | 안전하지 않은 명령 준수 |
Robustness | 하이재킹 / 입력 과다의존성 |
공격 및 향상
| 단일 턴 공격 | 기술 |
|---|
PromptInjection | 주입된 명령 |
Roleplay | 페르소나 기반 우회 |
Base64 / ROT13 / Leetspeak | 인코딩 회피 |
Multilingual | 비영어 우회 |
MathProblem | 프레이밍을 통한 난독화 |
| 다중 턴 공격 | 기술 |
|---|
LinearJailbreaking | 에스컬레이팅 턴 |
TreeJailbreaking | 우회를 위한 분기 검색 |
CrescendoJailbreaking | 점진적 에스컬레이션 |
CI에서 실행
# red_team.py — high-severity issues가 나타나면 빌드 실패
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
| 관행 | 이유 |
|---|
| 시나리오 세트 고정 | 실행 간 비교 가능한 결과 |
| 심각도로 게이팅 | 높은 위험 회귀만 차단 |
| 보고서 저장 | 시간에 따른 신세 추적 |
| 프롬프트 변경 시 재실행 | 프롬프트는 제어 표면 |
DeepTeam vs 관련 도구
| 측면 | DeepTeam | garak | PyRIT | promptfoo |
|---|
| 계층 | 애플리케이션 | 모델 | 모델 + 다중 턴 | 애플리케이션 |
| 스타일 | Pythonic 스위트 | CLI 스캐너 | 오케스트레이션 SDK | 구성 + CLI |
| 다중 턴 | 예 | 제한적 | 강력 | 예 |
| 최고의 용도 | 앱 레벨 자동화된 레드팀 | 광범위한 모델 조사 | 복잡한 공격 연구 | CI 평가 + 레드팀 |
garak (모델 계층 조사)와 promptfoo (평가 + CI)를 보완합니다. 하나 이상 실행하세요 — 다른 오류를 포착합니다.
리소스