covo-agent 之前只有两种模式:general 和 code。身边做安全的朋友们还有用户们经常问什么时候能增加一个授权测试功能,既然大家的需求这么强烈,那就做上去吧,这就是 cyber 模式的由来。
cyber 模式要做事情是在授权范围内做安全测试,产出有证据支撑的报告。进入方式有三种:交互界面里切换模式;命令行带参数无头运行;挂到定时任务上,按固定周期对资产做例行检查。
一次安全测试是怎么跑起来的
先定范围。 开始前,主 agent 会在扫描配置里登记本次授权的主机,再确定测试深度:快速、标准,或者带代码审计的深度测试。目标项目在本地的话,会自动按白盒方式处理,把代码信息一并纳入参考;深度测试收尾前,还要确认几项基础检查真实跑过。
再分工。 主 agent 承担编排,具体操作派给不同角色的子代理,一共十种:踩点的收集主机、端口、子域名信息;验证的复核可疑点、固定证据;再往深还有利用、提权、横向移动等角色,收尾另有清理和报告。底层用的多是 nmap、subfinder 这类常见工具,我为它们准备了九十多个预定义配方,每个配方可用的参数都提前固定,审批和复查时有据可查。
边测边记。 发现一条线索、发出一次请求、测完一个面,都写进工作目录下的台账。测试结束的报告会把情况列全:哪些面测过、哪些没测、哪些结论有证据、哪些只是线索。被跳过或没做完的部分也会如实保留——这份报告首先服务于操作者做判断,报喜不报忧对谁都没有帮助。
几个设计上的考虑
台账外置。 模型的上下文在长会话里会被压缩,细节难免损失,而安全测试恰恰依赖“这个响应当时是怎么拿到的”这类细节。所以我把台账全部写在项目目录里,上下文怎么压缩都影响不到它,相当于给 agent 配了一本不会丢的工作台账。结论按编号引用证据,复盘时逐条回溯;账本容量触顶时,被结论引用过的证据优先保留。
结论有门槛。 模型给出的结论需要可复核,我把“已确认”设成了硬条件:必须附上复现步骤或对应的请求证据,缺了系统就拒绝保存。收尾时还会核对各角色的声明和台账里的实际记录,对不上的地方写进覆盖缺口一栏。这个检查的意义在于,报告里“没测到”和“测到了”同样重要。
产出要能接流程。 测试结果通常要进团队已有的工具链,所以报告同时提供 Markdown、CSV 和 SARIF 三种格式;命令行运行有退出码约定,有确认的发现返回 1,报告不完整返回 2。接入 CI 之后,可以按结果决定要不要卡发布。
将约束做成机器闸门
这类工具对权限比较敏感,我的原则是把关键约束做成系统层的闸门,不指望模型自觉:白名单之外的主机访问不了;主动扫描要经过人工审批;重放请求每天最多两百次;验证请求走的网络层,会在目标地址落入内网网段时直接中断连接。
这些限制由系统执行,模型绕不开。授权由人判断,约束由机器执行——这是整个模式的基础假设。
写在最后
做授权测试的安全从业者,可以把踩点、取证这类重复工作交给它,精力留给需要经验判断的部分;开发者可以在上线前对自家资产做例行检查,报告直接进流水线;研究 AI Agent 的朋友,也可以把它当作多角色编排、证据管理的一个参考。
这个模式还在迭代,报告的细致程度和工具配方的覆盖面都有提升空间,项目开源、AGPL 协议,欢迎提 issue 和建议。