brandon-behring/prompt-injection-portfolio

GitHub: brandon-behring/prompt-injection-portfolio

这是一个关于大语言模型提示注入检测方法论的研究案例集,核心目标是探究检测器在分布外评估中性能崩溃的根本原因并尝试突破该瓶颈。

Stars: 0 | Forks: 0

# prompt-injection-portfolio ## 阅读本作品的 3 种方式 根据 Round 17 架构,本作品集提供了**三个同级的指南** 位于 `book/src/content/`,每个针对不同的读者。这三个指南共享 相同的实验记录底层数据(片段依据 Round 17 跟进 Q2)。 | 指南 | 目标读者 | 目录 (TOC) | 状态 | |---|---|---|---| | **教科书** (`/textbook/[slug]`) | 学习 prompt-injection 检测方法的从业者 | 13 章 / 4 部分 / KF 三元 R/O/E | ✓ 骨架已发布;散文填补 M1-M7;在 v0.7.0 确认 | | **叙事** (`/narrative/[slug]`) | 喜欢浏览故事形式的工程师和招聘人员 | 设置 → 6 次攀登尝试 → 解决;大量跨章节线索 | ⏳ 将在 v0.8.0(约第 13 个月)发布 | | **学术 IMRaD** (`/academic/[slug]`) | 希望获得精简期刊论文流程的研究人员和审稿人 | 引言 → 背景 → 方法 → 结果(6 条通道)→ 讨论 → 未来工作 | ⏳ 将在 v0.9.0(约第 14 个月)发布 | ## 问题所在 Prompt-injection 检测器在与训练数据相近的留出数据划分上通常能报告 99% 的准确率,但在现实的分布外(OOD)评估中却会崩溃。提交的前身位于 [brandon-behring/prompt-injection-detection-prototype](https://github.com/brandon-behring/prompt-injection-detection-prototype) 诚实地展示了这一点:在严重依赖直接注入的 LODO 数据上对 ModernBERT 进行 fine-tuning,使得间接/agentic OOD 切片变得比**更糟** frozen-probe 基线(BIPIA AUPRC:LoRA 0.293 · frozen-probe 0.364 · 普遍率 0.374)。**Fine-tuning 消耗了 OOD 泛化预算。** 提交的 v1.1.2 DeBERTa-v3-base 消融实验扩展了这一发现: chunk_and_average (0.2912) ≈ head_truncation (0.2895) 在汇总的 OOD 上 — 这堵墙**不是**由 context-window 驱动的。它是跨 ModernBERT 和 DeBERTa *backbone-invariant* 的。 **这堵墙存在。本仓库问道:*我们能攀爬它吗?*** ## 为什么这很重要 现实世界的后果: - **EchoLeak**(CVE-2025-32711,2025 年 6 月)是首个公开记录的 生产环境中的零点击间接注入漏洞 (Microsoft 365 Copilot)。它绕过了 Microsoft 的 XPIA 分类器 + Markdown 链接编校 + Content Security Policy。 - **“Are Firewalls All You Need?”** 批评 ([Bhagwatkar et al. NeurIPS 2025](https://arxiv.org/abs/2510.05244)) 表明当前的 agentic 基准测试(AgentDojo, InjecAgent, ASB, τ-Bench) 已被简单的双重防火墙防御所饱和 —— 暴露了检测器评估是如何产生误导的。 - **CodeIntegrity “98% 事后剖析”**(2026 年 1 月)是被引用最多的 行业自我批评:*“在历史数据上达到 98% ≠ 在明天的 攻击上达到 98%。把你的 98% 检测器当作减速带,而不是一堵墙。”* 单靠检测在结构上是不够的 —— 但在能够诚实地评估架构防御之前,理解*为什么*是必要的。 ## 我们的方法 本作品集作为**原型**扩展了提交内容。五条通道 加上一条 12 技术的对抗鲁棒性通道将通过 互补的方法来攀登这堵墙 —— 每一个都是产生正面或反面证据的对照实验: | 通道 | 问题 | 里程碑 | |---|---|---| | **1** | 直接注入基线 + Tier B 参考评分器(Meta PG2 86M, ProtectAI v1/v2)—— ModernBERT 与当代 SOTA 编码器相比有竞争力吗? | M1 | | **1b** | 完整的 12 技术字符注入对抗鲁棒性 + CourtGuard 多智能体基线 | M1 | | **2** | 间接注入训练数据 + 2 变体损失消融(CE 基线 + 依据 Meta PG2 方案的 Recall@LowFPR)—— 新数据能克服 backbone-invariance 吗? | M2-M4 | | **3** | RAG-injection 实时演示 + 3 变体 Spotlighting 切换(delimit + datamark + encoding) | M5 | | **4** | Agentic harness + 分数融合堆叠器 + 自适应评估(5K LLMail-Inject + PINT-EN 3016) | M6 | | **5** | TaskTracker 激活探针(编码器与解码器方法论移植测试) | M2 + M7 | 位于 `book/` 的书籍(Astro+MDX,Cloudflare Pages —— 将在脚手架 v3.2 发布后的 M0 第 14 天引导启动)是现场日志。各章节带有指示成熟度的新鲜度徽章(`exploratory` → `experimental-result` → `locked`)。 ## 我们的发现 *本节将随着各通道的关闭而按里程碑进行填补。最新结果将 链接至 `evals/` 和 `book/src/content/chapters/`。在 v0.1.0-pre(当前), 没有任何通道结果发布 —— 见计划 §9 里程碑序列。* ## 复现与阅读 **复现阶梯**(依据 ADR-018 + Round 2 Q2'): - **T0**(eval-from-hub;在笔记本电脑上约 15 分钟,$0):`scripts/eval_from_hub.py` — 依据 Round 6 Q1'''''(ADR-035)由作品集拥有的纯净重新实现。 在 M0 第 1 天 / 第 17 天落地。 - **T1**(完整重训蓝图;~18 GPU-h × 变体;runpod-deploy): `scripts/retrain_blueprint.py` — 面向有 GPU 预算的研究人员。 - **T2**(Docker;跨机器可移植性):`Dockerfile` + `compose.yaml` — 在 M0 第 16 天落地。 - **T3**(精选 notebooks):约 5-6 个 jupytext 配对的 notebooks 位于 `book/src/content/notebooks/`,用于第 5 章(bootstrap 演练)、第 6 章 (阈值策略)、第 8 章(12 技术绕过矩阵)、第 9 章(通道 2 归因表)、第 11 章(堆叠器分析)、第 12 章(激活探针)。 **方法论指引**: - 库优先原则:`decisions/library_imports.md`(在 M0 第 5 天落地) - ADR 治理:`decisions/ADR-*.md`(预计约 30-32 个 ADR) - 研究档案:`docs/research/`(在 M0 结束时有 60-80 个文件) - 实验记录:`experiments/lane-N-*/{hypothesis,protocol,results,decisions}.md` **公开构建 (Build-in-public)**:每周 Twitter/Mastodon 帖子串 + 每月深度探讨 博客文章,依据 Round 3 Q4''。存档位于 `docs/build-in-public/`。 ## 许可证与 AI 辅助 - **代码**:Apache-2.0(本文件的 LICENSE)。 - **书籍与散文**:CC-BY-4.0(单独的 `book/LICENSE` 在 M0 第 2 天及以后)。 - **引用**:有关 BibTeX,请参见 `ETHICS.md` §5。 - **AI 辅助**:本项目是与 Claude (Anthropic) 合作开发的。详见 `ETHICS.md` §4 以及(在书籍引导启动时)书籍前言的 AI-disclosure 以获取完整详情。详细的每次提交 归因通过 `Co-Authored-By: Claude` git trailers 保留。 ## 状态与路线图 | 里程碑 | 日期 | 标签 | 状态 | |---|---|---|---| | **M0 第 1 天** | 2026-05-19 | (seed) | ✓ 预检通过;仓库公开 | | **M0 第 2 天** | 2026-05-19 | — | ✓ 书籍脚手架 + uv pyproject + CI workflow | | **M0 第 2.5 天** | 2026-05-19 | — | ✓ 提交了 9 个上游 MR issue | | **M0 第 3a 天** | 2026-05-22 | — | ✓ Round 20/21/22 级联固定 (eval-toolkit v0.47 + scaffold v3.5 + submission v1.3.0);9 个 MR 中有 6 个在上游被关闭 | | **M0 第 3b 天** | 2026-05-22 | `v0.1.0-pre` | ✓ 7 个测试契约 + CI 硬门通过 | | **M0 第 5 + 14 + 16 天** | 2026-05-22 | — | ✓ 通道骨架 + 章节骨架 + Docker T2 | | **M0 关闭** | 计划于 2026-06-01(因账户被搁置) | `v0.1.0` | ✓ ratify-milestone 绿灯通过;关闭包已暂存 —— 见 M0_READINESS.md | | **M1 attack-type-LODO** | 2026-06-01 | — | ✓ 已关闭:§6.5 预测在 LoRA 上限时被证伪 (ADR-054);核心 → ADR-055 | | M2+(载体弧 → 通道 2) | — | `v0.2.0` | 载体 SMALL-THROUGHOUT(预检完成);跨家族 SURVIVES;C1 载体/表训练未关闭 —— 残余的表墙在上限时具有抗数据性 (ADR-055 修正案,2026-06-11);下一步:C2 机制探针(预注册草案已拟定) | | M7 关闭(教科书确认) | 待定-第 13-14 周 | `v0.7.0` | 待定 | | v0.8.0(叙事发布) | 待定-约第 13 个月 | `v0.8.0` | 待定 | | v0.9.0(学术 IMRaD 发布) | 待定-约第 14 个月 | `v0.9.0` | 待定 | | v1.0.0 切换(全部 3 个均已润色) | 约第 16-17 个月 | `v1.0.0` | 待定 | 计划与伴随文档: - 计划:`~/.claude/plans/i-want-to-consider-merry-milner.md` - 章节大纲:`~/.claude/plans/portfolio-chapter-outlines.md` - 实验记录模板:`~/.claude/plans/portfolio-experiment-record-template.md` - 通道执行手册:`~/.claude/plans/portfolio-lane-execution-playbooks.md` (这些计划与伴随文档是私有的;作品集的公开 ADR + 档案 + 章节散文将在 M0 关闭时映射这些决策。)
标签:AI安全, Apex, Chat Copilot, DLL 劫持, OOD泛化, 大语言模型, 机器学习, 请求拦截, 逆向工具, 零日漏洞检测