一条流水线:读代码、打穿 Agent、拿证据
TrustShell 用静态 + 动态两条腿测 AI Agent:静态读码找出可疑路径;实战红队判定哪些真能被利用;真假的裁判是「利用成没成功」——不是模型投票。这是整套系统。
- 1
暴露面扫描
免费 · 漏斗零依赖扫描器探测暴露面——开放端口、TLS、未授权端点、跨源劫持、明文凭证。大路货检查,当场 A–D。
→ 先把明坑扫掉。 - 2
读代码
静态我们读 Agent 源码,画出攻击面、标出可疑路径——不可信内容在哪流进危险落点、哪道防护靠签名、哪里根本没检查。
→ 说明:去哪儿打。 - 3
打穿运行中的 Agent
动态 · 深度AI 对手在一次性环境里,用九类攻击(RT-1…RT-9)真打运行中的 Agent:注入、记忆投毒、沙箱逃逸、工具/动作滥用、通道注入、供应链。
→ 判定:什么真能被利用。 - 4
静态 × 动态实证
互证把两侧对起来。一个发现只有在利用真的成功时才算确认;静态假阳性是被一次真实攻击打掉的——不是被模型投票打掉的。每个确认的漏洞都回溯到具体代码。
→ 裁判是真打穿。 - 5
证据与评级
证据每个发现同时背靠代码路径与真实利用,附复现步骤与根因。加权评级 A–D + 致命项一票否决。
→ 立得住,不是空口。 - 6
认证 → 保险
轨道证据变成一份政企采购、投标、或保险公司敢认的认证。审查产出的,正是信任赖以运转的证据。
→ 红队在这里变成生意。
纯代码验证器只能「猜」漏洞真不真,所以只好靠多模型投票去压假阳性;纯红队知道「坏了」却不知道「为什么坏」。我们两边都跑、再对起来:静态收窄「去哪儿打」——更便宜、覆盖更广;动态确认「什么真能利用」,并用一次真实利用打掉假阳性;互证把每个确认的漏洞绑到具体代码,于是你拿到的是根因和波及范围,不是一句吓人的话。这个「用真打穿来裁判、而非投票」的机制,正是纯验证器结构上给不了的。
静态一侧是开源的、零依赖,你自己就能跑——它标出候选路径,交给动态红队证实(候选 ≠ 漏洞):
python3 static_scan.py --source /path/to/agent # static: candidate paths python3 scan.py --target http://127.0.0.1:3000 # surface scan (net/auth)
只在一次性环境里跑
每一次测试都在抛弃式沙箱里跑——云开发容器或 VM——绝不碰你的生产、也不碰日常机器。既然我们是故意让 Agent 犯错,它就绝不该碰到任何真实的东西。
我们绝不碰你的钥匙
你在自己的环境里配置模型/提供商凭证;我们只在运行时按引用使用。钥匙的值不会被我们看到、打印或存储。
拿证据,不拿嘴说
一个发现必须带复现才上报——确认级的还要带可用的利用。假阳性会被明确证伪,而不是含糊带过。真假的裁判,是攻击成没成功。
负责任披露
无害的证明标记,不在真实目标上做破坏性动作或数据外泄。我们公开方法,不公开可直接使用的攻击——而且公道:Agent 防得好,我们就说它好。