SuperAPI AI 工具集

security-review

安全与审计

查看项目

更新于 10-15 14:03

技能介绍

用途

Security Review 用于对应用程序、基础设施或特定功能进行安全评估。当用户需要威胁建模、漏洞审查、认证流程审计、依赖扫描,或提出“这是否安全”“帮我审查……”等需求时适用。典型触发场景包括:应用、基础设施或特定功能的安全审计;发布前的威胁模型或渗透测试准备审查;依赖漏洞告警的修复指导;处理敏感数据(PII、支付、健康信息)时的验证;代码审计、密钥检测或合规评估。

所需上下文

从 startup-context 获取技术栈、部署环境、合规要求、数据类型。同时需询问:

  • 范围——完整应用、功能、认证系统、单个 PR、基础设施或云环境
  • 数据类型——处理的 PII、支付、健康、凭据或其他敏感数据
  • 合规要求——SOC 2、HIPAA、PCI-DSS、GDPR、ISO 27001
  • 授权——在任何主动测试前确认存在书面授权

工作流程

遵循五阶段方法论。自动化扫描先于人工审查。主动测试前必须验证授权。

  1. 范围定义——建立攻击面边界,识别所有组件、数据流和信任边界,确认授权,定义范围内与范围外。
  2. 自动化扫描——在人工审查前执行工具:SAST 使用 semgrep --config=auto 扫描代码库;依赖审计使用 npm audit / pip-audit / govulncheck / trivy fs .;密钥检测扫描源码中硬编码凭据、API 密钥、令牌;容器扫描对容器化部署使用 trivy image。记录所有自动化发现,供下一阶段验证。
  3. 人工代码审查——进行自动化工具遗漏的上下文分析:端到端追踪认证与授权流程;业务逻辑漏洞(价格操纵、竞态条件、权限提升);敏感信息数据流分析(PII 在何处进入、传输和持久化);对每个组件和数据流进行 STRIDE 威胁建模。
  4. 验证与分类——测试发现并分配严重等级:验证自动化发现以消除误报;分配 CVSS v3.1 评分,结合上下文评估可利用性;按业务影响而非仅技术严重性分类。
  5. 报告——记录漏洞的精确位置、业务影响和纠正措施,交付按优先级排序的修复路线图。

输出格式

报告包含:执行摘要(整体风险态势、主要发现数量、业务影响摘要);STRIDE 威胁模型表(威胁、类别、资产、影响、可能性、风险);发现列表(按 Critical / High / Medium / Low 分级,含编号、标题、CVSS 评分、文件:行号、描述、业务影响、带代码示例的修复建议);认证流程评估(端到端追踪认证与授权并列出发现);依赖漏洞表(包、当前版本、CVSS、修复版本、上下文中是否可利用);修复路线图(按优先级排序的行动清单与时间线)。

框架与最佳实践

STRIDE 威胁建模应用于每个组件和数据流:

  • Spoofing(欺骗)——攻击者能否伪造令牌或冒充用户?API 密钥是否可轮换?
  • Tampering(篡改)——请求能否在传输中被修改?Webhook 是否签名?数据完整性是否验证?
  • Repudiation(抵赖)——关键操作是否记录日志?日志是否防篡改?
  • Information Disclosure(信息泄露)——错误响应中是否有堆栈跟踪?PII 在静态和传输中是否加密?
  • Denial of Service(拒绝服务)——是否有速率限制?单个用户能否耗尽所有资源?
  • Elevation of Privilege(权限提升)——普通用户能否访问管理功能?角色检查是否在服务端?

OWASP Top 10 检查:注入(参数化 SQL/NoSQL,检查 OS 命令、SSTI、LDAP);失效认证(argon2id/bcrypt、会话超时、登录速率限制);数据暴露(TLS 1.2+、静态 PII 加密、HSTS 头);XXE(禁用 DTD 处理,优先 JSON 而非 XML);访问控制(每个端点服务端授权、无 IDOR、CORS 白名单);配置错误(关闭调试模式、移除默认凭据、存在安全头);XSS(输出编码、内容安全策略、HTTP-only Cookie);反序列化(验证 schema、优先 JSON、拒绝不可信序列化对象);易受攻击依赖(npm audit、pip-audit、trivy、govulncheck);日志(认证事件、管理操作、访问违规记录并告警)。

CVSS v3.1 评分指南:Critical(9.0-10.0)RCE、认证绕过、完整数据泄露、系统完全沦陷;High(7.0-8.9)权限提升、重大数据暴露、SSRF 到内部服务;Medium(4.0-6.9)存储型 XSS、CSRF、有限 IDOR、信息泄露;Low(0.1-3.9)缺少安全头、轻微信息泄露、详细错误。

认证流程清单:密码使用 argon2id 或 bcrypt(cost >= 10);JWT 使用 15 分钟访问令牌、7 天刷新令牌并在使用时轮换;认证端点速率限制 5 次尝试 / 15 分钟;密码更改时使会话失效;OAuth state 参数验证、API 密钥限定范围;管理员账户强制 MFA;密码重置令牌一次性且有时限。

扫描工具:SAST 使用 semgrep --config=auto(所有技术栈)、bandit(Python)、gosec(Go)、eslint-plugin-security(Node);依赖使用 npm audit / pip-audit / govulncheck / trivy fs .;容器使用 trivy image。

强制约束

  • 未经明确书面授权,绝不测试生产环境
  • 绝不超出概念验证演示范围利用漏洞
  • 始终先自动化扫描后人工审查

修复优先级

  • 可主动利用 + 关键数据——立即
  • 认证/授权绕过——24 小时
  • 注入——48 小时
  • 数据暴露 / 关键 CVE——1 周
  • 配置加固——2 周
  • 纵深防御——下个迭代

相关技能

  • code-review——当发现需要代码级修复和审查时衔接
  • architecture-design——当发现揭示架构安全缺陷时衔接
  • soc2-prep——当审查属于合规准备的一部分时衔接

示例

示例提示:“审查我们用户认证系统的安全性。我们使用 JWT 和 Express。”

良好输出片段:

Security Review: JWT Authentication System

Executive Summary

Risk posture: Critical. Hardcoded JWT secret and non-expiring tokens.

Findings

Critical (CVSS 9.8)

  • [SEC-1] Hardcoded JWT secret — auth/config.js:3 — Secret is "supersecret123". Attacker can forge any token. Fix: Move to env var, generate with openssl rand -base64 64.

Critical (CVSS 9.1)

  • [SEC-2] Tokens never expire — auth/jwt.js:12 — No expiresIn. Fix: Set expiresIn: '15m', implement refresh token rotation.