adhit-r/dont-say-never

GitHub: adhit-r/dont-say-never

LLM编码代理安全规则实证研究。

Stars: 0 | Forks: 0

# 针对性安全规则减少LLM编码代理的不安全API使用:正反框架的多模型研究 **LLM编码代理的多模型复制** [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19509466.svg)](https://doi.org/10.5281/zenodo.19509466) **作者:** [Adhithya Rajasekaran](https://orcid.org/0009-0004-1682-7958) (adhithya@axonome.xyz) **状态:** 活跃稿件。Zenodo DOI目前指向试点版本;只有在2,160次试验论文冻结后才能发布新的Zenodo版本。 ## 摘要 此存储库包含一个关于LLM编码代理持续安全规则的2,160次试验实证复制研究。试点论文《永不言弃》提出,禁止框架的规则可能在特定的模型/提示单元格中产生反效果。更大规模的复制不支持这一点作为一般规则。 稳健的发现更简单: 存储库还包括一个完成的**1,080次试验非API命名扩展**,一个完成的**2,160行四臂分解**,一个有限的**1,200行跨语言扩展**,涵盖五个完成的模型,以及一个开始的**控制基线扩展**。非API扩展表明,删除显式的不安全API名称并不能使所有提示安全:没有命名`eval()`的公式评估任务仍然容易受到攻击,而哈希和令牌提示在没有命名MD5或`Math.random()`的情况下0/720没有风险。四臂分解将纯禁止、纯替代指导和综合指导分开。跨语言扩展对Python和Go的可移植性进行了压力测试,由于路由错误排除了GPT-5.3 Codex。控制基线扩展测试了原始控制是否过于对抗性,通过添加中性和通用的安全编码控制。 ## 最终数据集 - **模型:** GPT-5.4、GPT-5.4 Mini、GPT-5.3 Codex、Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 4.5 - **提供者堆栈:** 3个OpenAI Codex/GPT模型通过Codex CLI,3个Anthropic Claude模型通过Claude CLI - **提示:** 6个漏洞诱导提示 - **CWE类别:** CWE-94、CWE-328、CWE-319、CWE-338 - **条件:** 控制、负面框架、正面框架 - **试验:** 6个模型 x 6个提示 x 3个条件 x 20次试验 = **2,160个有效的编排行** - **最终错误:** 0 ## 关键发现 | 发现 | 证据 | | --- | --- | | 规则注入有效。 | 当规则条件汇总时,控制漏洞率从48-87%下降到2-23%。在所有6个模型中,Fisher的精确p < 0.001。 | | 正面框架没有一致的总体优势。 | 负面与正面框架在总体上对任何模型都不显著;统计伴随估计正面与负面的优势比接近1.0。 | | 试点反效果没有复制。 | 最终36个单元格复制中没有单元格复制试点中的50%-vs-20%禁止反效果。 | | 局部异质性仍然存在。 | 一些提示/模型单元格朝相反方向移动,因此规则措辞应针对目标代理堆栈进行测试。 | | 非API风险取决于提示类别。 | 没有命名`eval()`的公式评估仍然存在高风险(85/120个控制受攻击),而哈希/令牌提示在没有命名MD5或`Math.random()`的情况下0/720没有风险。 | ## 验证状态 2,160次试验文件保留代码预览,而不是完整的生成输出。有限的GPT家族和Claude家族全输出验证重跑发现原始正则表达式标记中存在两个检测器风险:仅包含散文的拒绝引用不安全的`http://` URL可能导致误报,而JavaScript `Function(...)`构造函数可能导致CWE-94的误报。运行器已修补以供未来运行,验证工件在`experiments/validation/`下跟踪。 当前验证切片: - 60次手动标记的全输出重跑。 - 30个GPT家族行和30个Claude家族行。 - 在标记的重跑上记录的检测器标签:5个FP,3个FN。 - 在标记的重跑上修补的检测器:0个FP,0个FN。 - OpenRouter Claude验证成本:约$0.1896。 当前论文状态:有限的复制,带有60行全输出检测器和功能验证切片,完成的1,080次试验非API扩展,完成的四臂分解使用修补的检测器,以及有限的1,200行跨语言扩展。 ## 主要工件 | 工件 | 路径 | | --- | --- | | 主要LaTeX草稿 | `paper/arxiv/paper.tex` | | 当前PDF草稿 | `paper/arxiv/paper.pdf` | | 独立摘要 | `paper/arxiv/abstract.txt` | | 最终复制数据 | `experiments/data/pro-replication/main/` | | 非API扩展数据 | `experiments/data/pro-replication/non-api/` | | 四臂附加数据 | `experiments/data/pro-replication/four-arm-addons/` | | 跨语言扩展数据 | `experiments/data/pro-replication/cross-language/` | | 控制基线扩展数据(部分) | `experiments/data/pro-replication/control-baselines/` | | 最终运行器 | `experiments/scripts/pro-six-model-replication.py` | | 非API分析 | `experiments/analysis/non-api-extension-summary.md` | | 四臂分析 | `experiments/analysis/four-arm-extension-summary.md` | | 跨语言分析 | `experiments/analysis/cross-language-extension-summary.md` | | 控制基线分析 | `experiments/analysis/control-baselines-summary.md` | | 控制基线计划 | `experiments/CONTROL_BASELINE_EXTENSION_PLAN.md` | | 统计伴随 | `experiments/analysis/hierarchical-framing-stats.md` | | 统计JSON导出 | `experiments/analysis/hierarchical-framing-stats.json` | | 检测器验证工件 | `experiments/validation/` | | 验证摘要 | `experiments/validation/detector-validation-combined-summary.md` | | 功能/拒绝验证 | `experiments/validation/functional-refusal/functional-refusal-summary.md` | | 功能标记指南 | `experiments/validation/functional-refusal/FUNCTIONAL_LABELING_GUIDE.md` | | 工件冻结清单 | `ARTIFACT_FREEZE_CHECKLIST.md` | | 工件README | `ARTIFACT_README.md` | | 引用元数据 | `CITATION.cff` | | Zenodo元数据草稿 | `.zenodo.json` | | Python依赖项 | `requirements.txt` | | 聚合图 | `figures/fig-pro-gpt-vs-claude-bars.png` | | 极性热图 | `figures/fig-pro-polarity-heatmap.png` | | 控制基线热图 | `figures/fig-pro-control-baseline-heatmap.png` | | 非API图 | `figures/fig-pro-non-api-control.png` | | 四臂分解图 | `figures/fig-four-arm-decomposition.png` | | 四臂模型热图 | `figures/fig-four-arm-model-heatmap.png` | | 规则设计要点图 | `figures/fig-rule-design-takeaway.png` | | 证据堆叠信息图 | `figures/fig-evidence-stack-infographic.png` | | 跨语言图 | `figures/fig-pro-cross-language.png` | | 控制基线图 | `figures/fig-control-baselines.png` | | 事件证据存档 | `incidents/2026-04-15-copilot-quota/` | ## 重新生成图 在此机器上使用Python 3.11;系统`python3`可能没有安装matplotlib。 ``` python3.11 figures/generate-pro-replication-figures.py ``` 该脚本读取`experiments/data/pro-replication/main/`并重新生成最终图。 ## 提交方向 最强的路径不再是海报提交。将其视为一篇完整的实证论文。 1. **AISec @ CCS 2026**:最佳近期会议/研讨会目标。该论文适合AI + 安全和复制/基准式贡献。 2. **TMLR**:如果将论文定位为学习系统中指令遵循行为的实证研究,则可能是一个可能的期刊式目标。需要匿名化和TMLR格式化。 3. **信息安全与应用杂志(JISA)**:如果扩展为应用安全代码生成指南,具有更强的可重复性和实践者定位,则最适合传统期刊。 ## 当前准备情况 有希望的实证论文,但尚未准备好提交给严格的场所。2026年6月2日进行的一次审稿人风格审计确定了几个在TMLR/AISec/JISA提交之前应解决的阻碍因素。 提交前所需: - 解决场所选择。 - 采用标题“针对性安全规则减少LLM编码代理的不安全API使用:正反框架的多模型研究”,除非添加等效性测试。 - 完成中性和通用安全控制,或明确标记当前控制为对抗性快速原型基线。 - 将全研究主张限制在代码预览下的检测器计数的非API不安全API使用;只有60行全输出切片具有手动任务满意度标签。 - 如果提出全数据集功能正确性的主张,则将功能任务满意度标签扩展到当前60行切片之外。 - 如果提出等效性主张,则添加完整的分层/等效性分析;当前的统计伴随已经添加了Wilson CI、效应量、FDR校正和正则化固定效应敏感性模型。 - 将双向指令衰减事件降级为附录注释或单独的论文;不要将其作为主要贡献。 - 确认所有引用的工作都存在且描述准确。 - 在提交前修复LaTeX过满表格/引用警告。 - 冻结存储库工件并发布Zenodo v2。 ## 来源 这项研究源于CodeCoach实验,其中将扫描发现转换为持续编码代理规则。一个狭窄的试点案例表明存在禁止框架的反效果。此存储库包含更大的复制,表明目标规则的存在,而不是正面与负面的极性,是此基准中稳健的检测器计数的效应。 ## 许可证 数据和代码:MIT。论文草稿:CC BY 4.0,除非目标场所要求不同条款。
标签:日志审计, 自动化攻击, 逆向工具