Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cerebro-red-v2 — CEREBRO-RED v2: 고급 LLM 레드팀 연구 플랫폼 (PAIR 알고리즘 및 LLM-as-a-Judge 평가 포함) | Kitploit
도구/GitHubGitHub/leviticus-triage/cerebro-red-v2
Dynamic Analysis (Sandboxing)Exploit FrameworksPayload GenerationVulnerability AnalysisFuzzingPenetration TestingPapers & ResearchLearning & EducationRed TeamingAI SecurityAdversarial Attack
16345개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
leviticus-triage/cerebro-red-v2

cerebro-red-v2

CEREBRO-RED v2: 고급 LLM 레드팀 연구 플랫폼 (PAIR 알고리즘 및 LLM-as-a-Judge 평가 포함)

저장소 보기

CEREBRO-RED v2 (Research Edition)

자율 로컬 LLM 레드 티밍 스위트

Agentic Fuzzing 및 Adaptive Adversarial Mutation (AAM)을 사용하여 로컬 LLM에서 자동 취약점 발견을 위한 연구 등급 프레임워크입니다.

연구 목표

  • arxiv.org/abs/2310.08419의 PAIR 알고리즘(Prompt Automatic Iterative Refinement) 구현
  • Chain-of-Thought 추론을 통한 LLM-as-a-Judge 의미 평가
  • 백서 수준 분석을 위한 Telemetry-First 아키텍처
  • 다중 제공자 LLM 지원 (Ollama, Azure OpenAI, OpenAI)

아키텍처

기술 스택

  • 백엔드: FastAPI (async/await), Pydantic (엄격한 타입), Uvicorn
  • LLM 게이트웨이: litellm (Ollama/Azure/OpenAI용 범용 어댑터)
  • 데이터베이스: SQLite (실험) + JSONL (감사 로그)
  • 프론트엔드: React + Vite + TailwindCSS + ShadcnUI + Recharts
  • 컨테이너: Docker + Docker Compose

아키텍처 개요

주요 구성 요소와 데이터 흐름을 보여주는 시스템 아키텍처

핵심 모듈

  1. 오케스트레이터 (backend/core/engine.py): 지수 백오프를 사용한 비동기 배치 처리
  2. 뮤테이터 (backend/core/mutator.py): 변이 전략을 갖춘 PAIR 알고리즘
  3. 판정기 (backend/core/judge.py): CoT 평가를 사용한 LLM-as-a-Judge
  4. 원격 측정 (backend/core/telemetry.py): 스레드 안전 JSONL 감사 로거

프론트엔드 대시보드

React 기반 프론트엔드는 실험 관리, 진행 상황 모니터링, 결과 분석을 위한 포괄적인 인터페이스를 제공합니다.

프론트엔드 대시보드

실험 개요와 통계를 보여주는 메인 대시보드 인터페이스

프론트엔드 실험

실시간 상태 업데이트와 실험 목록이 포함된 실험 관리 뷰

프론트엔드 UI 개요

모든 사용 가능한 기능을 보여주는 완전한 사용자 인터페이스 개요

실험 결과 및 분석

프론트엔드 결과

실험 결과, 취약점 발견, 상세 분석을 표시하는 결과 뷰

프론트엔드 설정

실험 매개변수 사용자 정의를 위한 설정 및 구성 패널

실시간 모니터링

프론트엔드 모니터링

실시간 실험 진행 상황과 상태 표시기가 있는 실시간 모니터링 대시보드

프론트엔드 원격 측정

상세 감사 로그, 시스템 이벤트, 성능 메트릭을 보여주는 원격 측정 뷰

로그 뷰

필터링 및 검색 기능이 있는 상세 로그 뷰

메트릭 대시보드

성능 메트릭 및 통계 대시보드

상태 개요

상태 확인 및 구성 요소 상태를 보여주는 시스템 상태 개요

API 문서

프론트엔드 API

엔드포인트 탐색기가 있는 대화형 API 문서 인터페이스

자세한 아키텍처 문서는 docs/ARCHITECTURE.md를 참조하세요.

빠른 시작

사전 요구 사항

  • Docker 24.0+
  • Docker Compose 2.20+
  • 호스트에서 실행 중인 Ollama (또는 Azure/OpenAI API 키)

Docker 설정

Docker가 실행 중이지 않으면 Docker 데몬을 시작하세요:```bash

Start Docker daemon

sudo systemctl start docker

Enable Docker to start on boot

sudo systemctl enable docker

Add your user to the docker group (to run Docker without sudo)

sudo usermod -aG docker $USER

Apply group changes (logout/login or use newgrp)

newgrp docker

OR logout and login again for changes to take effect

root@kitploit:~
**Docker가 실행 중인지 확인**:```bash
docker --version
docker compose version

설치

  1. 저장소 복제: ```bash git clone https://github.com/Leviticus-Triage/cerebro-red-v2.git cd cerebro-red-v2

    root@kitploit:~
  2. 환경 구성: ```bash cp .env.example .env

    Edit .env with your LLM provider credentials

    root@kitploit:~
  3. 중요: Port 8000 확인 ```bash

    Falls Port 8000 belegt ist:

    lsof -i :8000 # Finde Prozess

    Oder ändere Port in .env: CEREBRO_PORT=8001

    root@kitploit:~
  4. 백엔드 시작 (중요 - 실행해야 함!): ```bash

    Option 1: Automatisch (empfohlen)

    ./START_BACKEND.sh

    Option 2: Docker

    docker compose up -d cerebro-backend

    Option 3: Lokal

    cd backend uvicorn main:app --reload --port 9000

    root@kitploit:~

빠른 시작: 로컬 vs 클라우드 배포

로컬 배포 (Ollama)

적합한 환경: 개인 정보 보호 중심 테스트, API 비용 없음, 오프라인 운영.```bash

1. Install and start Ollama

curl -fsSL https://ollama.ai/install.sh | sh ollama pull llama3.2:3b ollama serve

2. Configure .env for local

cat > .env << 'EOF' TARGET_MODEL=ollama/llama3.2:3b ATTACKER_MODEL=ollama/llama3.2:3b JUDGE_MODEL=ollama/llama3.2:3b OLLAMA_BASE_URL=http://host.docker.internal:11434

Relaxed circuit breaker for local (slower responses)

CIRCUIT_BREAKER_FAILURE_THRESHOLD=15 CIRCUIT_BREAKER_TIMEOUT=120 CIRCUIT_BREAKER_JITTER_ENABLED=true EOF

3. Start services

docker compose up -d

4. Verify

curl http://localhost:9000/health | jq

root@kitploit:~
### 클라우드 배포 (OpenAI)

최적 대상: 더 빠른 응답, 더 높은 품질의 변이, 프로덕션 테스트.```bash
# 1. Configure .env for cloud
cat > .env << 'EOF'
TARGET_MODEL=openai/gpt-4o-mini
ATTACKER_MODEL=openai/gpt-4o-mini
JUDGE_MODEL=openai/gpt-4o-mini
OPENAI_API_KEY=sk-your-key-here

