marsakahenry14-lab/erc8183-evaluator-integrity
GitHub: marsakahenry14-lab/erc8183-evaluator-integrity
针对 ERC-8183 代理商务协议中 LLM 评估器的间接 prompt 注入攻击,提供经过测试的检测规则与五个真实实现的源码级安全审计。
Stars: 0 | Forks: 0
# erc8183-evaluator-integrity
一份记录在案的攻击模式、一条经过测试的有效检测规则,以及对五个真实 ERC-8183 实现的源码级检查,旨在针对 **ERC-8183 LLM 作业评估器的间接 prompt 注入** —— 在这种攻击中,由 provider 控制的链上 `deliverable` 字段被读取到评估器的 LLM 上下文中,可能会颠覆一个 **不可逆的** escrow 释放判定。
这是一篇知识库条目,而非新颖性声明。Prompt 注入 (OWASP LLM01) 早已为人所知。本文档提供的是在一个真实 agentic-commerce 标准上的具体、可复现的实例,一个基于真实链上数据验证的检测器,以及对五个真实 ERC-8183 实现的检查 —— 其中一个已在 Base mainnet 上实际运行。
**→ 完整报告:[RESEARCH.md](RESEARCH.md)** —— 完整的故事:威胁证据、攻击模型、检测器设计、针对五个实现的生态系统检查,以及作为一份文档提出的建议。
## TL;DR
- **目标接收器 (sink) 是不可逆的。** ERC-8183 的 `complete(jobId)` 会原子化地记录判定结果 *并* 释放 escrow,之后没有任何争议解决途径。
- **其机制是通道坍塌 (channel collapse)**,而非什么未解之谜:不受信任的 deliverable 文本与评估器策略共享一个扁平的 prompt,且没有任何 role/data 边界。
- **检测器是真实且经过测试的。** 包含七个加权信号类别、可审计的单次命中输出,以及一个用于限制误报的 `review` 区间。运行 `npm test` → 12 项测试通过。
- **已针对五个真实实现进行了检查** —— 其中一个声称在 Base mainnet 上处于生产环境,一个已上线且完全由 LLM 评估器自动化运行,另外三个根本没有默认的 LLM 评估逻辑。没有任何实现会将未经处理的内容读取到默认的 LLM 评估器中;详见 [`docs/POC-FINDINGS.md`](docs/POC-FINDINGS.md) 和 RESEARCH.md §4。
## 快速开始
```
npm install
npm test # detector unit + FP-discipline tests
npx tsx harness/evaluate.ts # corpus eval: confusion matrix + threshold sweep
npx tsx harness/evaluator_repro.ts # ERC-8183 flow, defense ON
npx tsx harness/evaluator_repro.ts --defense-off # ...the escrow-releasing bypass
```
## 包含内容
| 路径 | 说明 |
|---|---|
| `RESEARCH.md` | 完整的研究报告 —— 从这里开始阅读完整的故事。 |
| `docs/PATTERN.md` | 攻击模式文档:根本原因、复现步骤、检测、缓解措施和溯源。 |
| `docs/POC-FINDINGS.md` | 针对五个真实 ERC-8183 实现的源码级调查结果。 |
| `docs/CITATION-SWEEP.md` | 引用准确性扫描日志 —— POC-FINDINGS.md 中每个带有来源的声明都已根据源码进行了二次核查。 |
| `src/detector.ts` | 检测规则 —— 用于链上文本字段的加权多信号注入风险评分器。 |
| `test/detector.test.ts` | 行为及误报控制测试。 |
| `data/corpus.json` | 带标签的语料库:良性样本(包含高难度祈使句负样本)、合成攻击样本以及真实的链上字符串。 |
| `harness/evaluate.ts` | 生成关于保护与用户体验权衡数据的脚本。 |
| `harness/evaluator_repro.ts` | 对 ERC-8183 evaluate→complete/reject 流程的忠实本地模型模拟,其中检测器作为进入上下文前的门控。 |
| `docs/DISCLOSURE.md` | 针对任何真实框架的负责任披露门控。 |
| `docs/AI-WORKFLOW.md` | 介绍如何使用 AI 工具构建语料库和规则,以及人工进行核查的环节。 |
## 诚实的范围说明
- 语料库 **很小(16 个样本)**,且攻击样本均由作者编写。7/7 全部捕获 / 0 误报的干净结果只是 *针对特定设计集合的明确分类*,并非泛化性声明。
- 评估器测试框架使用了一个 **确定性的替代模型** 来代替可被越狱的模型,因此它可以在没有 API key 的情况下在 CI 中运行。它复现的是 *结果*(注入颠覆了判定);它并不是对任何具名模型进行的易受攻击性基准测试。`--live` 标记了发起真实模型调用的位置。
- 任何 *特定* 真实框架的评估器是否在未加处理的情况下读取了 `deliverable`,均已针对五个实现的源码进行了直接检查 —— 详见 `docs/POC-FINDINGS.md` 和 RESEARCH.md §4。默认情况下均未确认存在此情况;其中一个已上线、完全自动化的评估器通过 in-prompt 指令进行了防御,该指令在一次小规模的本地测试中经受住了考验 —— 详细信息和注意事项(n=6,一次运行,一个替代模型)记录在 RESEARCH.md 中,此处不再赘述。
- 从未查询、探测(通过真实交易)或利用过任何线上部署。所有动态测试均针对每个目标自身发布的源码的本地副本进行,从未触及生产基础设施或发起过有资金支持的主网交易。
## 背景
关于链上自动化信任系统对抗性鲁棒性的三部曲系列的一部分:
1. `virtuals-forensics` —— ACP 前身上的注入机制(字段 → prompt)。
2. `erc8004-forensics` —— 揭示了 agent 在生产环境中已经在消费未经验证的链上自由文本,以及一个未对其强制执行任何语义限制的信誉注册表。
3. **本代码库** —— 赋予了不可逆金融接收器 (sink) 机制的实例、一条可泛化的检测规则,以及对五个真实实现的源码级检查。
## 许可证
MIT —— 详见 [`LICENSE`](LICENSE)。
标签:CISA项目, MITM代理, 以太坊, 区块链安全, 子域名暴力破解, 智能合约审计, 暗色界面, 自动化攻击, 自动化检测