文章摘要
Astral公司重视开源工具的安全性,致力于保障其开发工具及发布流程的安全可靠,以应对日益增长的供应链攻击威胁,维护全球开发者的信任。
文章总结
Astral开源安全实践
核心安全措施
Astral作为全球数百万开发者信赖的工具提供商,通过以下多维度策略保障供应链安全:
CI/CD安全
- 禁用高风险触发器:全面禁用
pull_request_target等易被滥用的GitHub Actions触发器,改用低权限替代方案 - 强制定向提交哈希:要求所有Action必须锁定到完整提交哈希,配合zizmor工具检测伪造提交
- 最小权限原则:默认设置只读权限,按需逐项提升权限;使用独立部署环境隔离敏感凭证
- 禁用高风险触发器:全面禁用
仓库与组织安全
- 分级权限控制:限制管理员账户数量,多数成员仅获必要仓库的读写权限
- 强制强2FA认证:要求所有成员使用不低于TOTP的二次验证
- 分支/标签保护:禁止强制推送main分支,要求PR审核;发布标签需经部署流程验证
自动化安全
- GitHub App替代方案:对于需评论PR等高危操作,使用独立GitHub App(如astral-sh-bot)隔离执行环境
- 开发框架推荐:采用Gidgethub等框架降低App开发难度
发布安全
- 可信发布机制:优先采用Trusted Publishing消除长期凭证
- Sigstore数字证明:为二进制/Docker镜像添加可验证构建证明
- 双重审批机制:发布环境需至少两人批准激活
- 防篡改措施:启用GitHub不可变发布功能
依赖管理
- 更新冷却期:通过Renovate等工具实施依赖更新延迟策略
- 生态协作:与PyPA等组织保持安全信息共享
- 依赖精简:定期评估移除非必要依赖
关键建议
- 认识CI/CD局限性:高危操作应脱离CI/CD环境执行
- 凭证生命周期管理:优先采用OIDC等短期凭证方案
- 分层防御:结合技术控制与社会化协作(如开源基金资助)
持续演进
安全措施将随攻击手法变化持续优化,当前方案已通过公开Gist分享部分规则集。未来计划增加macOS/Windows代码签名,并开源内部安全机器人。
(注:原文中的产品推广、社交媒体链接及重复视觉元素已作精简处理)
评论总结
总结评论内容:
- 对文章实用性的肯定:
- 认为文章提供了切实可行的建议,建议团队阅读并实施 "The advices here are really solid and actionable, and I would suggest any team to read them" "With the recent incidents...I find it extremely useful to have a guide"
- 供应链安全问题讨论:
- 指出当前软件供应链存在依赖验证不足的问题 "a lot of tools and dependencies are downloaded...without any validation" "we are only as secure as our dependencies"
- 技术解决方案分享:
- 有人分享了基于文章创建的安全审计工具 "Created an agent skill based on this blog. Assessing my own repos now"
- 有人提出多签名文件验证解决方案 "working on an open source...multi sig file authentication solution"
- 其他补充信息:
- 指出文章作者参与了PyPI可信发布功能的实现 "William Woodruff...worked with PyPI to implement Trusted Publishing"
- 有人调侃某些方案类似于Nix/Guix "Lengths people will go to rediscover Nix/Guix"
注:所有评论均无评分信息。