SuperAPI AI 工具集

security-review

安全与审计

查看项目

更新于 10-16 07:46

技能介绍

用途

该技能用于对代码变更集进行对抗性安全审计。其核心理念是:威胁建模是为攻击者生成假设——像攻击者一样走查变更,找出不可信输入从何处进入、跨越了哪条信任边界、在另一侧获得了什么。每一条未被审计的路径都是攻击者的免费一步。

适用与不适用场景

适用:新增外部暴露面(HTTP 路由、RPC 方法、文件上传);认证/授权变更;对不可信输入的反序列化或解析;新增依赖或大版本升级;加密相关变更;面向公众服务的发布前审查;事故复盘。

不适用:无信任边界变化的内部重构;纯性能优化;仅文档变更;仅内部使用的实验性代码。

主要能力

STRIDE 威胁模型

对变更涉及的每个组件应用以下提问模板:

  • Spoofing(仿冒):主体是谁?身份如何证明?凭证能否被伪造、重放或窃取?是否强制 MFA/双向认证?
  • Tampering(篡改):哪些输入跨越信任边界?是否按显式 schema(Zod/Pydantic/serde)校验?消息是否受完整性保护(HMAC/签名/TLS)?
  • Repudiation(抵赖):安全相关操作是否记录操作者、时间戳与结果?日志是否仅追加/防篡改?
  • Information Disclosure(信息泄露):错误路径、日志、遥测中返回哪些数据?PII/密钥是否被序列化?是否处理时序侧信道(常量时间比较)?
  • Denial of Service(拒绝服务):输入是否有界(大小、数量、深度)?解析是否限制资源(zip 炸弹、billion-laughs、ReDoS)?外部调用是否限流?
  • Elevation of Privilege(权限提升):新代码以何种权限执行?是否遵循最小权限?输入能否改变权限(路径穿越、SQL 注入、反序列化 gadget)?

对每个“是”或“不明确”的回答,记录一条带严重级别与修复责任人的发现。

OWASP Top 10(2021)走查

  • 失效的访问控制:用 git grep 定位授权相关代码并追踪策略。
  • 加密失败:用 git grep -E 查找弱原语(MD5、SHA1、DES、Random() 等),并补充各生态模式(Math.random、secrets.choice、Mersenne 常量)。
  • 注入:用 ast-grep 模式查找未参数化查询、shell 拼接、模板求值。
  • 不安全设计:威胁模型走查,交叉核对 STRIDE。
  • 安全配置错误:TLS/CORS/CSP/cookie 标志/调试开关。
  • 易受攻击与过时组件:按语言族使用 CVE 扫描器。
  • 身份识别与认证失败:token TTL、刷新、会话固定、MFA。
  • 软件与数据完整性失败:lockfile 固定、签名验证产物、CI 溯源。
  • 安全日志与监控失败:审计日志覆盖;认证失败/权限提升告警。
  • 服务端请求伪造:出站允许列表;URL 输入的 SSRF 防护。

并行依赖审计工具

按语言族提供 CVE 扫描、密钥/历史扫描与 SBOM 生成工具:

  • Rust:cargo audit、cargo deny check advisories;gitleaks、trufflehog;cargo cyclonedx、syft
  • Python:pip-audit、safety check;gitleaks、detect-secrets;cyclonedx-py、syft
  • JavaScript/TypeScript:npm audit、pnpm audit、bun audit;gitleaks、trufflehog;cyclonedx-bom、syft
  • Go:govulncheck、nancy;gitleaks、trufflehog;cyclonedx-gomod、syft
  • Java/Kotlin:OWASP Dependency-Check、gradle dependencyCheckAnalyze;gitleaks、trufflehog;CycloneDX Gradle/Maven、syft
  • OCaml:opam audit、opam-repository advisory feed;gitleaks、detect-secrets;syft(文件系统)

工具使用约定:用 fd -e <ext>(而非 find);用 git grep -n -F 'literal'(而非 grep);用 bat -P -p -n(而非 cat)。

使用方式

将本技能应用于代码变更集,按上述 STRIDE 模板与 OWASP 清单逐项走查,结合对应语言族的依赖审计工具执行 CVE 扫描、密钥扫描与 SBOM 生成,并对每个发现记录严重级别与修复责任人。

反模式(应避免)

  • 遗漏式允许列表:把“没有明显问题”当作“安全”。
  • 加密即兴创作:手写加密原语。
  • 信任客户端:仅在客户端校验。
  • 记录密钥:日志中出现 token、PII、会话 cookie。
  • 默认放行 ACL:授权检查按需开启。
  • 魔法字符串配置:密钥写在源码/环境文件中。
  • 过时 SBOM:依赖快照陈旧。
  • 跳过威胁模型:未命名资产/参与者/边界就直接套清单。

约束规则

  • 默认拒绝。
  • 在信任边界校验——对每个输入做 schema 校验。
  • 绝不自行实现加密。
  • 源码中无密钥——仅用 vault;通过 gitleaks 强制执行。
  • 固定并验证——lockfile 入库,强制完整性哈希。
  • 记录安全事件——每次认证/授权结果。
  • 严重级别是契约——Critical/High 阻止合并。

限制

资料未提供该技能的具体安装命令、运行环境要求、支持的平台版本、收费方式或性能指标,这些信息暂未提供。