做了一个给 AI 智能体做实时安全拦截的开源工具,欢迎来喷 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
one121121

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

  •  
  •   one121121 15 天前 1222 次点击
    起因是我在用 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  
       15 天前
    我记得这类 agent 软件支持设置为每一步操作都经过 approve 的吧
    libii
        2
    libii  
       14 天前
    思路跟我开发的 github.com/kocort/kocort 很类似哦,策略工具可以直接改用一个本地模型做拦截
    one121121
        3
    one121121  
    OP
       14 天前
    @beyondstars 对,他们确实有逐步审批模式,但有两个场景它处理不了:一是自动化流水线里没有人在盯着批准;二是单步看起来完全正常、人也会批准,但跨多步组合起来是攻击链。AgentTrust 主要解决的是这两块,尤其是第二个语义层面的多步风险识别,纯审批模式识别不出来。
    one121121
        4
    one121121  
    OP
       14 天前
    @libii 去看了一下,确实有不少相似的地方!我这边目前侧重的是规则引擎 + 语言模型兜底的混合判断,以及跨会话的攻击链检测。你用本地模型做拦截这个思路很有意思,延迟和隐私方面会有优势。有机会可以交流一下。
    blueskeay
        5
    blueskeay  
       14 天前
    语言模型兜底的情况下有对缓存做什么处理吗
    比如上次请求体是 100K ,这次是 110K 只有 10K 的新 token ,这个情况能处理吗
    one121121
        6
    one121121  
    OP
       14 天前
    @blueskeay 目前没有专门针对这个场景做缓存优化,AgentTrust 本身是无状态的拦截层,每次请求独立处理。
    你说的这个场景如果接入了 Anthropic 或 OpenAI 的提示词缓存,缓存命中的部分理论上不重复计费,但 AgentTrust 这层目前没有感知缓存状态的机制,也没有做增量 token 的差分识别。
    这其实是个值得做的方向 感谢提出这个问题!!!
    one121121
        7
    one121121  
    OP
       14 天前
    @blueskeay 刚针对这个场景做了更新,现在支持增量感知会对比前后两次请求体,只对新增的 token 部分做安全评估,避免重复分析整个上下文。欢迎试试看,有问题随时反馈。
    vt2rexm
        8
    vt2rexm  
       14 天前
    大意是用 AI 去审核 AI 吗?
    对于有着能够篡改/攻破 claude code 能力的威胁模型来说大概率也是能够篡改/攻破你的这个产品的。
    one121121
        9
    one121121 nbsp;
    OP
       14 天前
    @vt2rexm 这个问题问到点上了。用语言模型兜底确实存在被对抗样本绕过的风险,这不是能完全否认的。
    但当前架构的设计思路是分层防御:规则引擎是第一道关,不依赖语言模型,纯模式匹配,攻击者没办法用提示词注入绕过它;语言模型只在规则判断不确定的模糊地带才介入,不是唯一防线。
    你说的场景也正是这个方向下一步需要研究的核心问题之一。目前没有完美答案,这也是为什么我把它定位成研究框架而不是生产级安全产品。如果你对这块有想法欢迎开 issue 讨论。
    jones2000
        10
    jones2000  
       14 天前
    这种只能从系统底层去 hook 截获, 上层的拦截没什么用。
    比如配置好哪些系统的 API 允许调用, 或 API 里面的接口里面的参数在允许阈值内可以调用。直接 hook 系统 API , 如 fopen, fwrite 等等。
    如果是往外发送的数据, 本机网络层截获数据,脱敏以后再发送。
    找一个开源的杀毒软件,改改应该就可以。
    one121121
        11
    one121121  
    OP
       14 天前
    @jones2000 我的项目的价值是在不需要 root 权限、不修改系统的前提下,在语义层面理解操作意图,两者是不同层次的防御,可以互补,不是非此即彼。你说的系统层 hook 方向确实更底层更彻底,这是防御纵深里的另一层。但是我的项目的定位不是替代它,而是在应用语义层做补充系统调用层看不出「读取 .env 然后编码发送」是一条攻击链,但语义层可以。两层结合才是完整的防御体系。你提的网络层脱敏思路也很有意思,后续可以考虑作为一个集成方向。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6025 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 85ms UTC 02:01 PVG 10:01 LAX 19:01 JFK 22:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86