这是关于zizmor
的介绍,zizmor
是一个用于在 GitHub Actions 设置中查找安全问题的新工具。
- 主要功能和使用方法:可以在一个或多个工作流定义上运行,以输出
cargo
风格的诊断、SARIF 或 JSON 格式的结果。通过cargo
安装,可指定路径审计单个工作流或整个仓库,如cargo install zizmor
,zizmor./path/to/my/repo/.github/workflows/ci.yml
或zizmor./path/to/my/repo
。 - 当前检测的安全问题示例:包括攻击者控制的模板注入、“ArtiPACKED”风格的凭证持久化和披露、第三方动作中的已知漏洞等,通过相关动画演示展示。
- 背景:CI/CD 安全(尤其是 GitHub Actions)是个人关注的领域,因其广泛应用且即使小错误也可能导致严重后果,但默认安全态势不佳,存在多种不安全的工作流触发方式、表达式语言的安全漏洞以及架构导致的不安全配置等问题,同时作者也很喜欢 GitHub Actions 并认为其是未来软件发布的方向,
zizmor
就是为解决该问题而开发。 - 实现细节:由
github-actions-models
(用于 GitHub Actions 的高保真数据模型库)、yamlpath
(用于将符号 YAML 位置转换回具体源代码跨度的工具)和zizmor
本身(包含审计框架、与 GitHub API 交互的帮助程序、表达式解析器和单个审计定义等)三个独立组件组成,架构允许审计基于 Rust 级模型编写,各审计独立且审计样板较小,有部分内部 API 文档。 - 下一步计划:这是早期版本,存在 bug,未来几周到几个月的计划包括完善用户和开发者文档、增加更多审计项目(如常见缓存中毒模式或 YAML 类型错误)、进行更复杂的分析(如数据流分析等),同时欢迎试用并通过现有 Markdown 文档集成到 GitHub。
- 讨论渠道:在 Mastodon、Bluesky、Reddit 上有相关讨论,如Mastodon、Bluesky、Reddit。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。