north-echo/fluxgate

GitHub: north-echo/fluxgate

跨六大 CI/CD 平台的流水线配置静态安全扫描器,帮助团队在攻击者利用之前发现并修复供应链中的配置缺陷。

Stars: 5 | Forks: 2

# Fluxgate CI/CD Pipeline 安全门 —— 跨 6 个平台的 CI/CD pipeline 配置静态分析。 Fluxgate 可扫描 workflow 和 pipeline 文件以查找危险的安全模式, 包括曾在 2026 年 3 月导致 [Trivy 供应链攻击](https://github.com/aquasecurity/trivy/discussions/10425) 的完全相同的配置错误类别。 ## 快速开始 ``` # 扫描本地仓库(自动检测所有 6 个平台) fluxgate scan . # 扫描远程仓库 fluxgate remote aquasecurity/trivy # 安装 go install github.com/north-echo/fluxgate/cmd/fluxgate@latest ``` ## 检测内容 ### GitHub Actions (FG-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | FG-001 | 严重 (Critical) | Pwn Request:带有 fork checkout 的 pull_request_target | | FG-002 | 高 | 通过表达式插值进行的脚本注入 | | FG-003 | 中 | 基于标签的 action 固定(可变引用) | | FG-004 | 中 | 过于宽泛的 workflow 权限 | | FG-005 | 低 | 在 workflow 日志中暴露 Secrets | | FG-006 | 中 | 通过 build hooks 执行 Fork PR 代码 | | FG-007 | 中 | 在 build 步骤中暴露 Token | | FG-008 | 严重 (Critical) | 外部触发器上的 OIDC 配置错误 | | FG-009 | 高 | 外部触发器上的 Self-hosted runner | | FG-010 | 高 | 通过 PR workflow 上的共享缓存进行缓存投毒 | | FG-011 | 中 | Bot actor guard TOCTOU 绕过风险 | | FG-012 | 中 | If 条件始终为 true | | FG-013 | 高 | 所有 secrets 暴露给 workflow | | FG-014 | 中 | 高风险事件触发器缺少 permissions | | FG-015 | 高 | 未经验证的脚本执行(curl pipe bash) | | FG-016 | 高 | 在不受信任的 checkout 之后执行 Local action | | FG-017 | 高 | GitHub Script 注入 | | FG-018 | 中 | 冒名 commit 检测 | | FG-019 | 高 | 硬编码的容器凭证 | | FG-020 | 中 | Ref 混淆 | | FG-021 | 中 | 跨步骤 output 污染 | | FG-022 | 高 | 已知存在漏洞的 action 版本 | | FG-023 | 高 | Artifact 凭证泄漏 | ### GitLab CI (GL-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | GL-001 | 高 | 带有特权变量的 Merge request pipeline | | GL-002 | 高 | 通过 CI 预定义变量进行脚本注入 | | GL-003 | 中 | 未固定的 include 模板 | | GL-004 | 中 | 宽泛的 pipeline 权限 | | GL-005 | 高 | Job 日志中的 Secrets | | GL-006 | 中 | 不安全的 artifacts 暴露 | | GL-008 | 严重 (Critical) | OIDC 配置错误 | | GL-009 | 高 | MR pipeline 上的 Self-hosted runner | | GL-010 | 高 | 缓存投毒 | ### Azure Pipelines (AZ-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | AZ-001 | 高 | 带有 secret/variable 组暴露的 Fork PR 构建 | | AZ-002 | 高 | 通过 Azure 预定义变量进行脚本注入 | | AZ-003 | 中 | 未固定的 template extends 和 repository 资源 | | AZ-004 | 中 | 宽泛的 pipeline 权限 | | AZ-005 | 高 | Pipeline 日志中的 Secrets | | AZ-006 | 中 | 不安全的 artifacts 暴露 | | AZ-008 | 严重 (Critical) | OIDC 配置错误 | | AZ-009 | 高 | PR 触发的 pipeline 上的 Self-hosted agent 池 | | AZ-010 | 高 | 缓存投毒 | ### Jenkins (JK-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | JK-001 | 高 | 带有凭证的不可信分支构建 | | JK-002 | 高 | Pipeline 参数中的脚本注入 | | JK-003 | 中 | 未固定的共享库版本 | | JK-009 | 高 | 不安全的 agent 配置 | ### Tekton (TK-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | TK-001 | 高 | 外部触发器上的特权 Task 执行 | | TK-002 | 高 | 通过参数插值进行的脚本注入 | | TK-003 | 中 | 未固定的 Task 引用 | | TK-009 | 高 | 不安全的 Workload Identity | ### CircleCI (CC-xxx) | 规则 | 严重性 | 描述 | |---------|----------|-------------| | CC-001 | 高 | 带有 secrets 的 Fork PR 构建 | | CC-002 | 高 | 通过 pipeline 参数进行的脚本注入 | | CC-003 | 中 | 未固定的 Orb 版本 | | CC-009 | 高 | Fork PR 上的 Self-hosted runner | **跨 6 个 CI/CD 平台共 53 条规则。** ## 为什么会有这个项目 在 2026 年 3 月 19 日,一个自主 AI 代理利用了 Trivy —— 最受欢迎的开源漏洞扫描器 —— 中的 `pull_request_target` workflow 配置错误,窃取了凭证,发布了恶意版本,并污染了 75 个 GitHub Actions 版本标签。你用来查找恶意软件的工具竟然变成了分发恶意软件的工具。 Fluxgate 能够在攻击者利用之前检测到此类漏洞。 ## 主要特性 - **感知缓解措施的严重性**:检测防御性控制(fork guards、label gates、权限检查、trusted-ref 隔离)并相应地调整严重性 - **多平台**:自动检测 GitHub Actions、GitLab CI、Azure Pipelines、Jenkins、Tekton 和 CircleCI - **批量扫描**:使用 `fluxgate batch --top 1000` 扫描数千个代码库 - **多种输出格式**:表格、JSON、SARIF、Markdown - **SARIF 上传**:通过 `fluxgate sarif-push` 将结果推送到 GitHub Code Scanning API - **Web 仪表盘**:带有多个数据库切换器和 CSV 导出的 Go/HTMX UI - **漏洞披露追踪**:内置负责任披露的生命周期管理 - **公开 API**:可作为 `github.com/north-echo/fluxgate/pkg/scanner` 导入 ## 研究 Fluxgate 包含用于安全研究的批量扫描模式: ``` # 扫描前 1000 个 GitHub 仓库,存储发现结果 fluxgate batch --top 1000 --db findings.db # 生成汇总报告 fluxgate batch --db findings.db --report report.md ``` 有关我们的负责任披露协议,请参见 [DISCLOSURE.md](DISCLOSURE.md)。 ## 许可证 Apache 2.0
标签:API接口, Azure Pipelines, CI/CD安全, CircleCI, DevSecOps, DNS 解析, EVTX分析, Fluxgate, GitHub Actions, GitHub安全, GitLab CI, Go语言, Jenkins, Llama, OIDC配置错误, Pipeline安全, Pwn Request检测, SAST, StruQ, Tekton, 上游代理, 人体姿态估计, 代码仓库扫描, 图计算, 工作流安全, 日志审计, 权限配置审计, 盲注攻击, 程序破解, 缓存投毒, 脚本注入, 自动笔记, 软件开发工具包, 配置错误检测, 错误基检测, 静态代码分析