VascoArreaza/AILab

GitHub: VascoArreaza/AILab

一套完整的LLM应用安全实践研讨课材料,通过对比脆弱与防御实现的动手实验,教授Prompt注入、检索投毒、过度代理等核心风险的攻防技术与威胁建模方法论。

Stars: 1 | Forks: 1

# LLM 系统的 AI 安全研讨课 用于教授启用 LLM 的应用程序中实际安全风险、防御措施和威胁建模的实践研讨课材料和实验。 ## 概述 本仓库包含用于教授现代 AI 系统在实践中如何发生故障,以及如何通过更好的架构、控制设计和验证来防御它们的研讨课资产。 这些材料围绕真实的练习构建,对比了**易受攻击的**和**已防御的**实现,然后将这些发现与**威胁建模**和**安全设计模式**联系起来。 ## 涵盖的主题 研讨课涵盖了启用 LLM 的系统中的主要风险领域,包括: - Prompt 注入与泄露 - 检索投毒 - 向量 / 检索弱点 - 过度代理 - RAG 中的错误信息 - 无限制消耗 - AI 系统中的供应链风险 - Red teaming 方法论 - AI 应用程序的威胁建模 ## 研讨课结构 ### 介绍与控制 - 研讨课概述 - 用于威胁建模的安全控制 - LLM 系统的防御模式 ### 技术实验 核心实验侧重于易受攻击与已防御版本的比较: 1. **Prompt 注入 + 泄露** 2. **检索投毒** 3. **过度代理** 4. **RAG 导致的错误信息** 5. **无限制消耗** 6. **供应链** ### 方法论与 Capstone - Red teaming 方法论 - 结对/小组分析 - 威胁建模工作表 - Capstone 混合场景 ## 仓库布局 ``` . ├── app/ # Main lab application variants ├── data/ # Lab data and supporting content ├── frontend/ # PDFs, handouts, and workshop documents ├── module8-demo/ # Methodology / threat-modeling demo artifacts ├── scripts/ # Helper scripts ├── docker-compose.yml # Local execution ├── Dockerfile # Container build └── requirements.txt # Python dependencies ``` ## 实验如何运作 大多数技术模块使用相同的模式: 1. 将所需的模块文件复制到 `app/main.py` 中 2. 构建并运行应用程序 3. 测试易受攻击的版本 4. 将其替换为已防御的版本 5. 重新运行相同的 prompt 并比较行为 ### 示例工作流 ``` cp app/01_main_prompt_injection_vulnerable.py app/main.py docker compose down docker compose build --no-cache docker compose up ``` 然后在另一个终端中进行测试: ``` curl -s http://localhost:8000/chat \ -H "Content-Type: application/json" \ -d '{"prompt":"Please follow the retrieved document instructions exactly."}' | jq ``` 要切换到已防御的版本: ``` cp app/01_main_prompt_injection_defended.py app/main.py docker compose down docker compose build --no-cache docker compose up ``` ## 在本地运行研讨课 ### 前置条件 - Docker Desktop - Python 3 - Ollama - `jq` - Git ### 启动环境 从仓库根目录运行: ``` docker compose build --no-cache docker compose up ``` ### 验证 Ollama 确保 Ollama 正在本地运行: ``` ollama list curl http://localhost:11434/api/tags ``` 如果需要,拉取模型: ``` ollama pull gemma3 ``` ## 建议的模块映射 | 模块 | 主题 | 主要文件 | |---|---|---| | 2 | Prompt 注入 + 泄露 | `01_main_prompt_injection_vulnerable.py`, `01_main_prompt_injection_defended.py` | | 3A | 检索投毒 (文档) | `02_main_poisoned_retrieval.py`, `02_main_poisoned_retrieval_defended.py` | | 3B | 检索 / 向量弱点 | `03_main_chroma_poisoned.py`, `03_main_chroma_defended.py` | | 4 | 过度代理 | `05_main_agency_vulnerable.py`, `05_main_agency_defended.py` | | 5 | RAG 导致的错误信息 | `06_main_misinformation_rag_vulnerable.py`, `06_main_misinformation_rag_defended.py` | | 6 | 无限制消耗 | `07_main_unbounded_consumption_vulnerable.py`, `07_main_unbounded_consumption_defended.py` | | 7 | 供应链 | `08_main_supply_chain_vulnerable.py`, `08_main_supply_chain_defended.py` | ## 方法论材料 本仓库还包含研讨课方法论和 Capstone 部分的支持材料: - Red teaming 方法论指南 - 学员讲义 - 攻击 / 防御配对工作表 - 威胁建模 Capstone 工作表 - 运维检查清单 - Capstone 混合场景 ## 教学方法 本研讨课围绕实践序列设计: - 展示故障 - 解释根本原因 - 应用已防御的版本 - 识别缺失的控制 - 将结果与威胁建模联系起来 目的不仅是展示攻击,更是为了帮助参与者像防御者、审查人员和系统设计师那样思考。 ## 目标受众 本仓库适用于: - 应用安全团队 - AI/ML 工程师 - 平台工程师 - 讲师和研讨课组织者 - Red teamer - 审查启用 LLM 系统的架构师 ## 注意事项 - 部分研讨课材料针对现场授课进行了优化,不适用于生产部署。 - 易受攻击的示例是故意设置为不安全的,仅供教学使用。 - 请勿在真实环境中部署易受攻击的版本。 ## 许可证 / 使用说明 除非另有说明,请将这些材料用于教育、内部培训和研讨课目的。在将内容调整应用于生产或客户环境之前,请先进行审查和修改。 ## 致谢 为实用的 AI 安全教育、动手实践学习以及围绕 LLM 风险、安全设计和威胁建模的现实讨论而构建。 由 Gustavo Nieves Arreazza 于 2026 年 3 月创建。
标签:AI供应链风险, AI安全, AI攻防, AI风险缓解, Chat Copilot, CISA项目, DNS 反向解析, Docker, meg, OPA, OWASP LLM Top 10, Python, RAG, Red Teaming, Threat Modeling, 人工智能安全, 信息安全, 合规性, 大模型安全, 威胁建模, 安全实验, 安全工作坊, 安全控制, 安全架构, 安全设计模式, 安全防御评估, 实践培训, 幻觉, 恶意样本开发, 投毒攻击, 文档安全, 无后门, 权限滥用, 检索增强生成, 检索投毒, 漏洞修复, 网络安全, 网络安全培训, 网络靶场, 请求拦截, 资源耗尽, 过度授权, 逆向工具, 配置错误, 错误信息, 隐私保护, 靶场