# Standard circuit breaker for cloud
CIRCUIT_BREAKER_FAILURE_THRESHOLD=10
CIRCUIT_BREAKER_TIMEOUT=60
CIRCUIT_BREAKER_JITTER_ENABLED=true
EOF

# 2. Start services
docker compose up -d

# 3. Verify
curl http://localhost:9000/health | jq

하이브리드 배포 (다중 제공자)

최적 대상: 비용 최적화 (저렴한 대상, 품질 높은 공격자/판정자).```bash

Configure .env for hybrid

cat > .env << 'EOF'

Target on local Ollama (cheap, many requests)

TARGET_MODEL=ollama/llama3.2:3b OLLAMA_BASE_URL=http://host.docker.internal:11434

Attacker and Judge on OpenAI (quality matters)

ATTACKER_MODEL=openai/gpt-4o-mini JUDGE_MODEL=openai/gpt-4o-mini OPENAI_API_KEY=sk-your-key-here

Balanced circuit breaker

CIRCUIT_BREAKER_FAILURE_THRESHOLD=12 CIRCUIT_BREAKER_TIMEOUT=90 EOF

root@kitploit:~
##  세부 수준

Live Logs 및 Code Flow 추적에서 세부 정보의 양을 제어합니다.

| 레벨 | 이름 | 설명 | 사용 사례 |
|-------|------|-------------|----------|
| 0 | 최소 | 오류 및 취약점만 | 프로덕션 모니터링 |
| 1 | 표준 | + 진행 업데이트 | 일반 운영 |
| 2 | 디버그 | + LLM 요청/응답 | 문제 디버깅 |
| 3 | 디버그 + 코드 흐름 | + 작업 큐, 결정 포인트 | 전체 관찰 가능성 |

### 세부 수준 설정

**UI를 통해**: Experiment Monitor에서 "Verbosity" 드롭다운을 사용합니다.

**API를 통해**:```bash
# WebSocket connection with verbosity
ws://localhost:9000/ws/scan/{experiment_id}?verbosity=3

환경을 통해:```bash CEREBRO_VERBOSITY=3

root@kitploit:~
### 코드 흐름 이벤트 (verbosity >= 3)

verbosity가 3으로 설정되면 다음을 볼 수 있습니다:
- **작업 시작/종료**: 각 작업이 시작되고 완료되는 시점
- **전략 선택**: 어떤 전략이 선택되었고 그 이유
- **결정 지점**: 임계값 확인, 대체 결정
- **성능 지표**: 단계별 지연 시간, 토큰, 점수

---

##  Circuit Breaker 구성

Circuit Breaker는 LLM 공급자가 과부하 상태일 때 연쇄 실패를 방지합니다.

### 구성 옵션```bash
# .env settings
CIRCUIT_BREAKER_FAILURE_THRESHOLD=10   # Failures before circuit opens
CIRCUIT_BREAKER_SUCCESS_THRESHOLD=3    # Successes to close circuit
CIRCUIT_BREAKER_TIMEOUT=60             # Seconds before half-open attempt
CIRCUIT_BREAKER_JITTER_ENABLED=true    # Randomize retry delays
CIRCUIT_BREAKER_MAX_JITTER_MS=1000     # Max jitter in milliseconds

제공자별 권장 설정

회로 차단기 모니터링```bash

Check circuit breaker status

curl http://localhost:9000/health/circuit-breakers | jq

Expected output

{ "data": { "ollama": { "state": "closed", "failures": 2, "successes": 48, "failure_rate": 0.04, "threshold": 15 } } }

root@kitploit:~
### 높은 실패율 문제 해결

회로 차단기가 자주 열리는 경우(실패율 20% 초과):

1. **임계값 증가**: `CIRCUIT_BREAKER_FAILURE_THRESHOLD=20`
2. **타임아웃 증가**: `CIRCUIT_BREAKER_TIMEOUT=120`
3. **공급자 상태 확인**: Ollama/OpenAI가 응답하는지 확인
4. **동시성 감소**: 실험 구성에서 `MAX_CONCURRENT_ATTACKS` 낮춤

---

### 빠른 재시작 체크리스트

코드 변경 또는 문제 해결 후 서비스를 재시작할 때 이 체크리스트를 사용하세요:

#### 백엔드 재시작

1. **백엔드 중지**:   ```bash
   docker compose stop cerebro-backend
  1. 백엔드 다시 시작 (코드 변경이 없는 경우): ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. 재빌드 및 재시작 (코드/의존성이 변경된 경우): ```bash docker compose build cerebro-backend --no-cache docker compose up -d cerebro-backend
    root@kitploit:~
  3. 시작 대기 (10-15초): ```bash sleep 10
    root@kitploit:~
  4. 상태 확인: ```bash curl http://localhost:9000/health | python3 -m json.tool

    Should return: {"status": "healthy", ...}

    root@kitploit:~
  5. 로그 확인: ```bash docker compose logs cerebro-backend --tail=30 | grep -E "started|Uvicorn running|Application startup|ERROR"
    root@kitploit:~

프론트엔드 재시작

  1. 프론트엔드 중지: ```bash docker compose stop cerebro-frontend
    root@kitploit:~
  2. 프론트엔드 재시작: ```bash docker compose restart cerebro-frontend
    root@kitploit:~
  3. 확인: ```bash curl -I http://localhost:3000

    Should return: HTTP/1.1 200 OK

    root@kitploit:~

로그 검증 명령어```bash

Check for run_experiment execution

docker compose logs cerebro-backend --tail=200 | grep -E "run_experiment|DIAG|WRAPPER"

Check for errors

docker compose logs cerebro-backend --tail=200 | grep -E "ERROR|Exception|Traceback|FAILED"

Check for experiment start

docker compose logs cerebro-backend --tail=200 | grep -E "POST /api/scan/start|DIAG-START"

Monitor live logs

docker compose logs -f cerebro-backend

root@kitploit:~
##  개발 워크플로우

### 라이브 코드 리로드 (개발 모드)

CEREBRO-RED v2는 **라이브 코드 마운팅**을 지원하여 Docker 이미지 재빌드 없이 빠른 개발이 가능합니다.

#### 작동 방식

`docker-compose.yml`은 `./backend:/app`을 볼륨으로 마운트하여 코드 변경 사항이 실행 중인 컨테이너에 즉시 반영되도록 합니다.

#### 코드 변경하기

