安全开发
SDLC中的安全
| 阶段 | 安全措施 | 描述 |
|---|---|---|
| 设计 | 威胁建模 | 实施前识别攻击向量 |
| 实现 | 安全编码规范 | OWASP Top 10、输入验证、参数化查询 |
| 代码审查 | 四眼原则 | 安全相关变更须经审查 |
| 测试 | 自动化安全测试 | CI/CD中的SAST、依赖扫描 |
| 部署 | 加固 | 最小权限、安全配置、Secrets管理 |
| 运维 | 监控 + 补丁 | 日志分析、漏洞扫描、补丁管理 |
CI/CD安全流水线
每次提交自动经过以下步骤:
| 步骤 | 工具类别 | 失败时阻断 |
|---|---|---|
| Markdown-Lint / Code-Lint | markdownlint、ESLint | 是 |
| 构建 | 框架相关 | 是 |
| 依赖审计 | npm audit、Trivy | high/critical时阻断 |
| SAST(如适用) | 代码分析 | critical时阻断 |
依赖管理
| 措施 | 描述 |
|---|---|
| 锁定文件 | 所有依赖均已锁定版本(package-lock.json) |
| 自动更新 | Dependabot每周检查新版本 |
| 审计 | CI流水线中运行npm audit,high/critical时阻断 |
| 审查 | 新增依赖须提供理由并经审查 |
| 最小化 | 尽可能减少依赖,优先选择积极维护的项目 |
Secrets管理
| 要求 | 实施方式 |
|---|---|
| 代码中不包含Secrets | Pre-commit Hook检查模式(API密钥、密码) |
| 环境变量 | 通过环境变量传递Secrets,不存储在文件中 |
| CI/CD Secrets | 通过GitHub Actions Secrets管理,不存储在仓库中 |
| 轮换 | 定期轮换API密钥和服务账户 |
CRA协同效应
产品相关的安全开发流水线(SBOM生成、Cosign签名、多引擎漏洞扫描)在CRA文档中描述。