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, 请求拦截, 越狱攻防, 逆向工具