code-cargo/cargowall

GitHub: code-cargo/cargowall

基于 eBPF 的 GitHub Actions 运行时网络防火墙,通过内核级策略执行保护 CI/CD 流水线免受供应链攻击和凭证窃取。

Stars: 26 | Forks: 0

# CargoWall [![build](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/16b3dc6c2b102056.svg)](https://github.com/code-cargo/cargowall/actions/workflows/ci.yml) [![release](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0195abc19e102057.svg)](https://github.com/code-cargo/cargowall/actions/workflows/release.yml) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) **GitHub Actions 的防火墙。** CargoWall 是一个**基于 eBPF 的 GitHub Actions Runner 网络防火墙**,用于监控和控制 CI/CD 运行期间的出站连接。 它只需在您的 workflow 作业中添加一个步骤,即可保护您的流水线免受**恶意操作、依赖供应链攻击和密钥窃取**的影响。 CargoWall 是开源的,由 CodeCargo 团队构建。 **从 [CargoWall GitHub Action](https://github.com/code-cargo/cargowall-action) 开始使用。** # 为什么开发这个项目 现代 CI/CD 流水线每天都在运行**不受信任的代码**。 您的 workflows 会执行: * 第三方 GitHub Actions * 包安装程序 * 构建工具 * 测试框架 * 部署脚本 这些过程都可以访问**敏感凭证**: * 云密钥 * Registry Token * 部署密钥 * 签名密钥 如果某个依赖项或操作遭到入侵,攻击者可以悄悄地: * 窃取密钥 * 篡改构建产物 * 推送恶意发布包 这种情况在生态系统中已经发生过。 CI/CD 流水线现在已成为**软件交付中最大的攻击面之一**。 CargoWall 的存在是为了**在您的流水线前筑起一道防火墙。** # CargoWall 的功能 CargoWall 在 GitHub Runner 内部运行,并执行以下操作: * 监控所有出站网络连接 * 阻止未授权的目标地址 * 检测异常的网络活动 * 防止密钥窃取 * 记录 workflow 发起的所有外部连接 此功能通过**内核级 eBPF Hooks** 实现,以最小的开销提供强有力的执行。 # CargoWall 的独特之处 大多数 CI/CD 安全工具都是**静态扫描器**。 CargoWall 在流水线**运行时**进行保护。 * **运行时网络防火墙** — 不是静态扫描器,在 workflow 运行时强制执行策略 * **内核级 eBPF 强制执行** — 内核空间中的 TC Egress 过滤器,而非用户空间代理 * **进程归因** — 每个连接都可追溯到发起该连接的进程和 PID * **动态 DNS 解析** — 主机名规则在运行时通过本地 DNS 代理解析 * **审计和强制模式** — 从可见性开始,准备好后切换到阻止模式 * **NDJSON 审计日志** — 机器可读的日志,用于合规性证据和 SIEM 集成 # 入门指南 将 [CargoWall GitHub Action](https://github.com/code-cargo/cargowall-action) 添加到您的 workflow 中: ``` - uses: code-cargo/cargowall-action@v1 with: default-action: deny allowed-hosts: | github.com, registry.npmjs.org ``` 有关完整用法、输入、输出和示例,请参阅 [cargowall-action README](https://github.com/code-cargo/cargowall-action)。 # 工作原理 ``` flowchart LR subgraph runner["GitHub Actions Runner"] subgraph steps["Workflow Steps"] S1["npm ci / docker build / etc."] end subgraph cw["CargoWall"] DNS["DNS Proxy
127.0.0.1:53"] BPF["TC eBPF
on eth0"] Rules["Rule Engine"] end S1 -- "DNS query" --> DNS DNS -- "resolve & update rules" --> Rules Rules -- "allow/deny IPs" --> BPF S1 -- "network traffic" --> BPF end BPF -- "allowed" --> Internet(("Internet")) BPF -. "blocked" .-x Denied(("Denied")) ``` 1. CargoWall GitHub Action 在 Runner 上安装 CargoWall 运行时。 2. CargoWall 使用 [cilium/ebpf](https://github.com/cilium/ebpf) 将 **eBPF TC (Traffic Control) Egress 过滤器**附加到 Runner 的网络接口。 3. **本地 DNS 代理**拦截 DNS 查询,将主机名解析为 IP,并动态填充防火墙规则。 4. 出站数据包在内核空间中通过 **LPM Trie**(最长前缀匹配)进行匹配,以实现基于 CIDR 和端口的规则控制。 5. **Cgroup Socket Hooks** (`connect4`/`connect6`/`sendmsg4`/`sendmsg6`) 跟踪哪个进程 (PID) 发起了每个连接。 6. 事件通过 **Ring Buffer** 传递到用户空间,并写入带有完整进程归因的 NDJSON 审计日志中。 CargoWall 同时支持**审计模式**(仅记录日志,不阻止)和**强制模式**(主动阻止被拒绝的流量)。 所有强制执行都**在 Runner 内部于内核级别进行** — 不涉及 iptables,也不需要 Sidecar 代理。 # CodeCargo 平台 注册 [CodeCargo 平台](https://www.codecargo.com) 以获取企业级功能,例如: * **集中式策略管理** — 从仪表板创建、分配和继承 CargoWall 策略,无需修改 workflow 文件 * **组织级策略**,支持在 Repo、Workflow 和 Job 级别的分层覆盖 * 基于角色的访问控制 * CI/CD 治理和 Workflow 运行保留 * AI 驱动的功能,包括多仓库 AI 编辑器、自助服务、AI 服务目录和 Actions 洞察 # 文档 完整文档: [https://docs.codecargo.com/concepts/cargowall](https://docs.codecargo.com/concepts/cargowall) # 何时应该使用 CargoWall? 如果您遇到以下情况,CargoWall 尤其有价值: * 依赖**第三方 GitHub Actions** * 在**受监管环境**中运行 CI/CD * 需要 **SOC2 / FedRAMP 证据**来证明流水线控制措施 * 希望防止 **CI/CD 供应链攻击** * 希望了解构建期间的**网络活动** # 构建技术 * [Go](https://go.dev/) * [cilium/ebpf](https://github.com/cilium/ebpf) — eBPF 程序加载和 Map 管理 * [miekg/dns](https://github.com/miekg/dns) — 用于运行时主机名解析的 DNS 代理 # 安全 如果您发现漏洞,请负责任地披露。 详情请参见 [`SECURITY.md`](SECURITY.md)。 # 许可证 Apache 2.0 # 链接 GitHub Action [https://github.com/code-cargo/cargowall-action](https://github.com/code-cargo/cargowall-action) 文档 [https://docs.codecargo.com/concepts/cargowall](https://docs.codecargo.com/concepts/cargowall) CodeCargo [https://codecargo.com](https://codecargo.com)
标签:CI/CD 安全, Dependency Confusion, DevSecOps, Docker镜像, EVTX分析, GitHub Actions, StruQ, 上游代理, 代码安全, 内核级安全, 出站流量控制, 数据投毒防御, 文档安全, 日志审计, 漏洞枚举, 秘密泄露防护, 网络访问控制, 自动笔记, 防火墙