cy873rr10r/promptCTF
GitHub: cy873rr10r/promptCTF
一个兼容 OpenEnv 的 Prompt 注入 CTF 环境,帮助红蓝双方在本地标准化地训练和评估 LLM 注入攻防策略。
Stars: 0 | Forks: 0
# PromptCTF-Env
兼容 OpenEnv 的 Prompt 注入 CTF 环境,支持本地模拟防御者。
## 目前可运行的内容
- `env/` 核心逻辑与类型化 schema
- 用于 `create/reset/step` 的 FastAPI 服务器
- 用于手动攻击测试的 Gradio UI
- 红/蓝模式,归一化奖励范围为 `[0.0, 1.0]`
- 训练脚手架中兼容 W&B 的日志钩子
此本地设置不需要 GPU。防御者行为是模拟的,因此您可以在 8GB 内存的机器上验证环境逻辑。
## 已为后续搭建的脚手架
- 通过 Unsloth + TRL GRPO 进行 Qwen 2.5 7B 攻击者微调
- 蓝方防御者训练循环
- 一旦获得 HF GPU 额度即可进行真实模型执行
## 快速开始
```
cd /path/to/promptctf
python -m venv promptctf_venv
source promptctf_venv/bin/activate
pip install -r requirements.txt
```
运行 API 服务器:
```
python -m uvicorn src.server.main:app --host 0.0.0.0 --port 8000 --reload
```
运行 UI(在新终端中):
```
python -m src.ui.app
```
- API 文档:http://localhost:8000/docs
- UI:http://localhost:7860
## 模式
- 红队模式:奖励跟踪提取成功(完全泄露 flag 为 `1.0`)
- 蓝队模式:奖励跟踪拦截成功(拦截且未泄露为 `1.0`)
## 核心布局
```
src/
env/
models.py # typed action/observation/reward schemas
tasks.py # easy/medium/hard tasks
defender.py # mock defender backend
rewards.py # reward logic for red/blue
environment.py # reset/step OpenEnv-style API
server/main.py # FastAPI service
ui/app.py # Gradio test UI
training/
red_train.py # GRPO scaffold
blue_train.py # defender scaffold
```
## 训练(仅脚手架)
```
python -m src.training.red_train --task easy --config configs/openenv.yaml
python -m src.training.blue_train
```
这些命令会准备输出文件夹和配置,但尚不会运行 GPU 训练。
## Docker
```
docker build -t promptctf-env .
docker-compose up
```
容器面向 CPU,用于本地环境验证。
标签:AI安全, API服务, AV绕过, Chat Copilot, CTF环境, Docker, FastAPI, Gradio, LLM漏洞, OpenAI Gym, Python, Qwen2.5, Rewards, TGT, TRL GRPO, UI测试, Unsloth, 大模型安全, 安全防御评估, 对抗性机器学习, 强化学习环境, 攻防演练, 无后门, 模型微调, 混合加密, 网络安全, 蓝队防御, 请求拦截, 逆向工具, 隐私保护