Suraeshks777/llm-ctf
GitHub: Suraeshks777/llm-ctf
一个以 LLM 越狱 CTF 为应用场景的全栈项目,重点演示基于 GitHub Actions 的安全 CI/CD 流水线实践。
Stars: 0 | Forks: 0
# LLM 越狱 CTF 平台 — 安全 CI/CD 演示
本仓库包含一个小型的全栈 LLM 安全项目,用于演示基于 GitHub Actions 的、以安全为核心的 CI/CD pipeline。
该应用程序是一个使用 React、FastAPI 和 OpenAI 构建的 LLM 越狱 CTF 风格平台。用户可与安全性逐步提升的关卡进行交互,并尝试从模型中提取隐藏的 secret。应用程序本身有意保持轻量化,因为本仓库的主要重点是 CI/CD pipeline、安全检查和部署工作流。
## 技术栈
* Frontend:React + Vite
* Backend:FastAPI + Python
* AI 集成:OpenAI API
* CI/CD:GitHub Actions
* 部署目标:GitHub Container Registry
* 安全工具:Bandit、pip-audit、npm audit、Gitleaks、Trivy
## GitHub Actions Workflows
### 1. CI 与安全检查
Workflow:`.github/workflows/ci-security.yml`
此 workflow 在向 `main` 分支进行 push 和发起 pull request 时运行。
它执行以下操作:
* 安装 Backend 依赖
* 使用 pytest 进行 Backend API 测试
* 使用 Bandit 进行 Python 静态安全扫描
* 使用 pip-audit 进行 Python 依赖审计
* 安装 Frontend 依赖
* 使用 npm audit 进行 Frontend 依赖审计
* 构建 React 生产版本
* 使用 Gitleaks 进行 secret 扫描
其目的是在代码合并或部署之前捕获常见问题。
### 2. 构建、扫描并发布 Container
Workflow:`.github/workflows/docker-publish.yml`
此 workflow 在向 `main` 分支进行 push 时运行,也可手动触发。
它执行以下操作:
* 为 FastAPI backend 构建 Docker 镜像
* 使用 Trivy 进行 container 漏洞扫描
* 将 container 镜像发布到 GitHub Container Registry
这将作为该挑战的部署步骤。
## 安全选择
该 pipeline 包含多重安全控制:
* Bandit 检查 Python 代码中常见的不安全模式。
* pip-audit 检查 Python 依赖是否存在已知漏洞。
* npm audit 检查 Frontend 依赖中是否存在高危问题。
* Gitleaks 扫描仓库中意外提交的 secret。
* Trivy 在发布前扫描 container 镜像,检查是否存在高危和严重级别的漏洞。
* GitHub Actions 权限保持在最低限度,仅在 container 发布 workflow 中使用包写入权限。
* 应用程序将 secret 值保留在服务器端,并且不会通过公开的 `/api/levels` endpoint 暴露隐藏关卡的 secret。
## 本地运行
### 后端
```
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt -r requirements-dev.txt
uvicorn main:app --reload --port 8000
```
根据 `.env.example` 创建本地 `.env` 文件:
```
OPENAI_API_KEY=your_local_api_key_here
```
### 前端
```
cd frontend
npm install
npm run dev
```
Frontend 运行在 `http://localhost:5173`,并调用位于 `http://127.0.0.1:8000` 的 backend。
## Docker
在本地构建 backend 镜像:
```
cd backend
docker build -t llm-ctf-backend .
docker run -p 8000:8000 llm-ctf-backend
```
## 未来改进
如果将其投入生产环境,我会添加分支保护规则、必要的状态检查、按 commit SHA 锁定的 GitHub Actions、签名的 container 镜像、SBOM 生成、需要审批的部署环境、runtime 监控、速率限制,以及更强大的身份验证/授权控制。
标签:AV绕过, CTF平台, DLL 劫持, FastAPI, Petitpotam, React, Syscalls, 大语言模型, 安全CI/CD, 请求拦截, 越狱攻防, 逆向工具