最近在想一个很现实的问题:团队把闭源 Coding Agent 接到本地 Qwen / GLM / DeepSeek ,或者允许它读内网私有仓库时,怎么验证这个看不到源码的二进制有没有探测不该碰的地址?
每次更新都重新反编译当然可以,但很难变成日常检查。我这次拉了自己的 CanaryProbe 仓库重新跑了一遍:源码测试是 56 passed ;随后启动本地 DNS/TCP 传感器,用内置模拟器解析一个刚生成的诱饵域名,audit.jsonl 记录到一条 TRIPPED ,生成的 HMAC 报告再用 canaryprobe verify 验证通过。
这个思路不是“监控所有流量”,而是种一个正常代码路径绝不会碰的值:诱饵主机名、连接地址或假凭证。如果闭源程序去解析、连接或携带它,事件本身就值得报警。它比每次只看二进制更适合做持续回归,也比普通出口白名单多回答一个问题:这个程序为什么会知道并探测一个它本不该碰的值?
边界也必须说清楚:TRIPPED 是强阳性证据,但 CLEAN 不是“绝无外联”的证明。没有触发可能只是诱饵没覆盖到真实路径、DNS 没有经过传感器,或者程序换了别的目的地。因此我的做法会是四层组合:
1. 出口 deny-by-default / allowlist 负责真正阻断;
2. 系统或网关日志记录实际连接;
3. 诱饵探针抓“本不该知道却去碰了”的行为;
4. 高风险版本再做针对性的二进制检查。
仓库和复现步骤: https://github.com/SuperMarioYL/canaryprobe
你们在内网或 air-gap 环境里跑闭源 Agent 时,现在主要靠哪一层?有没有把诱饵做成版本升级前后的固定回归用例?
每次更新都重新反编译当然可以,但很难变成日常检查。我这次拉了自己的 CanaryProbe 仓库重新跑了一遍:源码测试是 56 passed ;随后启动本地 DNS/TCP 传感器,用内置模拟器解析一个刚生成的诱饵域名,audit.jsonl 记录到一条 TRIPPED ,生成的 HMAC 报告再用 canaryprobe verify 验证通过。
这个思路不是“监控所有流量”,而是种一个正常代码路径绝不会碰的值:诱饵主机名、连接地址或假凭证。如果闭源程序去解析、连接或携带它,事件本身就值得报警。它比每次只看二进制更适合做持续回归,也比普通出口白名单多回答一个问题:这个程序为什么会知道并探测一个它本不该碰的值?
边界也必须说清楚:TRIPPED 是强阳性证据,但 CLEAN 不是“绝无外联”的证明。没有触发可能只是诱饵没覆盖到真实路径、DNS 没有经过传感器,或者程序换了别的目的地。因此我的做法会是四层组合:
1. 出口 deny-by-default / allowlist 负责真正阻断;
2. 系统或网关日志记录实际连接;
3. 诱饵探针抓“本不该知道却去碰了”的行为;
4. 高风险版本再做针对性的二进制检查。
仓库和复现步骤: https://github.com/SuperMarioYL/canaryprobe
你们在内网或 air-gap 环境里跑闭源 Agent 时,现在主要靠哪一层?有没有把诱饵做成版本升级前后的固定回归用例?