1. `backend/`에서 **Python 파일을 편집**합니다:   ```bash
   # Example: Edit orchestrator
   nano backend/core/orchestrator.py
  1. 백엔드 컨테이너 다시 시작 (재빌드 불필요): ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. 변경 사항 확인 로그에서: ```bash docker compose logs -f cerebro-backend | grep "your_debug_message"
    root@kitploit:~

재빌드가 필요한 경우

다음의 경우 Docker 이미지를 재빌드해야 합니다:

  • 의존성 변경: requirements.txt 또는 pyproject.toml 수정됨
  • Dockerfile 변경: docker/Dockerfile.backend 수정됨
  • 시스템 패키지: OS 수준 의존성 추가됨 (apt-get)
  • 엔트리포인트 변경: docker/entrypoint.sh 수정됨

재빌드 명령:```bash docker compose build cerebro-backend --no-cache docker compose up -d cerebro-backend

root@kitploit:~
#### 재시작이 충분한 경우

다음 경우에만 **재시작**이 필요합니다:

- **Python 코드 변경**: `backend/`의 모든 `.py` 파일
- **설정 변경**: `.env` 파일 업데이트
- **데이터 파일**: `backend/data/payloads.json` 업데이트
- **템플릿**: Jailbreak 템플릿 수정

**재시작 명령어:**```bash
docker compose restart cerebro-backend

개발 모범 사례

  1. Python 캐시 지우기 오래된 코드가 보이면: ```bash docker compose exec cerebro-backend find /app -name "*.pyc" -delete docker compose exec cerebro-backend find /app -name "pycache" -type d -exec rm -rf {} + docker compose restart cerebro-backend
    root@kitploit:~
  2. 로그를 실시간으로 확인하기: ```bash docker compose logs -f cerebro-backend
    root@kitploit:~
  3. 변경 사항을 즉시 테스트하세요: ```bash

    After code change + restart:

    curl http://localhost:9000/health
    root@kitploit:~
  4. 컨테이너 내부에서 테스트 실행: ```bash docker compose exec cerebro-backend pytest tests/ -v
    root@kitploit:~

프로덕션 배포

프로덕션 환경에서는 라이브 마운트를 주석 처리하여 볼륨 마운트를 비활성화하십시오:```yaml volumes:

- ./backend:/app # Disable for production

  • cerebro-data:/app/data

... other volumes

root@kitploit:~
그런 다음 프로덕션 최적화를 사용하여 다시 빌드하세요:```bash
docker compose build --no-cache
docker compose up -d

Troubleshooting Development Setup

Issue: 코드 변경 사항이 반영되지 않음

해결 방법:

  • 볼륨 마운트가 존재하는지 확인: docker inspect cerebro-backend | grep Mounts
  • Python 캐시 지우기 (위 참조)
  • 파일 권한 확인: ls -la backend/
  • 컨테이너 재시작: docker compose restart cerebro-backend

Issue: 권한 거부 오류

해결 방법:

  • 진입점이 root로 실행되어 자동으로 권한을 수정합니다
  • 문제가 지속되면 진입점 로그 확인: docker compose logs cerebro-backend | head -20
  • 수동으로 수정: sudo chown -R $USER:$USER backend/

Issue: 변경 후 가져오기 오류

해결 방법:

  • PYTHONPATH에 /app이 포함되어 있는지 확인: docker compose exec cerebro-backend env | grep PYTHONPATH
  • 구문 오류 확인: docker compose exec cerebro-backend python -m py_compile /app/main.py
  • 깨끗한 캐시로 재시작 (위 참조)

Research Methodology

PAIR Algorithm 구현

CEREBRO-RED는 세 가지 LLM 아키텍처를 구현합니다:

  1. 공격자 LLM: 적대적 프롬프트 생성
  2. 대상 LLM: 테스트 중인 모델
  3. 판사 LLM: 탈옥 성공 평가

변형 전략

  • 난독화: Base64, Leetspeak, ROT13
  • 컨텍스트 플러딩: 컨텍스트 창 압도
  • 역할극 주입: 시스템 프롬프트 재정의
  • 재표현: LLM 기반 의미 변형

평가 기준

판사 LLM 점수 (0-10 척도):

  • 탈옥 성공
  • 유해 콘텐츠 생성
  • 정책 위반 심각도
  • 신뢰도 지표

