TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1645 4
agent-harness-defense v0.2.0:双格IFC拦截代理权限提升

agent-harness-defense 是一个面向 LLM 编码代理的准入层,通过 plan-first 信息流策略阻止指令权限提升。它并非运行时防火墙,而是一个库:在变更应用前调用 run_admission() 传入代理提议操作的显式描述,返回放行或拒绝的裁决及理由。

决策核心是双格信息流控制引擎,每个数据带两个标签:机密性(是否秘密)与完整性(是否可信)。当动作依赖低完整性数据(如仓库 README),即使内容不含任何触发词,动作也会继承不信任——这正是它能捕获 v0.1 启发式方法(触发短语)漏掉的提示注入的原因。v0.1 启发式保留为备份信号。

引擎机制:evaluate_plan 对 depends_on 图做分量格连接,机密性取最大值,完整性取最小值——UNTRUSTED 值与 SYSTEM 意图连接后仍为 UNTRUSTED,阻断升级规则。读取按路径分类:仓库文本产生 UNTRUSTED 完整性,系统文件产生 SYSTEM。依赖不可信读取的写入被拒绝(no-upgrade),env.SECRET 写入公共接收器被拒绝(no-downgrade)。

审计发现并修复了一个真实缺陷:_step_initial_label 对每次读取都返回 (PUBLIC, SYSTEM),导致传播仅靠 value_source 中的魔法前缀工作。修复后由 _classify_read_path 从路径派生读取标签,并添加回归测试。

验证结果:pytest 23 项通过(0.29s),ruff 与 bandit 检查干净。评估套件覆盖 3 个场景(README 注入、CLAUDE.md 范围扩展、自有秘密泄露场景),每个场景都有测试证明 v0.1 会放行而新引擎会拦截。


需明确其边界:不自动提取计划,Plan 必须由调用方显式提供;传播基于声明而非真实内容;评估语料仅 3 个场景且均为英文直白攻击文本;无真实跨迭代持久化,也从未在真实代理或生产流量上运行。作者定位为经严格审计的研究原型,而非开箱即用的生产防御。

仓库:GitHub

#开发者 #工具 #agentharnessdefense #LLM #安全 #IFC #提示注入 #AGPL #Python
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  2. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  3. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  4. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  5. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
  6. Sep 24, 2026RPI 实战:用 Claude Code 子代理拆分研发流程 一个约十几个产品的小团队(helpdesk、MES、邮件托管、高校 AI 助手)在 monorepo 里日常使用 Cl…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →