Skip to content

MITM 审计代理

cicy-code 给每个 agent 的出站 HTTP(S) 挂了一层本地 MITM 代理(api/mgr/mitm/),用来按 agent 身份拦截、审计、必要时熔断它的 AI/网络流量。

怎么接进去

  • MITM 监听 127.0.0.1:9001;
  • 每个 agent 的 pane shell 里,.cicy_tmux.conf 会导出 HTTP_PROXY / HTTPS_PROXY / ALL_PROXY(大小写全套)指向它 —— 于是 agent 的所有 HTTP(S) 出站都过 MITM;
  • agent 身份通过代理鉴权带进去(用户名 = agent id,如 w-1013),所以每条流量都能挂到具体 agent;
  • 开关 use_mitm(agent_config,默认 ),可按 agent 关。

组件(api/mgr/mitm/)

文件作用
ca.go本地 CA;/api/mitm/ca 供 install-ca 取 PEM
tls_terminate.goTLS 终止(解密后才能审计内容)
http_connect_server.go / socks5_server.goHTTP CONNECT / SOCKS5 入口
audit_hook.go把请求/响应喂给审计管线
breaker.go熔断 / 策略拦截(按 BreakerDecision)
consent.go敏感操作同意
identity.go从代理凭据解析 agent 身份

为什么要 MITM

  • 审计:解密后能看到「哪个 agent、调了哪个模型/接口、多少 token、多少钱、哪个 conversation」;
  • 熔断/策略:命中策略可当场拦截(见 审计策略);
  • 本地网关 配合:网关管「怎么转发+记账」,MITM 管「按 agent 看见全部流量+可拦」。

服务进程绝不走 agent MITM

cicy-code 服务本身的出站绝不能经某 agent 的 MITM(否则网关上游调用会被自己的 MITM 再拦一次,按那个 agent 双重审计、污染 usage 与 conversation_id)。启动时会主动 strip 掉泄漏进来的 loopback agent-MITM 代理 env(sanitizeAgentMitmProxyEnv)。

CA 安装

审计 HTTPS 需要客户端信任 MITM 的 CA。通过 /api/mitm/ca 取 CA、用 install-ca 装进系统/运行时信任库(容器里由 boot 处理)。

part of CiCy AI · Apache-2.0