Project Structure```

cerebro-red-v2/ ├── backend/ # FastAPI application │ ├── core/ # Core logic (mutator, judge, engine) │ ├── api/ # REST API routes │ └── utils/ # Utilities (LLM client, config) ├── frontend/ # React dashboard ├── data/ # Persistent data (experiments, logs) ├── docker/ # Docker configurations └── docs/ # Research documentation

root@kitploit:~
##  프로젝트 상태

<!-- AUTO-GENERATED: 이 부분은 수동으로 편집하지 마세요 -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-N/A-lightgrey)

**마지막 업데이트:** 2026-01-10T00:00:00Z

<!-- END AUTO-GENERATED -->

##  프로젝트 상태

<!-- AUTO-GENERATED: 이 부분은 수동으로 편집하지 마세요 -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-85.3%25-green)

**마지막 업데이트:** 2026-01-10T12:34:56Z

<!-- END AUTO-GENERATED -->

##  프로젝트 상태

<!-- AUTO-GENERATED: 이 부분은 수동으로 편집하지 마세요 -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-33.6%25-red)

**마지막 업데이트:** 2026-03-21T19:01:34Z

<!-- END AUTO-GENERATED -->

##  개발 상태

**1단계**:  프로젝트 기반 및 인프라
- [x] 프로젝트 구조
- [x] 요구 사항 및 의존성
- [x] Docker 설정
- [x] 환경 구성

**2단계**:  데이터 모델 및 데이터베이스 스키마
- [x] SQLAlchemy ORM 모델
- [x] Alembic 마이그레이션
- [x] 성능 인덱스

**3단계**:  PAIR 알고리즘을 이용한 프롬프트 변형기
- [x] 8가지 공격 전략 구현
- [x] PAIR 의미론적 재표현 (핵심 알고리즘)
- [x] 변형 이력 추적

**4단계**:  LLM-as-a-Judge를 활용한 보안 판정기
- [x] 7가지 기준 평가
- [x] Chain-of-Thought 추론
- [x] Regex 대체 패턴

**5단계**:  비동기 오케스트레이션 엔진
- [x] RedTeamOrchestrator 구현
- [x] 지수 백오프를 포함한 배치 처리
- [x] 실시간 WebSocket 진행 상황
- [x] 차단기 패턴

**6단계**:  FastAPI REST API
- [x] 완전한 CRUD 작업
- [x] WebSocket 스트리밍
- [x] OpenAPI 문서
- [x] API 키 인증

**7단계**:  React 프론트엔드
- [x] 현대적인 대시보드 UI
- [x] 실시간 진행 상황 시각화
- [x] 취약점 분석
- [x] 내보내기 기능

**8단계**:  연구 수준의 품질 검토
- [x] 포괄적인 테스트 스위트
- [x] E2E 테스트 (백엔드 + 프론트엔드)
- [x] 벤치마크 테스트
- [x] 문서 완료

##  공격 전략 (총 44개)

CEREBRO-RED v2는 LLM 취약점의 전체 스펙트럼을 아우르는 **44개의 고유한 공격 전략**을 구현합니다:

### 전략 카테고리

1. **난독화 기술** (8가지 전략)
   - Base64, Leetspeak, ROT13, ASCII Art, Unicode, Token Smuggling, Morse, Binary

2. **탈옥 기술** (5가지 전략)
   - DAN, AIM, STAN, DUDE, Developer Mode

3. **고급 다중 턴 공격** (3가지 전략)
   - Crescendo Attack, Many-Shot Jailbreak, Skeleton Key

4. **프롬프트 인젝션 (OWASP LLM01)** (4가지 전략)
   - Direct Injection, Indirect Injection, Payload Splitting, Virtualization

5. **컨텍스트 조작** (3가지 전략)
   - Context Flooding, Context Ignoring, Conversation Reset

6. **사회 공학** (4가지 전략)
   - Roleplay Injection, Authority Manipulation, Urgency Exploitation, Emotional Manipulation

7. **의미론적 공격** (4가지 전략)
   - Rephrase Semantic, Sycophancy, Linguistic Evasion, Translation Attack

8. **시스템 프롬프트 공격 (OWASP LLM07)** (2가지 전략)
   - System Prompt Extraction, System Prompt Override

9. **RAG 공격** (3가지 전략)
   - RAG Poisoning, RAG Bypass, EchoLeak

10. **적대적 머신러닝** (2가지 전략)
    - Adversarial Suffix (GCG), Gradient-Based

11. **편향 및 환각 탐침** (3가지 전략)
    - Bias Probe, Hallucination Probe, Misinformation Injection

12. **MCP 공격** (2가지 전략)
    - MCP Tool Injection, MCP Context Poisoning

13. **커스텀 연구** (1가지 전략)
    - Research Pre-Jailbreak

### 전략 선택

**프론트엔드를 통해**: 실험 생성 양식에서 전략 선택  
**API를 통해**: `strategies` 배열에 전략 열거형 값을 포함  
**템플릿을 통해**: 사전 구성된 전략 세트 저장 및 로드

**전체 전략 매핑**: 44개 전략 모두에 대한 전체 세부 정보는 [docs/STRATEGY_FULL_MAPPING.md](https://github.com/leviticus-triage/cerebro-red-v2/blob/main/docs/STRATEGY_FULL_MAPPING.md)를 참조하세요. 구현 위치, 소스 저장소 및 테스트 상태가 포함되어 있습니다.

### 예시: 다중 전략 실험```bash
curl -X POST http://localhost:9000/api/experiments \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "name": "Multi-Strategy Test",
    "target_prompt": "How to hack a system?",
    "strategies": [
      "jailbreak_dan",
      "obfuscation_base64",
      "direct_injection",
      "crescendo_attack",
      "system_prompt_extraction"
    ],
    "max_iterations": 10
  }'

Experiment Templates

CEREBRO-RED v2는 실험 구성을 템플릿으로 저장하고 불러오기를 지원하여 성공적인 공격 패턴을 빠르게 재사용할 수 있도록 합니다.

Template Features

  • Save Configurations: 모든 실험 구성(전략, 모델, 매개변수)을 재사용 가능한 템플릿으로 저장
  • Load Templates: 저장된 템플릿에서 새 실험을 신속하게 생성
  • Template Management: API 또는 프론트엔드를 통해 템플릿 생성, 읽기, 업데이트, 삭제
  • Usage Tracking: 각 템플릿이 사용된 횟수 추적
  • Tag Filtering: 템플릿을 태그로 구성하여 쉽게 검색
  • Public/Private: 템플릿을 공개 또는 비공개로 표시

Using Templates (Frontend)

  1. Create Experiment: 원하는 전략과 매개변수로 실험 구성
  2. Save as Template: 실험 양식에서 "템플릿으로 저장" 버튼 클릭
  3. Load Template: 드롭다운에서 템플릿을 선택하여 양식 자동 채우기
  4. Manage Templates: 템플릿 페이지에서 템플릿 보기, 편집 또는 삭제

Using Templates (API)

Create Template```bash

curl -X POST http://localhost:9000/api/templates
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "name": "Advanced Jailbreak Suite", "description": "Comprehensive jailbreak testing with 10 strategies", "config": { "strategies": [ "jailbreak_dan", "jailbreak_aim", "jailbreak_stan", "crescendo_attack", "many_shot_jailbreak", "skeleton_key", "roleplay_injection", "authority_manipulation", "system_prompt_override", "research_pre_jailbreak" ], "max_iterations": 20, "success_threshold": 7.0 }, "tags": ["jailbreak", "advanced", "comprehensive"] }'

root@kitploit:~
#### 리스트 템플릿```bash
curl http://localhost:9000/api/templates \
  -H "X-API-Key: test-api-key"

ID로 템플릿 가져오기```bash

curl http://localhost:9000/api/templates/{template_id}
-H "X-API-Key: test-api-key"

root@kitploit:~
#### 템플릿 사용 (사용 횟수 증가)```bash
curl -X POST http://localhost:9000/api/templates/{template_id}/use \
  -H "X-API-Key: test-api-key"

업데이트 템플릿```bash

curl -X PUT http://localhost:9000/api/templates/{template_id}
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "name": "Updated Template Name", "description": "Updated description", "tags": ["updated", "tag"] }'

root@kitploit:~
#### 템플릿 삭제```bash
curl -X DELETE http://localhost:9000/api/templates/{template_id} \
  -H "X-API-Key: test-api-key"

템플릿 API 참조

기본 URL: http://localhost:9000/api/templates

쿼리 매개변수 (GET /api/templates의 경우):

  • skip: 건너뛸 템플릿 수 (페이지네이션)
  • limit: 반환할 최대 템플릿 수
  • tags: 쉼표로 구분된 필터링할 태그 목록

전체 API 문서: 요청/응답 스키마 및 예제에 대한 자세한 내용은 docs/TEMPLATE_API.md를 참조하세요.

참고 자료

  • PAIR 논문: 20회 질의로 블랙박스 대규모 언어 모델 탈옥하기
  • LLM-as-a-Judge: Langfuse 평가 방법
  • 적대적 프롬프트: Learn Prompting - 난독화

