得物以业务Skills驱动网关路由安全审计
概述
面对平台 API 规模扩张,安全审计原有抽样模式仅覆盖约 20%,且新接口评估时效性不足、检测规则难以沉淀。团队构建网关路由 AI 安全审计系统,采用「通用 Agent + 业务 Skill」分层设计、增量日检/存量月检:常规代码负责任务调度与结果存储,所有 AI 分析由超级 Agent 完成,业务逻辑全部沉淀在 Skill 中以便快速迭代,并可通过 --resume 恢复会话现场使分析过程可回溯可验证;设计上明确最大化复用 Claude Code/OpenCode 的代码理解、推理分析、上下文管理与会话恢复能力。Skill 目录 gateway-route-vuln-analyzer 含 SKILL.md(检测决策树 Step 1-4、危害评估规则、报告输出模板)、references(unauthorized_patterns.md 越权模式库、logic_flaws.md 逻辑漏洞指南、data_classification.md 数据敏感性分级、report_template.md 报告模板)与 scripts/mcpcli-gateway(CLI 入口,用于 Token 优化)。越权检测分四步并设两级短路退出:路由配置检查(auth_config.public 与 required_scopes,配置无异常则跳过后续审计)、登录态识别(遍历调用链找认证节点,标准认证路由直接信任并跳过代码审计)、代码审计三维检测(权限注解 @PreAuthorize、用户 ID 来自登录态还是请求参数、所有权校验是 DB 过滤还是代码显式校验)、精细化危害评估(区分越权读取按数据敏感性、越权操作按利益流向,输出风险等级与修复建议;数据分级依据《数据安全法》《网络安全法》相关要求,由 AI Agent 基于变量名、字段类型、接口定义等代码特征做技术推断)。运行模式为 AI 批量筛查 + 人工深度验证的人机协同,产出含路由信息、接口功能分析、调用链、漏洞详情、分析置信度、局限性、二方包依赖、涉及微服务(含 commit_id 与 project_path)的标准化报告。正文称已通过多个高危外网漏洞的实际发现验证 AI 在代码审计场景的有效性,并实现 100% 路由覆盖与分钟级检测响应。 团队通过分析多个会话日志定位 Token 消耗热点后做三层优化:一是 MCP→CLI 转换(mcp2cli),把 MCP 工具暴露为 CLI 命令,调用链由「Claude → MCP Server → 工具执行」改为「Claude → Bash → mcp2cli → 工具执行」,避免每次会话加载完整 MCP 上下文,节省 61% Token;二是工具返回值优化,针对无参数调用返回完整文件(最大 1.47MB、约 500K tokens)的问题,为 gitlab_file 增加精准参数实现按需提取,v2 相对 v1 再节省 88%;三是 Early-Exit 模式,对标准认证路由直接信任、跳过冗余代码审计,标准认证场景节省 50-70%;此外把返回格式改为对 AI 更友好的 YAML,降低解析成本。三层合计整体 Token 成本降幅 95%+。成本侧:单条路由审计成本 ¥0.23,某大型业务集群全量扫描一轮不到 1 万元,正文据此判断成本完全可控。 模型选型围绕准确率与召回率建立决策矩阵,最终选型为在召回率 100% 的候选模型中以更低单位成本实现可接受准确率的 qwen3.5-plus,作为批量场景最优解;团队同时说明两点局限:结论基于独立手工标注测试集(100+ 样本)、与生产告警数据相互隔离,仅作基线参考;且大模型迭代快,未纳入评测时点之后的新模型。误报治理方面,基于已复核告警的根因分析给出四类改进:强化信任边界追踪(解决 35% 误报)——AI 发现中间层未校验就下结论,需在 Skill 中加规则「发现校验就停止、发现缺失就继续,必须追踪到信任边界」;上下游参数一致性校验(解决 25% 误报)——分析 Controller 层 Request 是否含资源 ID,无资源 ID 字段则判定为仅操作当前用户数据并跳过越权分析;Dubbo 配置信息补充(解决 10% 误报)——引入 Open 网关 Dubbo 配置,新增 MCP 工具 get_dubbo_config 获取路由的 Dubbo 调用配置与参数映射;代码内响应体价值预判优化(解决 10% 误报)——细化规则,把纯状态码返回、通用配置信息、流程节点信息列为不敏感可忽略。方法论上还沉淀了场景化分层模型选型:批量例行场景用高性价比模型、核心关键场景启用高精度模型。