google/oss-rebuild

GitHub: google/oss-rebuild

Google 开源的可复现构建验证工具,通过独立重建开源软件包并生成构建证明来保障软件供应链安全。

Stars: 683 | Forks: 46

# [OSS Rebuild](https://oss-rebuild.dev/) [![文档](https://img.shields.io/badge/📖%20Docs-docs.oss--rebuild.dev-informational)](https://docs.oss-rebuild.dev/) [![Go 报告卡](https://goreportcard.com/badge/google/oss-rebuild)](https://goreportcard.com/report/google/oss-rebuild) [![Go 参考](https://pkg.go.dev/badge/github.com/google/oss-rebuild.svg)](https://pkg.go.dev/github.com/google/oss-rebuild)
OSS Rebuild logo
通过生成、验证和增强构建证明来保护开源软件包生态系统的安全。 ## 概述 [OSS Rebuild](https://oss-rebuild.dev/) 旨在以低成本和高规模为开源软件包生态系统应用[可复现构建](https://reproducible-builds.org/)概念。重建是通过分析已发布的元数据和工件推导出来的,并根据上游软件包版本进行评估。成功后,会为上游工件发布构建证明,从而验证上游工件的完整性并消除许多可能的入侵来源。 我们目前支持以下生态系统: - npm (JavaScript/TypeScript) - PyPI (Python) - Crates.io (Rust) 虽然目标是实现完全覆盖,但目前仅重建每个生态系统中最受欢迎的软件包。 ## 使用说明 `oss-rebuild` CLI 工具提供了访问 OSS Rebuild 数据的途径: ``` $ go run github.com/google/oss-rebuild/cmd/oss-rebuild@latest --help $ # Alternatively, install the binary locally. $ # Just make sure it's on your PATH: https://go.dev/ref/mod#go-install $ go install github.com/google/oss-rebuild/cmd/oss-rebuild@latest $ oss-rebuild --help ``` 要查看特定软件包的重建信息,请使用 `get` 命令: ``` $ oss-rebuild get pypi absl-py 2.0.0 ``` 默认情况下,这仅提供摘要视图。要更细致地访问重建数据,请使用 `--output` 格式之一。例如,要访问完整的证明载荷,请使用 `--output=payload` 选项: ``` $ oss-rebuild get pypi absl-py 2.0.0 --output=payload ``` 要查看 dockerfile,请使用 `--output=dockerfile` 选项。这可以与 `docker` 链接以在本地执行重建: ``` $ oss-rebuild get pypi absl-py 2.0.0 --output=dockerfile | docker run $(docker buildx build -q -) ``` 虽然上述 `--output=payload` 选项生成更具可读性的内容,但可以通过以下方式访问原始证明包: ``` $ oss-rebuild get pypi absl-py 2.0.0 --output=bundle ``` 要探索更多软件包,可以使用 `list` 命令查看已重建的软件包版本: ``` $ oss-rebuild list pypi absl-py ``` ### 使用要求 `oss-rebuild` 使用公共 [Cloud KMS](https://cloud.google.com/kms/docs) 密钥来验证证明签名。不支持匿名身份验证,因此必须提供 [ADC 凭证](https://cloud.google.com/docs/authentication/set-up-adc-local-dev-environment)。 这可以通过以下方式完成: ``` $ gcloud init $ gcloud auth application-default login ``` 要禁用签名验证并跳过 KMS 访问要求,请使用:`--verify=false`。 ## 目的 - **缓解供应链攻击**:检测开源软件包中的差异,帮助防止像 Solarwinds 和 Codecov 那样的入侵事件。 - **规模化安全标准**:利用行业最佳实践,如 SLSA、Sigstore 和容器化构建。 - **社区参与**:创建一个汇聚力量以保护开源供应链安全的场所。 - **赋能未来创新**:推导数据以利用 AI 驱动的重建。 ## 安全 要更好地理解重建的安全属性,请参阅[信任与重建](./docs/trust.md)。 ## 相关项目 查看这些为可复现构建工作做出贡献的相关项目: - [reproducible-central](https://github.com/jvm-repo-rebuild/reproducible-central):Java、Kotlin 可复现性。 - [kpcyrd/rebuilderd](https://github.com/kpcyrd/rebuilderd):支持多个发行版的重建调度器。 ## 免责声明 这不是一个官方支持的 Google 产品。
标签:Crates.io, DevSecOps, EVTX分析, EVTX分析, EVTX分析, Golang, Google, npm, Nuclei, PyPI, SBOM, SLSA, Waymore结果处理, 上游代理, 依赖安全, 制品分析, 包管理器, 反向工程, 可重现构建, 安全编程, 完整性验证, 开源软件安全, 攻击面缩减, 文档安全, 日志审计, 构建证明, 源码审计, 硬件无关, 统一API, 请求拦截, 跌倒检测, 软件物料清单