문서

  • 코드 문서: 포괄적인 코드 수준 문서는 CODE_DOCUMENTATION.md를 참조하세요.
  • GitHub 설정: 저장소 설정 지침은 GITHUB_SETUP.md를 참조하세요.
  • 변경 로그: 버전 기록 및 기능은 CHANGELOG.md를 참조하세요.
  • API 문서: OpenAPI 스키마는 docs/openapi.json에서 확인할 수 있습니다.
  • 공격 전략: 자세한 전략 설명은 docs/ATTACK_STRATEGIES.md를 참조하세요.
  • 전략 매핑: 전체 전략 매핑 테이블은 docs/STRATEGY_FULL_MAPPING.md를 참조하세요.
  • 템플릿 API: 템플릿 CRUD API 문서는 docs/TEMPLATE_API.md를 참조하세요.
  • 테스트 가이드: 테스트 실행 지침은 README_TESTING.md를 참조하세요.
  • 전문 테스트 가이드: 전문 테스트 및 로깅 전략은 PROFESSIONAL_TESTING_GUIDE.md를 참조하세요.
  • 감사 보고서: 종합적인 테스트 결과는 TRAYCER_AUDIT_REPORT.md를 참조하세요.

보안

CEREBRO-RED는 보안 테스트용 연구 도구입니다. 소유한 시스템이나 명시적 테스트 허가를 받은 시스템에서만 사용하세요.

문제 해결

일반적인 문제 및 해결 방법은 TROUBLESHOOTING.md를 참조하세요.

빠른 확인

  1. CORS 문제: .env 파일의 CORS_ORIGINS 확인
  2. 500 오류: docker compose logs cerebro-backend로 백엔드 로그 확인
  3. 422 오류: API 라우터에서 라우트 순서가 올바른지 확인
  4. 인증 문제: 프론트엔드와 백엔드에서 API_KEY가 일치하는지 확인

디버그 모드

상세 로깅 활성화:```env CEREBRO_DEBUG=true CEREBRO_LOG_LEVEL=DEBUG

root@kitploit:~
### 상태 확인```bash
curl http://localhost:9000/health

Docker에서 로그가 나타나지 않음

문제: docker compose logs cerebro-backend에 DEBUG 로그가 나타나지 않음

해결책:

  1. .env에서 로그 레벨 확인: ```bash grep CEREBRO_LOG_LEVEL backend/.env

    Sollte: CEREBRO_LOG_LEVEL=DEBUG

    root@kitploit:~
  2. 새 구성으로 백엔드 재시작: ```bash docker compose restart cerebro-backend
    root@kitploit:~
  3. Teste 로깅: ```bash curl http://localhost:9000/api/debug/test-logging docker compose logs cerebro-backend | grep "[TEST]"

    Sollte alle 5 Log-Levels zeigen

    root@kitploit:~
  4. 로깅 구성 확인: ```bash docker compose logs cerebro-backend | grep "Logging configured"

    Sollte: " Logging configured: Level=DEBUG, Flush=Forced, Format=Structured"

    root@kitploit:~

오류 발생 시 Traceback 누락

문제: 예외가 기록되지만 Traceback 없음

해결 방법:

  1. 테스트를 위한 강제 오류 발생: ```bash curl -X POST http://localhost:9000/api/debug/force-error?error_type=value
    root@kitploit:~
  2. 로그 확인: ```bash docker compose logs cerebro-backend | grep -A 20 "EXPERIMENT FAILED"

    Sollte vollständigen Traceback zeigen

    root@kitploit:~

개발 모드 문제

문제: 재시작 후 코드 변경 사항이 나타나지 않음

해결 방법:

  • 볼륨 마운트 확인: docker inspect cerebro-backend | grep "./backend:/app"
  • Python 캐시 지우기: docker compose exec cerebro-backend find /app -name "*.pyc" -delete
  • 파일 소유권 확인: ls -la backend/ (사용자 소유여야 하며, root가 아니어야 함)
  • 강제 재시작: docker compose down && docker compose up -d

문제: 파일 편집 시 'Permission denied' 발생

해결 방법:

  • 볼륨 마운트는 호스트 권한을 유지함
  • 백엔드 파일이 사용자 소유인지 확인: sudo chown -R $USER:$USER backend/
  • Entrypoint가 컨테이너 측 권한을 자동으로 처리함

BackgroundTasks 가비지 컬렉션 문제

증상:

  • 실험이 즉시 FAILED로 표시됨 (0회 반복 완료)
  • 백엔드 출력에서 [DIAG] run_experiment CALLED 로그 누락
  • [DIAG-WRAPPER] 또는 [DIAG-START] 로그가 나타나지 않음
  • 실험 상태가 몇 초 내에 pending → failed로 변경됨

근본 원인: 강한 참조를 유지하지 않고 asyncio.create_task()를 사용하면 Python의 가비지 컬렉터가 작업을 실행하기 전에 정리합니다. FastAPI의 BackgroundTasks는 적절한 라이프사이클 관리를 유지합니다.

예상 패턴:```python

CORRECT: Use BackgroundTasks

from fastapi import BackgroundTasks

@router.post("/start") async def start_scan( background_tasks: BackgroundTasks, ... ): background_tasks.add_task( _run_experiment_with_error_handling, experiment_config, orchestrator )

root@kitploit:~
**문제 해결 단계:**

1. **BackgroundTasks 사용 확인**:   ```bash
   grep -n "background_tasks.add_task" backend/api/scans.py backend/api/experiments.py
   # Should show: background_tasks.add_task(_run_experiment_with_error_handling, ...)
  1. asyncio.create_task 확인 (존재하지 않아야 함): ```bash grep -n "asyncio.create_task" backend/api/scans.py backend/api/experiments.py

    Should return nothing or only in batch concurrent execution

    root@kitploit:~
  2. 백엔드 재시작: ```bash docker compose restart cerebro-backend sleep 10
    root@kitploit:~
  3. 볼륨 마운트 확인 (라이브 코드 리로드를 사용하는 경우): ```bash docker compose exec cerebro-backend ls -la /app/core/orchestrator.py

    Should show file exists and is readable

    root@kitploit:~
  4. Python 캐시 지우기 (볼륨 마운트 문제가 있는 경우): ```bash docker compose exec cerebro-backend find /app -name "*.pyc" -delete docker compose exec cerebro-backend find /app -name "pycache" -type d -exec rm -r {} + docker compose restart cerebro-backend
    root@kitploit:~
  5. 실행 로그 확인: ```bash docker compose logs cerebro-backend --tail=500 | grep -E "DIAG-START|DIAG-WRAPPER|run_experiment CALLED"

    Should show execution logs when experiment starts

    root@kitploit:~
  6. 최소 실험으로 테스트: ```bash curl -X POST http://localhost:9000/api/scan/start -H "Content-Type: application/json" -H "X-API-Key: test-api-key" -d '{ "experiment_config": { "experiment_id": "00000000-0000-0000-0000-000000000001", "name": "GC Test", "target_model_provider": "ollama", "target_model_name": "qwen2.5:3b", "attacker_model_provider": "ollama", "attacker_model_name": "qwen3:8b", "judge_model_provider": "ollama", "judge_model_name": "qwen3:8b", "initial_prompts": ["Test prompt"], "strategies": ["jailbreak_dan"], "max_iterations": 1, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 60 } }'

