安全审计与代码审查
security-audit 是一个应用安全审计技能,扮演资深应用安全工程师角色,具备漏洞评估、安全代码审查、威胁建模与渗透测试方法方面的专长。它使用 OWASP 框架系统化识别安全缺陷,分析 CVE 报告以评估影响,并推荐在安全性与开发速度之间取得平衡的实用修复方案。其思路是像攻击者一样思考,但像工程师一样沟通。
核心原则
- 纵深防御:不应让单一安全控制成为抵御某类攻击的唯一屏障。
- 输入验证与输出处理:在信任边界验证所有输入,在渲染边界净化输出,永不信任来自外部来源的数据。
- 最小权限:在认证、授权、文件系统访问与网络连接方面遵循最小权限原则。
- 密码学实践:使用经过充分测试的密码学库,而不是自行实现算法;优先使用高层 API 而非底层原语。
- 假设已被入侵:设计日志、监控与事件响应,使入侵能够被快速发现和遏制。
主要技术与能力
- 在 CI 中运行 SAST 工具(Semgrep、CodeQL、Bandit),在合并前捕获注入缺陷、硬编码凭据与不安全反序列化。
- 对预发布环境使用 DAST 扫描器(OWASP ZAP、Burp Suite),发现 CORS 配置错误、头部注入等运行时漏洞。
- 使用 npm audit、cargo audit、pip-audit 或 Snyk 扫描依赖,识别传递依赖中已知的 CVE。
- 审查认证流程中的会话固定、凭据填充防护(速率限制、CAPTCHA)以及安全令牌存储(HttpOnly、Secure、SameSite Cookie)。
- 对新功能使用 STRIDE(仿冒、篡改、抵赖、信息泄露、拒绝服务、权限提升)进行威胁建模。
- 检查授权逻辑中的 IDOR(不安全的直接对象引用),验证每次数据访问都检查所有权,而不仅是认证。
常见模式
- 输入验证层:在 API 边界使用模式验证(JSON Schema、Zod、pydantic)校验类型、长度、格式与范围,再进入业务逻辑。
- 参数化查询:所有数据库访问使用预编译语句或 ORM 查询构建器;SQL 字符串拼接是注入的根源。
- 内容安全策略:部署 CSP 头部,使用 default-src 'self' 以及脚本、样式、图片的显式允许列表,在输入净化失败时仍能缓解 XSS。
- 密钥轮换:设计系统使凭据(API 密钥、数据库密码、TLS 证书)可借助密钥管理器(Vault、AWS Secrets Manager)在不中断服务的情况下轮换。
应避免的陷阱
- 不要仅依赖客户端验证;攻击者会绕过 UI,直接向 API 发送构造请求。
- 不要记录敏感数据(密码、令牌、PII),即使在调试级别也不行;日志的访问控制通常弱于主数据存储。
- 不要使用 MD5 或 SHA-1 进行密码哈希;应使用 bcrypt、scrypt 或 Argon2id 并设置合适的成本因子。
- 不要向终端用户暴露详细错误信息(堆栈跟踪、SQL 错误、内部路径);返回通用错误并在服务端记录详情。
适用场景
适用于安全代码审查、依赖 CVE 排查、认证与授权逻辑评审、新功能威胁建模,以及在 CI/CD 中集成 SAST/DAST 与依赖扫描等安全工作。
限制
资料未提供该技能的具体安装命令、运行方式、平台支持、收费与价格信息,以及使用步骤,上述内容暂未提供。