You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopt SBOM (Software Bill of Materials) generation and sigstore signing for proxybroker2 releases so downstream users can:
Audit dependencies before installing (catch supply-chain compromises).
Verify build integrity of PyPI wheels and Docker images (was this really built by the maintainer's release pipeline, or replaced in transit?).
Why this matters for proxybroker2
proxybroker2 has 1k+ stars and is installed via pip and Docker — both paths are vulnerable to supply-chain attacks (typosquatting, package takeover, registry tampering).
Modern projects (cpython, kubernetes, sigstore itself, all major cloud SDKs) ship SBOMs + signatures as standard. proxybroker2 is increasingly behind by not doing so.
Recent supply-chain incidents (PyPI typosquats, npm event-stream, xz backdoor) show this is a real, not theoretical, threat. A 1k-star tool is exactly the size attackers target — large enough to be worth compromising, small enough to lack hardened CI.
Scope
A. SBOM generation
Generate CycloneDX SBOM for every release (Python ecosystem standard via cyclonedx-bom or cyclonedx-python).
Attach SBOM to GitHub release as proxybroker2-{version}-sbom.json.
Include SBOM in Docker image as OCI annotation org.opencontainers.image.bom (new label) or as a separate manifest entry via docker buildx imagetools.
For PyPI: pyproject.toml build hook generates SBOM into the wheel META-INF/.
B. Sigstore signing
Sign GitHub releases with sigstore-python using GitHub OIDC (no manual key management).
Goal
Adopt SBOM (Software Bill of Materials) generation and sigstore signing for proxybroker2 releases so downstream users can:
Why this matters for proxybroker2
pipand Docker — both paths are vulnerable to supply-chain attacks (typosquatting, package takeover, registry tampering).event-stream,xzbackdoor) show this is a real, not theoretical, threat. A 1k-star tool is exactly the size attackers target — large enough to be worth compromising, small enough to lack hardened CI.Scope
A. SBOM generation
cyclonedx-bomorcyclonedx-python).proxybroker2-{version}-sbom.json.org.opencontainers.image.bom(new label) or as a separate manifest entry viadocker buildx imagetools.pyproject.tomlbuild hook generates SBOM into the wheelMETA-INF/.B. Sigstore signing
C. Workflow integration
.github/workflows/python-publish.yml: generate SBOM + sigstore attestation, upload to release..github/workflows/docker-publish.yml: cosign sign the published image with OIDC.Acceptance criteria
*-sbom.jsonasset (CycloneDX format).pypi.org/project/proxybroker2/{version}/#sigstore.References
Out of scope
poetry.lock(Poetry already does this; not strictly SBOM/sigstore).Estimated effort
Total ~10 hours. Recommend single PR since the three pieces are tightly coupled (all use GitHub OIDC, all run in publish workflows).