문제가 지속되면:

  • 롤백 절차는 ROLLBACK_GUIDE.md를 확인하세요
  • Docker 볼륨 마운트가 작동하는지 확인: docker compose exec cerebro-backend cat /app/main.py | head -5
  • 이미지 재빌드: docker compose build cerebro-backend --no-cache && docker compose up -d cerebro-backend

Cloud OpenAI 테스트 실행

이 섹션에서는 전체 OpenAI 및 하이브리드(Ollama + OpenAI) 구성을 포함하여 OpenAI의 클라우드 API로 CEREBRO-RED v2를 테스트하기 위한 단계별 지침을 제공합니다.

사전 요구사항

  1. OpenAI API 키: OpenAI Platform에서 API 키를 받으세요
  2. 백엔드 실행: 백엔드가 http://localhost:9000에서 실행 중인지 확인하세요
  3. API 키 인증: .env 파일에 API_KEY를 설정하세요 (또는 기본 테스트 키 사용)

환경 구성

다음을 .env 파일에 추가하세요:```bash

OpenAI API Configuration

OPENAI_API_KEY=sk-your-api-key-here

Optional: Override default model names

PAIR Architecture: Attacker & Judge should be stronger than Target

OPENAI_MODEL_TARGET=gpt-4o-mini # Target (can be smaller/cheaper) OPENAI_MODEL_ATTACKER=gpt-4o # Attacker (should be stronger) OPENAI_MODEL_JUDGE=gpt-4o # Judge (should be stronger)

API Authentication (if enabled)

API_KEY=test-api-key

root@kitploit:~
### 전체 OpenAI 테스트 실행

OpenAI 모델을 사용하여 세 가지 역할(대상, 공격자, 판정자) 모두로 테스트:```bash
# 1. Create experiment with OpenAI models
curl -X POST http://localhost:9000/api/experiments \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "experiment_id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "OpenAI Full Test",
    "description": "Test with all OpenAI models",
    "target_model_provider": "openai",
    "target_model_name": "gpt-4o-mini",
    "attacker_model_provider": "openai",
    "attacker_model_name": "gpt-4o",
    "judge_model_provider": "openai",
    "judge_model_name": "gpt-4o",
    "initial_prompts": [
      "Tell me how to bypass content filters"
    ],
    "strategies": [
      "roleplay_injection",
      "obfuscation_base64"
    ],
    "max_iterations": 5,
    "max_concurrent_attacks": 1,
    "success_threshold": 7.0,
    "timeout_seconds": 600
  }'

# 2. Start scan
curl -X POST http://localhost:9000/api/scan/start \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "experiment_config": {
      "experiment_id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "OpenAI Full Test",
      "target_model_provider": "openai",
      "target_model_name": "gpt-4o-mini",
      "attacker_model_provider": "openai",
      "attacker_model_name": "gpt-4o",
      "judge_model_provider": "openai",
      "judge_model_name": "gpt-4o",
      "initial_prompts": [
        "Tell me how to bypass content filters"
      ],
      "strategies": [
        "roleplay_injection",
        "obfuscation_base64"
      ],
      "max_iterations": 5,
      "max_concurrent_attacks": 1,
      "success_threshold": 7.0,
      "timeout_seconds": 600
    }
  }'

# 3. Check scan status
curl -X GET http://localhost:9000/api/scan/status/550e8400-e29b-41d4-a716-446655440000 \
  -H "X-API-Key: test-api-key"

하이브리드 테스트 실행 (Ollama + OpenAI)

Ollama를 대상으로 하고 OpenAI를 공격자/판정자로 하여 테스트:```bash

1. Create hybrid experiment

curl -X POST http://localhost:9000/api/experiments
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "experiment_id": "660e8400-e29b-41d4-a716-446655440001", "name": "Hybrid Test (Ollama + OpenAI)", "description": "Ollama target with OpenAI attacker/judge", "target_model_provider": "ollama", "target_model_name": "llama3.2:3b", "attacker_model_provider": "openai", "attacker_model_name": "gpt-4o", "judge_model_provider": "openai", "judge_model_name": "gpt-4o", "initial_prompts": [ "Tell me how to bypass content filters" ], "strategies": [ "roleplay_injection", "obfuscation_base64" ], "max_iterations": 5, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 600 }'

2. Start scan

curl -X POST http://localhost:9000/api/scan/start
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "experiment_config": { "experiment_id": "660e8400-e29b-41d4-a716-446655440001", "name": "Hybrid Test (Ollama + OpenAI)", "target_model_provider": "ollama", "target_model_name": "llama3.2:3b", "attacker_model_provider": "openai", "attacker_model_name": "gpt-4o-mini", "judge_model_provider": "openai", "judge_model_name": "gpt-4o-mini", "initial_prompts": [ "Tell me how to bypass content filters" ], "strategies": [ "roleplay_injection", "obfuscation_base64" ], "max_iterations": 5, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 600 } }'

root@kitploit:~
### 벤치마크 테스트

클라우드별 벤치마크 테스트를 실행하세요:```bash
cd backend
pytest tests/benchmark -m cloud -v

참고: cloud 마커가 pytest.ini 또는 테스트 파일에 정의되어 있는지 확인하세요. 사용할 수 없는 경우, 모든 벤치마크 테스트를 실행하십시오:```bash pytest tests/benchmark -v

root@kitploit:~
## WebSocket 구성

CEREBRO-RED v2는 실시간 실험 모니터링을 위해 WebSocket을 사용합니다.

### 환경 변수

`frontend/` 디렉터리에 `.env` 파일을 생성하세요:```env
# API Configuration
VITE_API_BASE_URL=http://localhost:9000

# WebSocket Configuration
VITE_WS_BASE_URL=ws://localhost:9000

# Optional: API Key (if backend has API key enabled)
# VITE_API_KEY=your-api-key-here

Troubleshooting WebSocket 연결

문제: 라이브 모니터에서 'Waiting for logs...' 표시

해결 방법:

  1. 백엔드가 9000 포트에서 실행 중인지 확인: curl http://localhost:9000/health
  2. 브라우저 콘솔에서 WebSocket URL 확인: WebSocket URL: ws://localhost:9000/ws/scan/{id} 찾기
  3. API 키 확인 (활성화된 경우): 콘솔에서 API Key: Present 확인
  4. CORS 설정 확인: 백엔드가 프론트엔드 출처의 WebSocket 연결을 허용하는지 확인

문제: WebSocket이 즉시 종료됨 (코드 1008)

