V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
one121121
V2EX  ›  程序员

做了一个给 AI 智能体做实时安全拦截的开源工具,欢迎来喷

  •  
  •   one121121 · 1 天前 · 732 次点击
    起因是我在用 Claude Code 的时候,突然意识到这东西有完整权限在我电脑上跑,我完全不知道它下一步会干什么。

    现在 Claude Code 、Cursor 这类智能体工具越来越能干,能直接操作文件、跑脚本、调接口。但出事了怎么办?强制删除系统文件跑了,密钥泄了,一步步看起来没问题的操作组合成了数据外泄链路……

    然后就做了这个: https://github.com/chenglin1112/AgentTrust

    简单说就是在智能体和工具之间加一层保护,每个操作执行前先过安全检查,拦得住就拦,拦不确定就让语言模型来判断,判断有风险就锁住,顺带告诉你怎么改。

    比较有意思的功能是攻击链检测——单独看「读取配置文件」没问题,单独看「发请求到外部地址」也没问题,但两步连起来再加个编码操作就是数据外泄,会被识别并拦截。

    现在已经支持协议原生接入,Claude Code 和 Cursor 配置很简单。

    还很早期,测试集是合成数据,生产环境没验证过。但如果你在跑智能体,可以试试,欢迎来找茬。

    Python 3.9 以上,Apache 2.0 协议。
    11 条回复    2026-04-07 02:30:39 +08:00
    beyondstars
        1
    beyondstars  
       19 小时 57 分钟前
    我记得这类 agent 软件支持设置为每一步操作都经过 approve 的吧
    libii
        2
    libii  
       16 小时 27 分钟前
    思路跟我开发的 github.com/kocort/kocort 很类似哦,策略工具可以直接改用一个本地模型做拦截
    one121121
        3
    one121121  
    OP
       16 小时 16 分钟前
    @beyondstars 对,他们确实有逐步审批模式,但有两个场景它处理不了:一是自动化流水线里没有人在盯着批准;二是单步看起来完全正常、人也会批准,但跨多步组合起来是攻击链。AgentTrust 主要解决的是这两块,尤其是第二个——语义层面的多步风险识别,纯审批模式识别不出来。
    one121121
        4
    one121121  
    OP
       16 小时 14 分钟前
    @libii 去看了一下,确实有不少相似的地方!我这边目前侧重的是规则引擎 + 语言模型兜底的混合判断,以及跨会话的攻击链检测。你用本地模型做拦截这个思路很有意思,延迟和隐私方面会有优势。有机会可以交流一下。
    blueskeay
        5
    blueskeay  
       15 小时 57 分钟前
    语言模型兜底的情况下有对缓存做什么处理吗
    比如上次请求体是 100K ,这次是 110K 只有 10K 的新 token ,这个情况能处理吗
    one121121
        6
    one121121  
    OP
       15 小时 41 分钟前
    @blueskeay 目前没有专门针对这个场景做缓存优化,AgentTrust 本身是无状态的拦截层,每次请求独立处理。
    你说的这个场景如果接入了 Anthropic 或 OpenAI 的提示词缓存,缓存命中的部分理论上不重复计费,但 AgentTrust 这层目前没有感知缓存状态的机制,也没有做增量 token 的差分识别。
    这其实是个值得做的方向 感谢提出这个问题!!!
    one121121
        7
    one121121  
    OP
       13 小时 48 分钟前
    @blueskeay 刚针对这个场景做了更新,现在支持增量感知——会对比前后两次请求体,只对新增的 token 部分做安全评估,避免重复分析整个上下文。欢迎试试看,有问题随时反馈。
    vt2rexm
        8
    vt2rexm  
       12 小时 56 分钟前
    大意是用 AI 去审核 AI 吗?
    对于有着能够篡改/攻破 claude code 能力的威胁模型来说大概率也是能够篡改/攻破你的这个产品的。
    one121121
        9
    one121121  
    OP
       10 小时 54 分钟前
    @vt2rexm 这个问题问到点上了。用语言模型兜底确实存在被对抗样本绕过的风险,这不是能完全否认的。
    但当前架构的设计思路是分层防御:规则引擎是第一道关,不依赖语言模型,纯模式匹配,攻击者没办法用提示词注入绕过它;语言模型只在规则判断不确定的模糊地带才介入,不是唯一防线。
    你说的场景也正是这个方向下一步需要研究的核心问题之一。目前没有完美答案,这也是为什么我把它定位成研究框架而不是生产级安全产品。如果你对这块有想法欢迎开 issue 讨论。
    jones2000
        10
    jones2000  
       3 小时 35 分钟前
    这种只能从系统底层去 hook 截获, 上层的拦截没什么用。
    比如配置好哪些系统的 API 允许调用, 或 API 里面的接口里面的参数在允许阈值内可以调用。直接 hook 系统 API , 如 fopen, fwrite 等等。
    如果是往外发送的数据, 本机网络层截获数据,脱敏以后再发送。
    找一个开源的杀毒软件,改改应该就可以。
    one121121
        11
    one121121  
    OP
       1 小时 53 分钟前
    @jones2000 我的项目的价值是在不需要 root 权限、不修改系统的前提下,在语义层面理解操作意图,两者是不同层次的防御,可以互补,不是非此即彼。你说的系统层 hook 方向确实更底层更彻底,这是防御纵深里的另一层。但是我的项目的定位不是替代它,而是在应用语义层做补充——系统调用层看不出「读取 .env 然后编码发送」是一条攻击链,但语义层可以。两层结合才是完整的防御体系。你提的网络层脱敏思路也很有意思,后续可以考虑作为一个集成方向。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:24 · PVG 04:24 · LAX 13:24 · JFK 16:24
    ♥ Do have faith in what you're doing.