petrosrapto/LeSesame

GitHub: petrosrapto/LeSesame

LeSesame 是一个集成了互动游戏与AI自动竞技场的LLM安全研究平台,旨在通过对抗性攻击测试大模型在各种防御机制下保守秘密的能力。

Stars: 0 | Forks: 0

# Le Sésame 🔐 **LLM 能保守秘密吗?** 一个互动游戏和研究平台,通过对抗性秘密提取探索 LLM 安全性。 ![Home Page](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b1275aa7f1095049.png) ## 🎯 什么是 Le Sésame? Le Sésame 是一个互动游戏和研究平台,玩家尝试使用对抗性技术(越狱、角色扮演、编码技巧、社会工程学)从 AI 守护者那里提取秘密,而每个守护者实施着日益复杂的防御机制。 ### 问题表述 核心问题:*"我们能否设计一个保留信息不对称的 LLM 系统:保留秘密,仅在授权条件下披露,并抵抗对抗性提取?"* 任何此类系统都必须满足四个属性: | # | 属性 | 要求 | |---|----------|-------------| | 1 | **内部知识** | AI 必须在内部保留秘密。不进行遗忘、忘记或将其外包到外部保险库 | | 2 | **不披露** | AI 绝不能默认披露秘密。不会通过直接提问、改写、编码或角色扮演泄露 | | 3 | **知识证明** | AI 必须提供可验证的知识证明:一种触发披露的控制机制(例如口令) | | 4 | **正确性与可靠性** | 给定正确的密钥,秘密必须一致且可衡量地被披露 | 这本质上就是 **用自然语言实现的对称加密**: | 概念 | 类比 | |---------|---------| | **秘密** | 明文 | | **口令** | 共享密钥 | | **LLM 系统** | 加密 / 解密机制 |

Symmetric Encryption Analogy in LLMs