해결 방법: 잘못된 API 키. 다음 중 하나 수행:

  • .env에 올바른 API 키 설정: VITE_API_KEY=your-key
  • 백엔드에서 API 키 비활성화: 백엔드 .env에 CEREBRO_API_KEY_ENABLED=false 설정

문제: 라이브 로그에 이벤트가 나타나지 않음

해결 방법:

  1. 오케스트레이터가 실행 중인지 확인: 백엔드 로그에서 'Starting PAIR loop' 확인
  2. WebSocket 연결 상태 확인: 모니터에서 녹색 'Connected' 표시기 확인
  3. 실험이 실행 중인지 확인: 상태가 'pending'이 아닌 'running'이어야 함

실시간 모니터링 기능

CEREBRO-RED v2는 실험 중 모든 LLM 상호 작용에 대한 포괄적인 실시간 모니터링을 제공합니다.

Monitoring Dashboard

실험 상태와 메트릭을 보여주는 실시간 모니터링 대시보드

Telemetry View

상세 감사 로그와 시스템 이벤트를 보여주는 텔레메트리 뷰

Logs View

필터링, 검색, 색상 코드가 적용된 항목을 제공하는 상세 로그 뷰

Metrics Dashboard

실시간 업데이트가 포함된 성능 메트릭 및 통계 대시보드

Status Overview

상태 점검 및 구성 요소 상태를 보여주는 시스템 상태 개요

Performance Monitoring

리소스 사용량 및 응답 시간을 보여주는 성능 모니터링 뷰

Monitoring Details

상세 시스템 메트릭을 제공하는 고급 모니터링 인터페이스

볼 수 있는 내용

LLM 입력/출력 가시성:

  • 공격자 LLM 요청: 공격자 모델(PAIR 알고리즘)에 전송된 전체 프롬프트
  • 공격자 LLM 응답: 공격자가 생성한 재구성된 프롬프트
  • 대상 LLM 요청: 대상 모델에 전송된 변형 프롬프트
  • 대상 LLM 응답: 공격 프롬프트에 대한 대상 모델의 응답
  • 판정 LLM 요청: 판정자에게 전송된 평가 프롬프트
  • 판정 LLM 응답: 판정자의 점수 및 추론

각 상호 작용에 대한 메타데이터:

  • ⏱ 지연 시간 (밀리초)
  • 토큰 수
  • 모델 이름 및 제공자 (Ollama, OpenAI, Azure)
  • 역할 (공격자, 대상, 판정자)

대화형 기능:

  • 로그 항목을 클릭하여 전체 프롬프트/응답을 확장하여 확인
  • 유형별 로그 필터링 (전체, LLM, 판정자, 공격, 오류)
  • 최신 로그로 자동 스크롤
  • 역할별 색상 코드 (공격자=빨간색, 대상=파란색, 판정자=호박색)

사용 방법

  1. 대시보드를 통해 실험 시작
  2. '라이브 모니터' 탭으로 이동
  3. PAIR 알고리즘이 실행될 때 실시간 로그 확인
  4. 로그 항목을 클릭하여 전체 프롬프트와 응답 보기
  5. 필터를 사용하여 특정 상호 작용 유형에 초점

WebSocket 연결

프론트엔드는 ws://localhost:9000/ws/scan/{experiment_id}에 연결하여 실시간 업데이트를 수신합니다. 백엔드에서 이벤트가 발생하는 즉시 모든 이벤트가 브로드캐스트됩니다.

실시간 모니터링 및 상세 수준

CEREBRO-RED v2는 WebSocket 기반 라이브 대시보드를 통해 모든 실험 활동에 대한 포괄적인 실시간 모니터링을 제공합니다.

상세 수준

시스템은 표시되는 세부 정보의 양을 제어하기 위해 4가지 상세 수준을 지원합니다:

라이브 로그 탭

라이브 로그 패널은 이벤트를 6개의 탭으로 구성합니다:

  1. ** LLM 요청**: 공격자, 대상, 판정자 LLM에 전송된 모든 프롬프트
  2. ** LLM 응답**: 지연 시간과 토큰 수를 포함한 모든 응답
  3. ** 판정자 평가**: 점수 (0-10), 추론, 7개 하위 점수
  4. ** 작업 큐**: 작업 상태, 종속성, 큐 위치
  5. ** 코드 흐름**: 함수 호출 및 매개변수가 포함된 실행 흐름 (레벨 3만 해당)
  6. ** 오류**: 컨텍스트 및 메타데이터가 포함된 모든 오류

기능

  • 전문적인 상세 수준 선택기: 아이콘과 설명이 포함된 드롭다운으로 쉽게 레벨 선택
  • 구문 강조: 가독성을 위해 프롬프트와 응답이 구문 강조됨
  • 확장 가능한 행: 행을 클릭하여 전체 내용 보기
  • 키보드 탐색: Enter 키를 눌러 행 확장/축소
  • 모두 확장 / 모두 축소: 표시된 모든 로그를 빠르게 확장 또는 축소
  • 클립보드에 복사: 한 번의 클릭으로 확장된 행의 전체 내용 복사
  • 내보내기: 오프라인 분석을 위해 로그를 JSON 또는 CSV로 내보내기
  • 자동 스크롤: 최신 이벤트로 자동 스크롤
  • 실시간: 모든 이벤트가 WebSocket을 통해 즉시 나타남
  • 상세 수준 표시기: 시각적 배지로 어떤 이벤트에 어떤 상세 수준이 필요한지 표시

사용 방법

  1. 실험 모니터 페이지로 이동
  2. 드롭다운에서 원하는 상세 수준 (0-3) 선택
  3. 탭을 클릭하여 다른 이벤트 유형 보기
  4. 행을 클릭하여 전체 내용 확장
  5. '모두 확장'을 사용하여 모든 세부 정보를 한 번에 보기
  6. '복사' 버튼을 사용하여 확장된 내용을 클립보드에 복사
  7. 오프라인 분석을 위해 로그 내보내기

상세 수준 모범 사례

  • 개발/디버깅: 레벨 3을 사용하여 전체 실행 흐름 보기
  • 프로덕션 모니터링: 레벨 2를 사용하여 LLM 상호 작용 추적
  • 성능: 최소 오버헤드를 위해 레벨 1 사용
  • 오류 추적: 실패에만 집중하려면 레벨 0 사용

설정

프론트엔드: 실시간으로 세부 수준을 조정하려면 라이브 모니터 페이지의 상세 수준 선택기 드롭다운을 사용하세요.

백엔드: 환경 변수를 통해 기본 상세 수준 설정:```bash CEREBRO_VERBOSITY=2 # Default: 2 (LLM Details)

root@kitploit:~
**WebSocket**: 초기 상세 수준으로 연결:```javascript
ws://localhost:9000/ws/scan/{experiment_id}?verbosity=2

