安全策略
以下安全策略适用于 oxc-project 组织内的所有项目。
如果您发现任何疏漏,请通知 @boshen。
https://www.npmjs.com/~boshen 与 https://crates.io/users/Boshen 是唯一拥有发布权限的账户。
github.com
- 组织内所有人必须启用双重身份验证
- 仅允许使用安全的双重身份验证方式
- 启用 GitHub 安全扫描,包括密钥扫描
- GitHub Actions:要求所有操作都固定到完整的提交 SHA
- 启用发布不可变性 —— 一旦发布,资产和标签便无法修改
- 要求签署提交:https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits
- 未在仓库设置中强制执行;否则外部贡献者将无法参与贡献
- 发布时不存储长期有效的令牌 —— 请参见下文针对 npmjs.com 与 crates.io 的受信任发布说明
- 启用 Renovate Bot 进行安全更新
- 使用 https://docs.zizmor.sh 对 GitHub Actions 进行常见安全问题检查
npmjs.com
- 登录时强制执行 2FA
- 使用
npm publish --provenance发布:https://docs.npmjs.com/generating-provenance-statements - 使用受信任发布:https://docs.npmjs.com/trusted-publishers
- 安装 Socket Security
- 启用 Renovate Bot 的
"minimumReleaseAge": "3 days",以避免更新过去 3 天内发布的包 - 使用 pnpm:https://pnpm.io/supply-chain-security
- 无自动执行的
postinstall脚本
- 无自动执行的
crates.io
- 使用受信任发布:https://crates.io/docs/trusted-publishing
- 使用
cargo deny检查依赖项是否符合 Rust 建议数据库(https://rustsec.org)
