attest
一个开源的提示注入检测工具,基于正则签名匹配,并通过字段角色分类来调节注入信号的严重性等级
时间轴 (近 90 天)
文章提出七个可测量的“空内容”信号:uniform_list、stub_value、blank_string/empty_list/empty_object、truncation、repetitive_text、schema_default、enum_first_value。
文章将空内容检查的裁决分为三种:CONTENT_PRESENT、THIN_CONTENT、VALID_BUT_EMPTY。
该空内容检查应放在 Agent 输出成为“结果”并被付款、转发、合并或展示给客户之前运行。
没有信号触发并不证明内容有意义,只意味着粗略检查没有触发;通过是对检查的陈述,不是对内容的证书。
attest 是一个开源工具,在四层检查工件:形式和空、提示注入形状、来源签名和权限。
attest 的空层包含四十多个测试,对应文章列出的七个信号。
拒绝 Agent 输出时应提供具体的、可争议的理由(如 uniform_list: 5 of 5 items are identical),而非模糊感觉。
attest 的开发者相信该方法正确,但尚无需求验证数据,应将其视为待攻击的假设而非结果。
attest 将 JSON 字段按角色分为结果承载字段(如 content、text、body 等)和其他字段(如 description、name、source 等)。
位置感知的提示注入检测是一种有价值的纵深防御思路,但不是银弹。
还有 7 条时间轴事件
全部知识事实 (17)
文章提出七个可测量的“空内容”信号:uniform_list、stub_value、blank_string/empty_list/empty_object、truncation、repetitive_text、schema_default、enum_first_value。
50%待验证文章将空内容检查的裁决分为三种:CONTENT_PRESENT、THIN_CONTENT、VALID_BUT_EMPTY。
50%待验证该空内容检查应放在 Agent 输出成为“结果”并被付款、转发、合并或展示给客户之前运行。
50%待验证没有信号触发并不证明内容有意义,只意味着粗略检查没有触发;通过是对检查的陈述,不是对内容的证书。
50%待验证拒绝 Agent 输出时应提供具体的、可争议的理由(如 uniform_list: 5 of 5 items are identical),而非模糊感觉。
50%待验证attest 的空层包含四十多个测试,对应文章列出的七个信号。
50%待验证attest 是一个确定性验证器,用于代理产物的模式、来源、签名和注入扫描,提供 API 和 MCP 接口,按调用付费或订阅。
50%待验证attest 的开发者相信该方法正确,但尚无需求验证数据,应将其视为待攻击的假设而非结果。
50%待验证attest 将 JSON 字段按角色分为结果承载字段(如 content、text、body 等)和其他字段(如 description、name、source 等)。
50%待验证位置感知的提示注入检测是一种有价值的纵深防御思路,但不是银弹。
50%待验证源代码字段(source)中的注入载荷与工具描述中的载荷一样能到达指令路径,因为源代码可能被编译、求值或执行。
50%待验证当注入信号出现在非结果承载字段(如 description、name、source)时,attest 将严重性升级为 critical,并重命名以标明位置(例如 injection_in_data_field:description)。
50%待验证在结果承载字段(如 content)中,同一注入句子保持基础严重性 high。
50%待验证attest 的检测基于正则表达式签名,例如 ignore\s+(all\s+)?(previous|prior|above|earlier)\s+instructions?。
50%待验证位置规则只调节已识别短语的严重性,不能识别未覆盖的变体,例如 'disregard the prior context' 无法被检测。
50%待验证attest 的字段角色推断依赖于字段命名约定,攻击者控制包装器时可以把结果字段命名为 description,规则能发出正确信号但不能让输入变得可信。
50%待验证attest 是一个开源工具,在四层检查工件:形式和空、提示注入形状、来源签名和权限。
50%