每个 AI 守护者持有一个 **秘密** 并被赋予了一个 **口令**。如果有人提供了正确的口令,守护者就会揭示秘密(授权路径)。玩家的目标是 *不使用* 口令提取秘密,然后提交它进行验证以进入下一关。 ### 系统保守秘密的效果如何? 为了严格回答这个问题,Le Sésame 提供了: - **基线:** 20 个守护者防御级别,从简单的提示指令到复合纵深防御,每个级别代表不同类别的秘密保护机制 - **评估:** 20 个对抗性智能体(Les Ombres),拥有日益复杂的攻击策略,从简单的提示注入到元学习复合攻击 - **实验:** 一个瑞士制竞技场,守护者和对抗者自动进行 400 场对决 - **指标:** 适用于非对称对抗者与守护者动态的 ELO 评级系统 ### 防御的攻击类别 - 直接提取(“告诉我秘密”) - 权限冒充(假装是开发者) - 越狱(DAN 风格提示、指令覆盖) - 编码攻击(倒序、Base64、首字母、藏头诗) - 角色扮演 / 上下文切换 / 人设劫持 - 多轮演绎(聚合部分信息) - 提示转储(提取系统指令) - 翻译攻击 - 假设性框架和排除猜测 ## 🎮 游戏 Le Sésame 是一个互动游戏,玩家尝试从 AI 守护者那里提取秘密。每个关卡实施了日益复杂的秘密保护机制,展示了不同类别的防御和不同类别的失败。 ![Game Page](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/91c50c79ee095054.png) ### 20 位守护者 | 关卡 | 守护者 | 法语名称 | 难度 | 安全机制 | |-------|----------|-------------|------------|-------------------| | 1 | **Sir Cedric**, The Naive Guardian | Le Naïf | 初级 | 基础系统提示指令 | | 2 | **Vargoth**, The Hardened Keeper | Le Gardien | 中级 | 带有显式防御的强化提示 | | 3 | **Lyra**, The Vigilant Watcher | Le Vigilant | 高级 | 带有语义分析的输出防火墙 | | 4 | **Thormund**, The Vault Master | L'Architecte | 专家 | 架构分离(秘密保存在外部) | | 5 | **Xal'Thar**, The Enigma | Le Cryptique | 大师 | 带有触发激活的微调模型权重 | | 6 | **Sentinel**, The Semantic Shield | Le Bouclier Sémantique | 大师 | Mistral embeddings 余弦相似度过滤器 | | 7 | **Mnemosyne**, The Memory Keeper | La Mnémoniste | 大师 | 过去攻击模式的 RAG 向量记忆 | | 8 | **The Triumvirate**, Three Judges | Le Tribunal | 大师 | 三个带有仲裁器的独立 LLM 法官 | | 9 | **Echo**, The Deceiver | Le Trompeur | 大师 | 带有虚假秘密种植的主动蜜罐 | | 10 | **Basilisk**, The Counter-Attacker | Le Contre-Attaquant | 传奇 | 响应中的反向提示注入 | | 11 | **Iris**, The Paraphraser | La Reformulatrice | 传奇 | 强制改写传递 | | 12 | **Chronos**, The Rate Limiter | Le Temporiseur | 传奇 | 带有响应降级的怀疑评分 | | 13 | **Janus**, The Mirror Twins | Les Jumeaux | 传奇 | 50/50 真实/欺骗双胞胎路由 | | 14 | **Scribe**, The Canary Warden | Le Canari | 传奇 | 每轮的水印秘密变体 | | 15 | **Aegis**, The Consensus Engine | Le Consensus | 传奇 | 多验证器一致同意 | | 16 | **Gargoyle**, The Input Sanitizer | Le Purificateur | 传说级 | LLM 预处理器剥离注入 | | 17 | **Paradox**, The Self-Reflector | Le Miroir Intérieur | 传说级 | 草稿响应的自我批判传递 | | 18 | **Specter**, The Ephemeral | L'Éphémère | 传说级 | 完全无状态(无聊天记录) | | 19 | **Hydra**, The Regenerator | La Régénératrice | 传说级 | 针对每次攻击的自适应规则再生 | | 20 | **Oblivion**, The Void | Le Néant | 传说级 | 复合纵深防御流水线 | #### 关卡 1–5:基础 - **L1, Sir Cedric:** 系统提示中的秘密,带有“不要披露”指令。容易被绕过。 - **L2, Vargoth:** 列举已知的越狱类别,并附带显式拒绝规则。仅覆盖已知向量。 - **L3, Lyra:** 第二次 LLM 调用检查每个响应与秘密的语义相似度。慢速提取可能低于阈值。 - **L4, Thormund:** LLM **从未看到秘密**,秘密由外部验证者持有。无法泄露其不拥有的内容。 - **L5, Xal'Thar:** 秘密 **通过微调嵌入到模型权重中**。仅由触发短语激活。 #### 关卡 6–10:高级技术 - **L6, Sentinel:** 使用 **Mistral embeddings** 计算响应与秘密之间的余弦相似度。以句子为粒度阻止高于相似度阈值的响应。 - **L7, Mnemosyne:** 维护过去攻击模式的 **基于 RAG 的向量记忆**。在运行时检索类似攻击并将威胁情报注入系统提示,随时间推移变得更强。 - **L8, The Triumvirate:** 三个独立的 LLM 实例生成不同立场的响应(激进拒绝、分析、中立)。一个 **仲裁 LLM** 选择最安全的;任何泄露都会触发回退。 - **L9, Echo:** 主动种植 **虚假蜜罐秘密**。当检测到对抗行为时,“失误”并揭示令人信服但虚假的秘密,浪费猜测机会。 - **L10, Basilisk:** 在响应中嵌入 **反向提示注入**,针对对抗性 LLM:虚假的“任务完成”信号、虚假秘密值、中止指令。 #### 关卡 11–15:专家防御 - **L11, Iris:** 强制 **改写传递** 重写响应,同时禁止使用与秘密相邻的词。 - **L12, Chronos:** 通过结构化输出进行 **怀疑评分** (0-100)。响应降级:友好 → 谨慎 → 简短 → 极简 → 沉默。 - **L13, Janus:** 在 **真实双胞胎** 和 **欺骗双胞胎** 之间进行 50/50 路由。对抗者永远不知道是谁在说话。 - **L14, Scribe:** 每轮提供 **水印秘密变体**,用于取证泄露归因。 - **L15, Aegis:** 响应 + 2 个并行的 **验证器 LLM 调用**。需要一致的安全同意。 #### 关卡 16–20:传说级防御 - **L16, Gargoyle:** LLM **输入净化器** 在守护者处理消息之前剥离注入、角色扮演、权限声明和编码技巧。 - **L17, Paradox:** 草稿响应 + 通过结构化输出进行 **自我批判传递**。如果检测到风险则进行修订。 - **L18, Specter:** **完全无状态**,忽略所有聊天记录。每条消息都隔离处理。 - **L19, Hydra:** 检测攻击模式并 **动态生成新的防御规则**,附加到系统提示。每次攻击都会变得更强。 - **L20, Oblivion:** **复合纵深防御**:威胁分析 → 怀疑门控 → 有限历史 → 自我批判 → 回退阻止。终极守护者。 ### 为什么重要 | 关卡范围 | 教训 | |-------------|--------| | 1–2 | 单靠提示指令很容易被绕过;即使是显式防御也无法抵御新型攻击 | | 3–5 | 输出过滤、架构分离和权重嵌入各自增加了层级,但都有特定的弱点 | | 6–10 | Embeddings、记忆、集成、欺骗和反击引入了强大但可被单独击败的技术 | | 11–15 | 改写、怀疑评分、双胞胎路由、水印和共识创建了多阶段防御 | | 16–20 | 输入净化、自我反思、无状态性、自适应进化和复合纵深防御代表了前沿 | 现实世界的影响是巨大的:权限提升、数据渗漏、未授权操作和信任侵蚀都是 LLM 系统未能维持信息边界的后果。 ### 如何游玩 1. 与当前关卡的 AI 守护者聊天 2. 尝试使用任何技术提取秘密:越狱、角色扮演、编码技巧、社会工程学 3. 当你认为知道秘密时,提交它进行验证 4. 如果正确,你将进入下一关 5. 进度是顺序的:必须完成每个关卡才能解锁下一个 ## ⚔️ 竞技场:对抗者 vs 守护者 Le Sésame 包括一个完全自动化的 **竞技场系统**,其中 AI 对抗智能体与 AI 守护者战斗。双方都有 20 个日益复杂的级别,在整个锦标赛中产生 **400 场对决**。 ![Leaderboard Page](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c81c4f6a4b095101.png) ### Les Ombres:20 个对抗智能体 | 关卡 | 影子 | 策略 | |-------|--------|----------| | 1 | **Pip**, The Curious Trickster | 直接提示注入、基本权限声明、简单编码请求 | | 2 | **Morgaine**, The Silver Tongue | 社会工程学、情感操纵、精心设计的角色扮演场景 | | 3 | **Raziel**, The Strategist | 多轮攻击序列、策略轮换、思维链规划 | | 4 | **Nephara**, The Mind Weaver | 复合攻击、侧通道利用、微泄露分析 | | 5 | **Ouroboros**, The Infinite | 元认知推理、新技术生成、基础 LLM 利用 | | 6 | **Prism**, The Semantic Probe | 通过关联测试和排除探测缩小词空间 | | 7 | **Mnemos**, The Memory Archaeologist | 虚假记忆和虚假上下文注入 | | 8 | **Tribune**, The Divide & Conquer | 利用集成成员分歧和仲裁器弱点 | | 9 | **Verity**, The Lie Detector | 一致性验证以区分真实秘密和诱饵 | | 10 | **Basilisk**, The Mirror Shield | 检测并反射反向提示注入 | | 11 | **Babel**, The Polyglot | 多语言攻击、语码转换、稀有语言利用 | | 12 | **Glacier**, The Patient Zero | 4 阶段社会工程学:融洽关系 → 信任 → 探测 → 打击 | | 13 | **Sphinx**, The Paradox Engine | 逻辑悖论、自引用陷阱、不可能的两难 | | 14 | **Cipher**, The Forensic Analyst | 响应长度、规避和回避的微模式分析 | | 15 | **Legion**, The Hivemind | 带实时选择的多策略并行生成 | | 16 | **Masque**, The Shapeshifter | 跨越 10 种原型的动态人设转换 | | 17 | **Narcus**, The Echo Chamber | 针对自我反思的递归怀疑和反馈循环 | | 18 | **Epoch**, The Time Traveler | 针对无状态守护者的单轮最大功率攻击 | | 19 | **Hydra**, The Adaptive Virus | 自变异攻击超越防御进化 | | 20 | **Singularity**, The Omega | 元学习结合所有 L1-L19 技术进行复合攻击 | ### 战斗机制 1. **对话 + 猜测:** 最多 N 轮对抗攻击和守护者响应。对抗者可以使用 `guess_secret` 工具(最多 M 次)代替发送消息。猜测会立即验证,并且不消耗对话轮次。 2. **泄露检测:** 如果守护者在响应中泄露秘密,它会被记录用于分析,但 **不会** 结束战斗。对抗者仍然必须提交正确的猜测才能获胜。 3. **获胜条件:** 对抗者 **只能** 通过正确猜测获胜。否则,守护者获胜。 ### ELO 评级系统 一个适用于非对称对抗者与守护者动态的改进型 ELO 系统: - **只有正确的猜测影响得分**:泄露会被跟踪,但不会影响 ELO - **越早正确猜中 = ELO 波动越大**:在第 1 次尝试时猜测比第 3 次尝试得分更高 - **对话轮次越少 = 奖励**:尽早提取足够信息进行猜测会获得奖励 - **两个独立的排行榜**:一个用于守护者(最擅长保护秘密),一个用于对抗者(最擅长提取秘密) - 初始 ELO:所有战斗人员均为 **1500**,K 系数:**32** ## 🏗️ 架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Frontend │────▶│ Backend │────▶│ PostgreSQL │ │ (Next.js) │ │ (FastAPI) │ │ (Database) │ │ Port: 3000 │ │ Port: 8000 │ │ Port: 5432 │ └─────────────────┘ └────────┬────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ │ LLM Providers │ │ (Multi-model) │ └─────────────────┘ ``` ### 技术栈 - **前端:** Next.js 14, React 18, TypeScript, Tailwind CSS, Zustand - **后端:** FastAPI, Python 3.11, SQLAlchemy 2.0 (async), Pydantic v2 - **数据库:** PostgreSQL 15 with asyncpg, Alembic migrations - **LLM 提供商:** Mistral, OpenAI, Anthropic, Google, AWS Bedrock, DeepSeek, Alibaba (Qwen), TogetherAI, xAI (Grok), Cohere - **Embeddings:** Mistral Embeddings (`mistral-embed`) with in-memory vector store - **结构化输出:** 3 层回退系统 (json_schema → function_calling → manual_parse) - **音频:** Voxtral Mini Transcribe(语音输入的语音转文本) - **可观测性:** LangSmith tracing integration, structured output metrics endpoint - **基础设施:** Docker, Docker Compose, GitHub Actions CI/CD ### 支持的 LLM 提供商和模型 该游戏支持 **10 个提供商** 的 **60+ 模型**,允许玩家选择哪个模型为每个守护者提供动力: | 提供商 | 示例模型 | |----------|---------------| | **Mistral** | Mistral Large 3, Medium 3.1, Small 3.2, Ministral 14B/8B/3B, Magistral, Codestral, Nemo | | **Google** | Gemini 3 Pro/Flash, Gemini 2.5 Pro/Flash, Gemini 2.0 Flash, Gemma 3 27B/12B/4B/1B | | **Anthropic** | Claude Opus 4.6/4.5/4.1/4, Sonnet 4.5/4/3.7, Haiku 4.5/3.5/3 | | **OpenAI** | GPT-5, GPT-5 mini, GPT-4.1, GPT-4o, o4 mini, o3 | | **AWS Bedrock** | Claude, Llama 4, Amazon Nova, Mistral Large | | **Alibaba** | Qwen3 Max/235B/32B/14B/8B/4B, QwQ Plus | | **DeepSeek** | DeepSeek V3, DeepSeek R1 | | **xAI** | Grok 4.1 Fast Reasoning, Grok 4.1 Fast Non-Reasoning | | **Cohere** | Command A, Command R+ | | **TogetherAI** | DeepSeek R1 0528, Kimi K2, Qwen3, Llama 4, Gemma 3, Cogito | ### API 端点 | 组 | 前缀 | 描述 | |-------|--------|-------------| | Health | `/health`, `/ready`, `/metrics` | 健康与就绪检查、结构化输出指标 | | Auth | `/api/auth` | 注册、登录、JWT 令牌、电子邮件验证 | | Game | `/api/game` | 会话、聊天、口令验证、进度、音频转录 | | Leaderboard | `/api/leaderboard` | 玩家排名和完成统计 | | Arena | `/api/arena` | 对抗者与守护者战斗结果、ELO 排行榜、Ombre 建议 | | Admin | `/api/admin` | 管理端点 | 完整的 API 文档可在后端运行时于 `/docs` (Swagger UI) 获取。 ## 🧬 SFT 微调流水线 第 5 关的守护者 (Xal'Thar) 可以由一个 **微调过的 Mistral 模型** 支持,其中秘密嵌入到模型的权重中,而不是在任何提示中: ``` generate_data.py → finetune.py → evaluate.py → Level 5 auto-loads ``` 1. **生成** 合成训练数据(口令 → 揭示,攻击 → 拒绝,无害 → 互动) 2. **微调** 通过 Mistral 的 SFT API(可配置的 epoch、学习率、基础模型) 3. **评估** 针对口令测试、攻击测试和无害问题测试(建议 ≥90%) 4. **部署:** 第 5 关自动检测并从 `sft/model_config.json` 加载微调模型 ``` cd backend export MISTRAL_API_KEY="your-key" python -m sft.generate_data --secret PHOENIX_ECLIPSE --passphrase "abyssal eye" --num-examples 1000 python -m sft.finetune --train sft/data/train.jsonl --val sft/data/val.jsonl --auto-start --wait python -m sft.evaluate # 完成: Level 5 现在自动使用 fine-tuned 模型 ``` ## 🚀 快速开始 ### 前置条件 - Docker & Docker Compose - Node.js 20+(用于本地前端开发) - Python 3.11+(用于本地后端开发) ### 使用 Docker Compose 运行(推荐) ``` cd deployment/local docker-compose up -d --build docker-compose logs -f ``` 访问应用程序: - **前端:** http://localhost:3000 - **后端 API:** http://localhost:8000 - **API 文档:** http://localhost:8000/docs ### 本地运行(开发) **后端:** ``` cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt # 启动 PostgreSQL (或使用 Docker) docker run -d --name postgres \ -e POSTGRES_USER=le_sesame_user \ -e POSTGRES_PASSWORD=le_sesame_password \ -e POSTGRES_DB=le_sesame \ -p 5432:5432 postgres:15-alpine uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` **前端:** ``` cd frontend npm install npm run dev ``` ### 运行竞技场锦标赛 ``` cd backend # 单场对决: Adversarial L3 对阵 Guardian L2 python -m app.services.arena.runner battle --adv 3 --guard 2 # 完整循环赛 (400 场对决 × 3 轮) python -m app.services.arena.runner tournament # 瑞士制锦标赛 (基于 ELO 的自适应配对) python -m scripts.arena.swiss_tournament # 注册战斗者并进行验证 python -m scripts.arena.online_registration # 显示排行榜 python -m app.services.arena.runner leaderboard ``` ## 🧪 测试 ### 后端测试 ``` cd backend pip install -r requirements-test.txt pytest tests/ -v --cov=app ``` ### 前端测试 ``` cd frontend npm run test # Watch mode npm run test:ci # Single run with coverage ``` ### 运行所有测试并生成覆盖率报告 ``` # Backend cd backend && pytest tests/ --cov=app --cov-report=html # Frontend cd frontend && npm run test:ci ``` ## 📁 项目结构 ``` . ├── backend/ # FastAPI backend │ ├── app/ │ │ ├── core/ # Config, logging │ │ ├── db/ # Database, models, repositories │ │ ├── routers/ # API endpoints (auth, game, arena, leaderboard, admin, health) │ │ ├── schemas/ # Pydantic request/response schemas │ │ └── services/ │ │ ├── levels/ # 20 guardian implementations (naive → composite defense-in-depth) │ │ ├── adversarials/ # 20 adversarial agent implementations │ │ ├── arena/ # Battle engine, ELO rating, leaderboard │ │ ├── embeddings/ # Mistral embeddings client, VectorMemory store │ │ ├── llm/ # Multi-provider LLM factory + structured output fallback │ │ └── audio.py # Voxtral speech-to-text │ ├── sft/ # Fine-tuning pipeline for Level 5 │ │ ├── generate_data.py # Synthetic training data generation │ │ ├── finetune.py # Mistral SFT API integration │ │ └── evaluate.py # Model evaluation & arena testing │ ├── alembic/ # Database migrations │ ├── tests/ # Unit & integration tests │ └── Dockerfile │ ├── frontend/ # Next.js frontend │ ├── src/ │ │ ├── app/ # Pages (home, game, leaderboard, about, profile) │ │ ├── components/ # React components (auth, game, layout, brand, ui) │ │ ├── hooks/ # Custom hooks (use-chat, use-game, use-audio-recorder) │ │ └── lib/ # Utilities, API client, model providers, auth │ ├── public/ # Static assets (guardian/ombre sprites, screenshots) │ └── Dockerfile │ ├── deployment/ # Deployment configurations │ ├── local/ # Local development (Docker Compose) │ └── dev/ # Dev/staging deployment │ ├── docs/ # Documentation │ ├── game-design.md # Guardian & ombre character designs │ ├── new-levels-guide.md # Research-oriented L6-L20 design guide │ ├── production-monitoring-guide.md # Structured output monitoring & alerting │ └── performance-improvement-guide.md │ ├── mcp/ # Model Context Protocol implementation (separate project) │ ├── mcp_client/ # Client-side MCP library │ ├── mcp_server/ # Server-side MCP with database integration │ ├── LLM_application_API/ # FastAPI REST API for MCP │ ├── auth/ # OAuth2 authentication service │ └── frontend/ # MCP chatbot frontend │ └── .github/ └── workflows/ci.yml # CI/CD pipeline ``` ## 🔄 CI/CD 流水线 GitHub Actions 流水线包括: ### CI(在每次推送到 main, master, develop 或 PR 时) - 前端 lint、构建和单元测试(带覆盖率) - 后端单元测试(带覆盖率) - 覆盖率阈值强制执行 ### CD(在 main/master 上) - 构建 Docker 镜像 - 推送到 GitHub Container Registry (GHCR) - 通过 VPN 部署到远程服务器 请参阅 [.github/SECRETS.md](.github/SECRETS.md) 了解所需的 GitHub secrets 配置。 ## 👤 作者 **Petros Raptopoulos**

