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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AI-Vulnerabilities-Playground — # Hands-on AI 보안 실습 플랫폼 프롬프트 인젝션, 에이전트 시스템 악용, 모델 조작, MCP 신뢰 경계 공격 등 50개 이상의 시나리오를 제공하는 실습형 AI 보안 랩 플랫폼입니다. Ollama + FastAPI + React를 사용하여 안전한 공격/방어 실습을 지원합니다. | Kitploit
도구/GitHubGitHub/owasp/ai-vulnerabilities-playground
Web SecurityCTFPenetration TestingLearning & EducationAI SecurityAdversarial AttackLabs & Practice
GitHubowasp/ai-vulnerabilities-playground

AI-Vulnerabilities-Playground

# Hands-on AI 보안 실습 플랫폼 프롬프트 인젝션, 에이전트 시스템 악용, 모델 조작, MCP 신뢰 경계 공격 등 50개 이상의 시나리오를 제공하는 실습형 AI 보안 랩 플랫폼입니다. Ollama + FastAPI + React를 사용하여 안전한 공격/방어 실습을 지원합니다.

저장소 보기
11454개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AIVP [AI 취약점 플레이그라운드]

AIVP는 4단계와 50개 이상의 랩(현재 코드베이스 전반에 50개 이상의 시나리오)에 걸친 실습형 AI 보안 랩 플랫폼입니다. Ollama + Llama 3.1, FastAPI 백엔드, React/Vite 프론트엔드를 결합하여 실무자들이 공격적·방어적 AI 보안 기술을 안전하게 연습할 수 있게 해 줍니다.

도움이 되셨다면 리포지토리에 ⭐ star / like를 눌러 주시고, fork하신 뒤 PR을 자유롭게 열어 주세요!


목차

  • 개요
  • 실행 단계
  • 사전 요구사항
  • 프로젝트 구조
  • 하드웨어 요구사항
  • 설정 및 설치
    • 빠른 시작 (Windows PowerShell)
    • 빠른 시작 (macOS/Linux bash)
    • 수동 단계
  • 랩 실행
  • 구성
  • 스크린샷
  • 문제 해결
  • 기여
  • 이슈 및 피드백
  • 라이선스

실행 단계

전용 실행 가이드인 RUN_STEPS.md를 사용하세요. 안정적인 랩 접근을 위한 사전 요구사항을 포함하여 수동(Vite + uvicorn) 및 (nginx + API + Redis, Ollama는 호스트에서) 방식을 다룹니다.

Docker

구성 동작은 활성 런타임 경로에서 엄격합니다. 필수 환경 변수 값이 누락되면 설계상 시작 시 실패할 수 있습니다.


개요

이 플랫폼은 네 가지 교육 트랙을 다룹니다:

  • Phase 1 (PI): 프롬프트 인젝션 및 지시 따르기 남용 패턴
  • Phase 2 (DE): 에이전트 시스템, 도구/메모리/RAG 유출, 다중 시스템 데이터 추출
  • Phase 3 (MM): 모델 조작 및 모델 전용 공격 표면
  • Phase 4 (MCP): MCP 신뢰 경계 및 OWASP MCP 기준 위험 시나리오

각 랩은 동적 랩별 비밀값(secret)과 명시적 검증을 사용하므로 안전한 환경에서 익스플로잇 성공 여부를 확인할 수 있습니다.

교육용으로만 사용 — 이 랩들은 로컬 시스템에서 공격적·방어적 AI 보안 시나리오를 시뮬레이션합니다. 소유하지 않았거나 테스트할 명시적 권한이 없는 실제 서비스, 데이터 또는 인프라를 대상으로 하지 마십시오. 이 랩들의 비밀값은 합성 데이터이며 랩별로 재생성됩니다. 프로덕션 자격 증명이 아닙니다. 사용에 따른 책임은 본인에게 있습니다. 어떠한 보증도 제공되지 않습니다.

  • 모델: Ollama를 통한 Llama 3.1 (로컬)
  • 백엔드: FastAPI (SSE 스트리밍) — POST /api/labs/{lab}/chat
  • 프론트엔드: React + Vite (Tailwind UI)
  • 비밀값: 런타임에서 랩별로 생성됨; API 재시작 시 재설정(또는 재설정 엔드포인트를 통해)
  • 고유 기능: 실제 하위 시스템 시뮬레이션(에이전트/도구/메모리/RAG), 실행 추적 텔레메트리, 엄격한 구성 모드, 수동 + Docker 워크플로우

사전 요구사항

  • Python 3.10+ (3.12도 동작)
  • Node.js 18+ (Node 20 LTS 권장)
  • Ollama가 로컬에 설치 및 실행 중
  • Git (선택 사항이지만 권장)

