
cicd-sensor vrules/v20260714-002
基于eBPF的运行时安全传感器,适用于CI/CD流水线。检测供应链攻击,记录进程血缘关系和文件访问,为GitHub Actions和GitLab CI/CD提供取证证据。
🚧 预发布版本:积极开发中。 cicd-sensor 目前处于预发布阶段,正在积极开发中。非常欢迎反馈意见。
cicd-sensor
把它想象成 EDR,但专为 CI/CD 流水线设计。
面向 GitHub Actions 和 GitLab CI/CD 的开源、基于 eBPF 的运行时安全传感器。
→ 完整文档
演示
|
cicd-sensor 的功能
当 CI/CD 作业中被攻陷的依赖项窃取你的云凭证并将其泄露时,你能发现吗?事后你是否有日志可供调查?cicd-sensor 是一个开源传感器,让每个团队都能对这两个问题给出肯定的回答。
检测: 利用进程血缘关系(例如,从 npm install 派生的进程进行凭证访问)以及跨信号关联(例如,单个作业中读取多个凭证类别),在运行时检测供应链攻击。基线规则针对真实 CI/CD 攻击中观察到的模式,并且默认开启:如果你只需要下面的日志和证据,可以将其关闭。
日志与证据: 每次运行,cicd-sensor 都可以发出日志,用于审查、告警和取证,并通过 cicd-sensor Manager 路由到 S3、GCS 和 Pub/Sub 等云存储目标。cicd-sensor-action 还可以为每次运行生成图形化报告和构建证明。你的数据始终由你掌控。cicd-sensor 绝不会向 cicd-sensor 项目运营的服务器发送任何数据。
快速开始
在 GitHub 托管的运行器上,将 cicd-sensor action 添加为工作流的第一步。
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: cicd-sensor/cicd-sensor-action@6511eb44c91d71b2b93d71193b1bf2cb18352f66 # v0.0.38
对于自托管的 GitHub Actions 或 GitLab CI/CD,请参阅用户指南。
为什么 CI/CD 运行时需要这个
CI/CD 流水线负责构建、发布、部署和管理云基础设施,并且它们持有完成这些任务所需的云凭证、签名密钥和注册表令牌。供应链攻击者在这些作业内部运行,并在作业结束时带着证据消失。
大多数其他运行时都有其开源守护者:Falco、Tetragon、Tracee、Wazuh、OSQuery。而 CI/CD 运行时的开源覆盖一直滞后。Sigstore 证明了工件是在哪里以及如何构建的;cicd-sensor 则保留了实际运行了什么,以便团队能够检测、响应和审计。
功能对比
| 能力 | cicd-sensor | Harden-Runner(免费版) | 备注 |
|---|---|---|---|
| 许可与部署 | |||
| 开源 | ✅ 是 | ✅ 是 | |
| 数据隐私 | ✅ 自托管 | SaaS 后端 | cicd-sensor 完全在你的基础设施中运行,因此日志和事件保留在你的环境中。 |
| 平台覆盖 | |||
| 私有仓库 | ✅ 是 | ❌ 否 | |
| 自托管运行器 | ✅ 是 | ❌ 否 | 强制使用自托管运行器可以在整个组织范围内收集每个作业的日志。 |
| GitHub Actions 支持 | ✅ 是 | ✅ 是 | |
| GitLab CI/CD 支持 | ✅ 是 | ❌ 否 | |
| 能力 | |||
| 检测规则 | ✅ 是 | ✅ 是 | |
| 灵活的自定义规则 | ✅ 是 | 🔶 有限 | cicd-sensor 规则涵盖进程血缘关系、文件访问以及跨信号关联;Harden-Runner 主要是一个网络出口白名单。 |
| 网络阻断 | 🔶 部分 | ✅ 是 | cicd-sensor 在检测到威胁时会终止进程并停止作业,而不是像防火墙那样过滤流量。 |
| 日志导出 | ✅ 是 | ❌ 否 |
此表比较的是 Harden-Runner 的免费版本。StepSecurity 的付费平台提供了更多功能,例如私有仓库和自托管运行器支持、仪表板以及策略管理。
基于截至 2026 年 5 月的公开信息。欢迎指正。
第三方服务
GMO Flatt Security 的 Takumi Runner 充当托管的 cicd-sensor Manager,并在收集到的日志之上添加其自身的威胁检测和追踪分析。有关设置,请参阅其集成指南(英文 / 日文)。这是一个独立的商业产品,cicd-sensor 无需它也能正常工作。
cicd-sensor 是一个供应商中立型开源项目:它可以独立运行,并且它所对接的任何 Manager 都是你选择运行的。其他供应商和服务同样欢迎与 cicd-sensor 集成。
当 cicd-sensor 指向第三方托管的 Manager 时,它收集的日志和事件将被发送到该供应商的服务。
支持的 CI/CD 流水线
| 平台 | 环境 | 状态 |
|---|---|---|
| GitHub Actions | GitHub 托管运行器 | ✅ 支持 |
| GitHub Actions | 机器上的自托管运行器 | ✅ 支持 |
| GitHub Actions | Kubernetes 上的 Actions Runner Controller | 🧪 预览支持 |
| GitLab CI/CD | GitLab Runner Docker executor | ✅ 支持 |
| GitLab CI/CD | GitLab Runner Kubernetes executor | 🧪 预览支持 |
| GitLab CI/CD | GitLab 托管运行器 | ❌ 不支持(技术限制) |
适用于公共和私有仓库,且不依赖任何第三方 SaaS。
Linux 内核:amd64 架构需 5.15 或更高版本,arm64 架构需 6.1 或更高版本。
规则
cicd-sensor 附带一组基线规则。有关其工作原理,请参阅基线规则指南;规则定义本身位于 rules/ 目录中。你也可以编写自己的规则,或者完全关闭基线规则。
文档
- 入门指南:cicd-sensor 是什么以及如何开始使用。
- 用户指南:GitHub Actions 和 GitLab CI/CD 的部署路径。
- 规则:编写检测、收集和关联规则。
- 日志:Manager 交付的日志格式。
- 证明谓词:用于 CI/CD 运行时证据的运行时追踪谓词。
- 开发者指南:agent、eBPF 运行时、Manager 和规则引擎的内部原理。
关于项目
[!NOTE] 关于创建者: cicd-sensor 是一个供应商中立型开源项目,由 Hiroki Suezawa (@rung) 创建并维护。他是 CI/CD 流水线通用威胁矩阵的作者、OWASP CI/CD 安全风险 Top 10的贡献者,以及 OSC&R / pbom.dev 的早期贡献者。cicd-sensor 最初是一个个人项目,旨在贴近那些正遭受供应链攻击的开源社区。
一个只读的官方镜像发布在 gitlab.com/cicd-sensor/cicd-sensor。GitHub 是权威来源;GitLab 镜像会定期同步。
许可证
Apache License 2.0(LICENSE)。internal/agent/bpf/ 下的 BPF 源码采用双重许可 GPL-2.0-only OR BSD-2-Clause(详情)。