cicd-sensor/cicd-sensor

GitHub: cicd-sensor/cicd-sensor

基于 eBPF 的 CI/CD 流水线运行时安全传感器,用于检测供应链攻击并提供完整的执行日志与取证证据。

Stars: 228 | Forks: 7

cicd-sensor logo

cicd-sensor

Think EDR, but for CI/CD Pipelines.
Open-source eBPF-powered runtime security sensor for GitHub Actions and GitLab CI/CD.
Full documentation

License Language Platform Open Source


## 演示
cicd-sensor GitHub Actions demo
Example: cicd-sensor added to a GitHub Actions workflow. The resulting reports are viewable in the GitHub job summary.
## cicd-sensor 的作用 当 CI/CD job 中受损的依赖项窃取并泄露了您的云凭证时,您能察觉到吗?事后您会有日志可供调查吗?cicd-sensor 是一个开源传感器,让每个团队都能对这两个问题给出肯定的答复。 **检测:** 利用进程族系(例如,由 `npm install` 衍生出的进程访问凭证)和跨信号关联(例如,在一个 job 中读取多个凭证类别),在 runtime 检测供应链攻击。Baseline 规则针对真实 CI/CD 攻击中观察到的模式,并支持 opt-out:如果您只需要下方的日志和证据,可以将其关闭。 **日志与证据:** 每次运行时,cicd-sensor 都可以输出日志供审查、告警和取证,这些日志通过 cicd-sensor Manager 路由到 S3、GCS 和 Pub/Sub 等云 sink。cicd-sensor-action 还能在每次运行时生成图形化报告和构建证明(build attestation)。您的数据始终由您掌控。cicd-sensor 绝不会向 cicd-sensor 项目运营的服务器发送任何内容。 ## 快速开始 在 GitHub 托管的 runner 上,将 cicd-sensor action 作为您 workflow 的第一步添加。 ``` jobs: build: runs-on: ubuntu-24.04 steps: - uses: cicd-sensor/cicd-sensor-action@31366296cb918b7f1413829aafc16dcf18fe8518 # v0.0.35 ``` 对于自托管的 GitHub Actions 或 GitLab CI/CD,请参阅[用户指南](https://cicd-sensor.github.io/user-guide/overview.html)。 ## 为什么 CI/CD runtime 需要它 CI/CD pipeline 负责构建、发布、部署和管理云基础设施,并且持有执行这些操作所需的云凭证、签名密钥和 registry token。供应链攻击者在这些 job 内部运行,并在 job 结束时销毁证据。 大多数其他 runtime 都有各自的开源防御者:Falco、Tetragon、Tracee、Wazuh、OSQuery。而针对 CI/CD runtime 的开源防护却一直滞后。Sigstore 证明了制品(artifact)是*在哪里*以及*如何*构建的;而 cicd-sensor 则保留了*实际运行的内容*,以便团队能够进行检测、响应和审计。 ## 功能对比 | 能力 | cicd-sensor | Harden-Runner (免费版) | 备注 | | --- | --- | --- | --- | | **许可与部署** | | | | | 开源 | ✅ 是 | ✅ 是 | | | 数据隐私 | ✅ 自托管 | SaaS 后端 | cicd-sensor 完全在您自己的基础设施中运行,因此日志和事件都保留在您的环境中。 | | **平台覆盖** | | | | | 私有仓库 | ✅ 是 | ❌ 否 | | | 自托管 runner | ✅ 是 | ❌ 否 | 强制使用自托管 runner 可实现跨组织内所有 job 的日志收集。 | | 支持 GitHub Actions | ✅ 是 | ✅ 是 | | | 支持 GitLab CI/CD | ✅ 是 | ❌ 否 | | | **功能特性** | | | | | 检测规则 | ✅ 是 | ✅ 是 | | | 灵活的自定义规则 | ✅ 是 | 🔶 有限 | cicd-sensor 规则涵盖了进程族系、文件访问以及跨信号关联;而 Harden-Runner 主要是网络出站(egress)白名单。 | | 网络阻断 | 🔶 部分 | ✅ 是 | cicd-sensor 在检测到异常时会终止进程并停止 job,而不是像防火墙那样过滤流量。 | | 日志导出 | ✅ 是 | ❌ 否 | | 此表对比的是免费版的 Harden-Runner。StepSecurity 的付费平台增加了更多功能,例如支持私有仓库和自托管 runner、控制台以及策略管理。 基于 2026 年 5 月的公开信息。欢迎纠正。 ## 受支持的 CI/CD pipeline | 平台 | 环境 | 状态 | | --- | --- | --- | | GitHub Actions | GitHub 托管 runner | ✅ 受支持 | | GitHub Actions | 机器上的自托管 runner | ✅ 受支持 | | GitHub Actions | Kubernetes 上的 Actions Runner Controller | 🧪 预览支持 | | GitLab CI/CD | GitLab Runner Docker executor | ✅ 受支持 | | GitLab CI/CD | GitLab Runner Kubernetes executor | 🧪 预览支持 | | GitLab CI/CD | GitLab 托管 runner | ❌ 不受支持(技术限制) | 适用于公开和私有仓库,且无第三方 SaaS 依赖。 Linux 内核:`amd64` 架构需 5.15 或更高版本,`arm64` 架构需 6.1 或更高版本。 ## 规则 cicd-sensor 内置了一套 baseline 规则。请参阅[Baseline 规则指南](https://cicd-sensor.github.io/user-guide/baseline-rules.html)了解其工作原理;规则定义本身位于 [`rules/`](rules/) 中。您也可以编写自己的规则,或者完全关闭 baseline。 ## 文档 - [入门指南](https://cicd-sensor.github.io/):介绍 cicd-sensor 是什么以及如何开始使用。 - [用户指南](https://cicd-sensor.github.io/user-guide/overview.html):GitHub Actions 和 GitLab CI/CD 的部署路径。 - [规则](https://cicd-sensor.github.io/user-guide/rules.html):编写检测、收集和关联规则。 - [日志](https://cicd-sensor.github.io/user-guide/logging.html):由 manager 提供的日志格式。 - [证明断言](https://cicd-sensor.github.io/user-guide/attestation-predicate.html):用于 CI/CD runtime 证据的 runtime 追踪断言。 - [开发者指南](https://cicd-sensor.github.io/developer-guide/overview.html):agent、eBPF runtime、manager 和规则引擎的内部原理。 ## 关于本项目 在 [gitlab.com/cicd-sensor/cicd-sensor](https://gitlab.com/cicd-sensor/cicd-sensor) 发布了一个只读的官方镜像。GitHub 是规范源;GitLab 镜像会定期同步。 ## 许可证 Apache License 2.0([LICENSE](LICENSE))。`internal/agent/bpf/` 下的 BPF 源代码采用双许可协议 `GPL-2.0-only OR BSD-2-Clause`([详情](internal/agent/bpf/README.md#licensing))。
标签:DevSecOps, Docker镜像, EVTX分析, Go, Ruby工具, StruQ, 上游代理, 文档安全, 日志审计