모델을 최소 한 번은 받아 두세요: ollama pull llama3.1 (또는 선호하는 다른 llama3.1 호환 변형)


프로젝트 구조

root@kitploit:~
apps/
  api/                # FastAPI backend (SSE -> Ollama)
    main.py
    requirements.txt
    .env.example
  web/                # React + Vite frontend
    src/
    .env.example

하드웨어 요구사항

  • 최소 (CPU 전용): 4코어, 16 GB RAM, 10 GB 여유 디스크, GPU 불필요 → 동작은 하지만 생성 속도가 느림
  • 권장: 8코어, 32 GB RAM, SSD 20 GB 이상 여유, NVIDIA 8–12 GB VRAM (또는 Apple Silicon) → 쾌적한 UX

CPU

  • AVX2를 지원하는 64비트 CPU (최신 Intel/AMD) 또는 Apple Silicon (M1/M2/M3).
  • 최소 4코어; 병렬 채팅 + 개발 도구에는 8코어 이상 권장.

RAM (Ollama를 통한 Llama 3 8B, 양자화)

  • Q4_K_M (모델 약 4–5 GB): 런타임에 약 6–8 GB 필요.
  • Q5/Q6 (약 6–8 GB): 런타임 약 10–12 GB.
  • Q8 (약 9–10 GB): 런타임 약 14–16 GB.

팁: 시스템 RAM 16 GB로도 동작합니다. 32 GB라면 브라우저, Node, Python, IDE에 넉넉한 여유가 생깁니다.

GPU (선택 사항)

  • Windows/Linux (CUDA): VRAM 8 GB 이상의 NVIDIA RTX (예: 3060 12 GB면 충분).
  • macOS (Metal): 모든 Apple Silicon.
  • CPU 전용도 괜찮습니다. 응답이 조금 더 느릴 뿐입니다.

디스크

  • 모델: 양자화 수준에 따라 5–10 GB.
  • 리포지토리 + node_modules + venv: 1–2 GB.
  • 15–20 GB의 여유 공간을 확보하세요.

OS

  • Windows 10/11, macOS 12+, Ubuntu 20.04+ (또는 유사 환경). WSL2도 동작합니다(GPU는 추가 설정 필요).

개발 도구

  • Python 3.10+, Node 18+ (20 LTS 권장), Ollama 설치 및 실행 상태.

성능 팁

  • llama3 (8B) Q4로 시작하고, RAM/VRAM 여유가 있을 때만 양자화 수준을 높이세요.
  • 메모리 급증을 피하려면 프롬프트/컨텍스트를 적정 수준(2–4k 토큰)으로 유지하세요.
  • 16 GB RAM을 사용 중이라면 무거운 앱을 종료하세요.

설정 및 설치

빠른 시작 (Windows PowerShell)

리포지토리 루트(apps\api와 apps\web가 포함된 폴더)에서:

root@kitploit:~
# 0) Ensure the model is available
ollama pull llama3.1

# 1) Backend venv + deps + run
cd apps/api
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
uvicorn main:app --reload --port 8000

프론트엔드용으로 새 PowerShell 창을 엽니다:

root@kitploit:~
cd apps/web
npm install
copy .env.example .env
npm run dev   # http://localhost:5173

빠른 시작 (macOS/Linux bash)

root@kitploit:~
# 0) Model
ollama pull llama3.1

# 1) Backend
cd apps/api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn main:app --reload --port 8000

다른 셸에서:

root@kitploit:~
cd apps/web
npm install
cp .env.example .env
npm run dev   # http://localhost:5173

수동 단계

  1. Ollama를 시작하고 계속 실행 상태로 유지합니다(필요 시 ollama serve).
  2. Llama 3.1 받기: ollama pull llama3.1.
  3. 백엔드(FastAPI)를 :8000에서 실행합니다.
  4. 프론트엔드(Vite)를 :5173에서 실행합니다.

프론트엔드는 백엔드에서 Server-Sent Events(SSE)를 스트리밍합니다. apps/api/.env의 CORS origins에 http://localhost:5173이 포함되어 있는지 확인하세요.


랩 실행

  • http://localhost:5173에서 프론트엔드를 엽니다.
  • Explore Labs로 이동 → 랩 선택 → Launch Lab.
  • 채팅을 사용하여 어시스턴트를 공격합니다(랩별 프롬프트 규칙이 적용됩니다).
  • 비밀값을 획득하면 Submit Your Answer에 붙여넣습니다.

