2.3 KiB
2.3 KiB
PR 安全审查矩阵
安全检查不是“看到 security 标签才执行”的附加项。五个维护类 Skill 都要先根据改动文件和数据流判断是否命中以下类别;无法验证时标记为 not_run,不能直接判定安全通过。
| 类别 | 重点信号 | 最低验证 | 默认级别 |
|---|---|---|---|
| 凭据泄露 | token、密码、私钥、.env、日志回显 |
扫描 diff、配置、测试 fixture 和日志;确认脱敏 | blocking |
| 命令注入 | shell 拼接、exec、用户可控参数进入命令 |
使用带空格、引号、shell 元字符的输入测试 | blocking |
| 路径遍历 | 文件名、压缩包、下载地址来自用户或远端 | 验证 ..、绝对路径、符号链接和跨平台分隔符 |
high |
| 注入 | SQL、模板、Markdown、HTML、JSON 拼接 | 正常值、边界值、恶意值和转义结果 | high |
| SSRF / 外连 | URL、webhook、重定向、代理配置 | 限制协议、主机、重定向和内网地址 | high |
| 认证授权 | token 作用域、项目权限、管理员动作 | 未登录、无权、越权和过期 token | blocking |
| 不安全反序列化 | 任意类型、远端 JSON/YAML、对象恢复 | 不可信输入和异常输入,确认无任意代码执行 | blocking |
| 依赖供应链 | 新增依赖、安装脚本、下载二进制 | 锁定版本、核对来源和最小权限 | high |
| 敏感信息暴露 | PR 报告、错误、调试、缓存包含用户数据 | 检查 stdout、文件、JSON 和日志 | high |
| 资源耗尽 | 无界分页、超大 diff、并发、重试 | 空数据、最大数据、超时和取消 | medium/high |
| 加密与传输 | TLS、证书校验、随机数、哈希用途 | 禁止跳过证书校验,确认算法和错误处理 | high |
证据规则
每个命中的安全项至少记录:category、status、evidence、test、owner。代码位置使用文件和行号;行为验证使用实际命令;平台能力不确定时标记 unverified_platform_behavior。
自动化边界
静态关键词命中只能生成候选项,不能单独证明漏洞。动态验证不能覆盖真实凭据或生产写操作;默认使用脱敏 fixture、临时 worktree、--dry-run 和最小权限 token。发现疑似真实密钥时不要复制到报告,报告只保留类型、位置和轮换建议。