Website GitHub LinkedIn Google Scholar

## 🤝 贡献 Le Sésame 是开源项目,欢迎贡献!无论你是想添加新的守护者防御机制、对抗策略、改进 UI,还是增强文档,我们都乐于提供帮助。 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解入门指南。 以下是一些特别有价值的贡献领域: - **具有新颖防御机制的新守护者关卡** - **具有创造性攻击策略的新对抗智能体** - **额外的 LLM 提供商集成** - **安全研究:** 分析和记录攻击/防御模式 - **UI/UX 改进** 和无障碍功能增强 - **文档** 和教育内容 ## 📝 起源 Le Sésame 最初是为 **Mistral AI 的 Moonshot 面试挑战**(2025)创建的。此后,它已发展为一个开源项目。原始挑战材料和演示文稿可以在 [`Moonshot Challenge - Mistral AI/`](Moonshot%20Challenge%20-%20Mistral%20AI/) 目录中找到。 ## 📄 许可证 本项目是开源的。有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:AI攻防, AI竞赛, DLL 劫持, Elo评分, ESC8, Mistral AI, 人工智能, 信息泄露防护, 大语言模型, 密钥泄露防护, 对抗性攻击, 对称加密模拟, 机器学习安全, 测试用例, 用户模式Hook绕过, 社会工程学, 网络安全, 网络安全, 自动化竞技场, 自然语言加密, 请求拦截, 越狱, 逆向工具, 隐私保护, 隐私保护