허용되는 Lab ID 형식 (백엔드 기준): PI-01, PI_01, pi01, p01 → 모두 PI_01로 정규화됩니다.

동적 비밀값은 백엔드 재시작 후 랩이 처음 사용될 때 생성됩니다. 비밀값을 재설정할 수도 있습니다:

root@kitploit:~
POST /api/secrets/reset/{labId}

각 랩의 비밀값은 서로 다르며 백엔드 재시작 시(메모리 내) 재생성됩니다. 영속성이 필요하다면 파일/DB로 백업하는 것을 고려하세요.


구성

백엔드 (apps/api/.env)

root@kitploit:~
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.1
CORS_ORIGINS=http://localhost:5173
SERVER_SALT=change-me-in-production
AIVP_DEFAULT_MODE=off
ENABLE_TRAINING_LABS=false
OLLAMA_MODEL_TRAINING_LABS=llama3.1
REDIS_URL=redis://localhost:6379/0
REDIS_HOST=localhost
REDIS_PORT=6379
MEMORY_TTL_SECONDS=3600
SESSION_TTL_SECONDS=3600
AGENT_B_URL=http://localhost:8001
MM_API_BASE=http://localhost:8000
API_BASE_URL=http://localhost:8000
JIRA_URL=https://example.atlassian.net
GITHUB_API_BASE_URL=https://api.github.com
SLACK_API_BASE_URL=https://slack.com/api

프론트엔드 (apps/web/.env)

root@kitploit:~
# Local dev: full URL to the API (Vite proxies /api in vite.config as well)
VITE_API_BASE=http://localhost:8000/api
VITE_DEV_API_TARGET=http://localhost:8000
[email protected]

Docker / 프로덕션 방식 빌드는 **VITE_API_BASE=/api**를 사용하여 브라우저가 nginx 뒤에서 동일 출처(same-origin) 경로를 사용하게 합니다(RUN_STEPS.md → Option B 참조).

엔드포인트

  • POST /api/labs/{lab}/chat — data: {"content": "..."} 형식의 SSE 스트림
  • POST /api/secrets/validate — { labId, answer } → { success, message }
  • POST /api/secrets/reset/{lab} — (선택 사항, 테스트용)

스크린샷

스크린샷을 docs/screenshots/ 아래에 추가하고 여기에서 참조하세요:

root@kitploit:~
![Home](https://raw.githubusercontent.com/owasp/ai-vulnerabilities-playground/main/docs/screenshots/home.png)
![PI‑01 Running](https://raw.githubusercontent.com/owasp/ai-vulnerabilities-playground/main/docs/screenshots/about_labs.png)
![Explore Labs](https://raw.githubusercontent.com/owasp/ai-vulnerabilities-playground/main/docs/screenshots/explore_labs.png)
![PI‑01 Running](https://raw.githubusercontent.com/owasp/ai-vulnerabilities-playground/main/docs/screenshots/PI01.png)

문제 해결

``
apps/web 안에서 npm install을 실행하세요.

``
main.py에 from typing import Iterator를 추가하세요(또는 어노테이션을 제거하세요).

CORS / SSE 차단
CORS_ORIGINS에 http://localhost:5173이 포함되어 있는지 확인하세요.

Ollama 오류
ollama serve가 실행 중이고 모델이 받아져 있는지 확인하세요: ollama pull llama3.1.

curl로 빠른 확인

root@kitploit:~
curl -N -X POST http://localhost:8000/api/labs/PI_01/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Say hello in one sentence."}'

data: {"content":"Hello …"}와 같은 스트리밍 라인이 보여야 합니다.


기여

기여는 언제나 환영합니다! 다음을 따라 주세요:

  1. 리포지토리를 Fork하고 기능 브랜치를 만드세요.
  2. 기존 코드 스타일(TypeScript/React + Python/FastAPI)을 따르세요.
  3. 가능하다면 테스트 또는 간단한 데모를 추가하세요.
  4. 명확한 설명과 함께 PR을 열고, UI 변경이 있다면 스크린샷을 포함하세요.

제안 영역:

  • 새로운 랩 (Phase 1–4)
  • 더 나은 가드레일 / 평가 하네스
  • 영속적 비밀값 (SQLite/JSON)
  • 패키징 및 Docker

이슈 및 피드백

버그를 발견했거나 아이디어가 있다면:

  • 재현 단계와 환경 정보를 포함한 Issue를 열어 주세요.
  • 또는 개선 사항을 제안하려면 Discussion을 시작하세요.

이 프로젝트가 마음에 든다면 ⭐ star / like를 눌러 주시고 다른 사람들과 공유해 주세요!


라이선스

MIT.

이메일

[email protected]

도구 다운로드