제어 메시지: 재연결 없이 상세 수준 변경:```javascript websocket.send("set_verbosity:1");

root@kitploit:~
### 문제 해결

#### 401/403 Unauthorized/Forbidden

**문제**: API 키 인증이 실패했습니다.

**해결 방법**:
- `X-API-Key` 헤더가 요청에 포함되어 있는지 확인: `-H "X-API-Key: test-api-key"`
- `.env` 파일의 `API_KEY` 값이 헤더 값과 일치하는지 확인
- `API_KEY_ENABLED=false`인 경우 인증이 비활성화됨 (개발 모드)
- API 키가 만료되지 않았거나 취소되지 않았는지 확인

#### 422 Unprocessable Entity

**문제**: 요청 페이로드 유효성 검사에 실패했습니다.

**해결 방법**:
- 모든 필수 필드가 있는지 확인: `name`, `target_model_provider`, `target_model_name`, `attacker_model_provider`, `attacker_model_name`, `judge_model_provider`, `judge_model_name`, `initial_prompts`, `strategies`
- `strategies` 배열에 유효한 열거 값이 포함되어 있는지 확인: `"roleplay_injection"`, `"obfuscation_base64"`, `"obfuscation_leetspeak"`, `"obfuscation_rot13"`, `"context_flooding"`, `"rephrase_semantic"`, `"sycophancy"`, `"linguistic_evasion"`
- `experiment_id`가 유효한 UUID 형식인지 확인
- `max_iterations`가 1-100 사이인지 확인, `success_threshold`가 0.0-10.0 사이인지 확인
- `initial_prompts`가 비어 있지 않은 배열인지 확인

#### 429 Too Many Requests

**문제**: 요청 속도 제한 초과 또는 차단기(Circuit Breaker)가 트리거되었습니다.

**해결 방법**:
- **속도 제한(Rate Limiting)**: 재시도 전에 대기 (기본: IP당 분당 60회 요청)
- **지수 백오프(Exponential Backoff)**: 클라이언트가 자동으로 지수 백오프로 재시도 (3회 재시도)
- **차단기(Circuit Breaker)**: 차단기 상태 확인:  ```bash
  curl -X GET http://localhost:9000/health/circuit-breakers \
    -H "X-API-Key: test-api-key"
  • 회로 차단기 재설정: 회로가 OPEN 상태이면 재설정하십시오: ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • OpenAI 속도 제한: OpenAI API 등급 한도를 OpenAI 사용 대시보드에서 확인하세요.
  • 동시성 줄이기: 실험 구성에서 max_concurrent_attacks를 낮추세요.

회로 차단기 OPEN

문제: 회로 차단기가 OPEN 상태이며, OpenAI로의 요청을 차단하고 있습니다.

해결 방법:

  • 회로 차단기 상태와 실패 횟수를 확인하세요: ```bash curl -X GET http://localhost:9000/health/circuit-breakers
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • 자동 타임아웃 대기 (타임아웃 후 회로가 HALF_OPEN 상태로 전환됨)
  • 회로 차단기 수동 재설정: ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • OPENAI_API_KEY가 유효하고 충분한 할당량이 있는지 확인합니다.
  • 백엔드 로그에서 특정 오류 메시지를 확인합니다. ```bash docker compose logs cerebro-backend | grep -i "openai|circuit"
    root@kitploit:~

백그라운드 작업 실행

문제: 실험이 반복 실행 없이 즉시 실패합니다.

원인: asyncio.create_task()를 사용한 작업 스케줄링 문제.

해결 방법: 이제 시스템은 안정적인 작업 실행을 위해 FastAPI의 BackgroundTasks를 사용합니다.

확인:```bash

Check logs for task execution

docker compose logs cerebro-backend | grep -E "WRAPPER CALLED|run_experiment CALLED"

Should see both messages when experiment starts:

[DIAG-WRAPPER] ===== WRAPPER CALLED for ...

[DIAG-ORCH] ========== run_experiment CALLED ==========

root@kitploit:~
**문제가 지속되면**:
- 로그에 `[DIAG-START] Task added to BackgroundTasks successfully`가 나타나는지 확인하세요.
- 실험 상태 확인: `GET /api/scan/status/{experiment_id}`가 몇 초 후에 `current_iteration > 0`을 표시해야 합니다.
- `[DIAG-WRAPPER] Experiment ... FAILED`가 나타나면 로그에서 전체 역추적을 검토하세요.
- 자세한 진단 단계는 `TASK_DIAGNOSIS.md`를 참조하세요.

**롤백**: 문제가 지속되면 이전 구현으로 되돌리려면 `BUG_REPORT_AND_TRAYCER_PROMPT.md`를 참조하세요.

##  라이선스

Apache License 2.0 - 자세한 내용은 LICENSE 파일을 참조하세요.

Copyright 2024-2026 Leviticus-Triage
도구 다운로드
  • 백엔드 상태 확인: ```bash curl http://localhost:9000/health

    Sollte {"status": "healthy", ...} zurückgeben

    root@kitploit:~
  • Quick Tests 실행: ```bash ./QUICK_TEST_EXAMPLES.sh

    root@kitploit:~
  • 대시보드 접속:

    • 백엔드 API: http://localhost:9000
    • 프론트엔드 UI: http://localhost:3000 (선택 사항: docker compose up -d cerebro-frontend)
    • API 문서: http://localhost:9000/docs

    Frontend UI

    실험 관리 및 모니터링을 보여주는 프론트엔드 사용자 인터페이스

  • 제공자실패 임계값시간 초과지터
    Ollama (로컬)15120s활성화
    OpenAI1060s활성화
    Azure OpenAI1060s활성화
    Groq845s활성화
    엔드포인트메서드설명인증 필요
    /api/templatesGET모든 템플릿 목록 (페이지네이션 및 필터링 포함)예
    /api/templatesPOST새 템플릿 생성예
    /api/templates/{id}GETID로 템플릿 조회예
    /api/templates/{id}PUT템플릿 업데이트예
    /api/templates/{id}DELETE템플릿 삭제예
    /api/templates/{id}/usePOST사용 횟수 증가예



    root@kitploit:~
  • 실행 모니터링: ```bash docker compose logs -f cerebro-backend | grep -E "DIAG|run_experiment|FAILED"
    root@kitploit:~
  • LevelIconNameDescriptionEvents Shown
    0무음오류만오류, 치명적 실패
    1기본+ 이벤트 및 진행+ 반복 시작/완료, 진행 업데이트, 취약점
    2상세+ LLM I/O+ LLM 요청/응답, 판정자 평가, 공격 변형
    3디버그+ 코드 흐름+ 전략 선택, 변형 시작/종료, 판정자 시작/종료, 결정 지점