FZ-009 · 安全

promptdecode

找出代码审查中人工审查者会漏掉的不可见文本。

Alpha 版 验证 FZ stack隐藏文本筛查开源
访问 promptdeco.de 已发布:尚未
状态
Alpha 版
流水线阶段
验证
行业
安全
自主目标
第 4 级 · 自我优化
构建于
3 个已上线 · 1 个计划中

问题

pull request 或 issue 中的隐藏文本可以指示编码 agent 执行合并,而审查者完全看不到。

它做什么

promptdecode 在你的浏览器中解码隐藏的 Unicode 文本,不发送任何内容,并显示其中写了什么。

运作方式

  1. 粘贴任意文本,即可显示隐藏字符并解码其中的信息
  2. 完全在你的浏览器中运行;不向任何地方发送数据
  3. 配置扫描器会检查你的 GitHub 工作流中不受信任的输入可能触达的 agent 步骤

今天即可在 promptdeco.de 免费使用。

在 agent 行动之前,拦下隐藏的指令。

现状解码器目前可在浏览器中使用。promptdecode-core 0.1.0 已发布到 crates.io;扫描器和 GitHub Action 尚未发布。

目标

自主运营
评审是自动化的目标。持有写入令牌的编码 agent 读取一个已被人工评审批准的 pull request,而两者读的并不是同一份文档:tag 区块字符、双向覆盖符和变体选择符渲染出来什么都没有,却会被正常分词。扫描器应在 CI 中对每次改动运行,把发现的内容解码而不只是标记,并把明文贴回 pull request,过程中没有模型参与,也没有任何东西离开 runner。
智能
有意不用模型,凡是不需要的地方都不用。计划中的两个引擎都是确定性的:一个追踪不受信任的工作流输入如何到达持有写入令牌的 agent 步骤,另一个在仓库内容中匹配指定的 Unicode 类别。需要模型来判断什么可疑的检测器无法说明自己的覆盖范围,而能说明的覆盖范围正是这个产品。
增长
以证据为先,因此也更慢。我们不公布拦截攻击的百分比,因为字符级规避的成功率随手法变化太大,单一数字没有意义。我们公布的是对一份指定 Unicode 类别清单的确定性覆盖,以及在指定语料上、给定误报率下的召回率,语料和测试框架均公开。增长以每周扫描的仓库数计,Action 上线后开始统计。
技术细节

找出对人工评审不可见、却能被语言模型完整读取的文本,并将其解码。pull request 标题、issue 正文或仓库文件中的隐藏指令,可以让编码 agent 批准、合并或评论,而 diff 里看不出任何异常。目前有两部分可用。一是网站上的解码器,它读取三类指定的码点(Unicode tag 区块、双向控制符与覆盖符、变体选择符),还原它们编码的内容,并完全在读者的浏览器中运行,不向任何地方发送数据。二是配置扫描器,它追踪不受信任的工作流输入如何到达持有写入令牌的 agent 步骤,目前只能从源码运行,尚无发布版本。其余部分已设计但尚未编写:可跨整个仓库解码内容的引擎、命令行扫描器、GitHub Action 和一个开放基准。凡不在已公布清单上的类别,一律不会被检测;这份清单就是我们的承诺范围。