SBOM (Software Bill of Materials) — machine-readable inventory всех компонентов в вашем артефакте (image / binary / source). Требуется US federal contractors (EO 14028), expected в EU CRA 2027. Formats: SPDX (Linux Foundation), CycloneDX (OWASP). Tools: Syft (Anchore, open), Trivy, Docker Scout. Generate → sign через cosign → upload в dependency-track.
Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.
brew install syft или download binarysyft ghcr.io/me/app:v1 -o spdx-json > sbom.jsoncosign attest --predicate sbom.json --type spdx image| Сценарий | Конфиг |
|---|---|
| Syft basic Docker | # From Docker image
$ syft ghcr.io/me/app:v1 -o spdx-json > sbom.spdx.json
# From directory
$ syft dir:./src -o cyclonedx-json > sbom.cdx.json
# From archive
$ syft file:./app.tar.gz |
| GitHub Action | - uses: anchore/sbom-action@v0
with:
image: ghcr.io/me/app:v1
format: spdx-json
output-file: sbom.json
- uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.json |
| Scan SBOM for CVEs | # Grype reads SBOM + checks против CVE DB
$ grype sbom:sbom.json
# In CI
$ grype sbom:sbom.json --fail-on high |
| Dependency-Track upload | # POST SBOM для continuous monitoring
$ curl -X POST https://dtrack.example.com/api/v1/bom \
-H 'X-API-Key: ${DT_TOKEN}' \
-F 'project=<UUID>' \
-F 'bom=@sbom.json' |
| Attest SBOM (cosign) | $ cosign attest --predicate sbom.spdx.json \
--type spdx \
ghcr.io/me/app:v1
# Downloads → verified:
$ cosign verify-attestation --type spdx ghcr.io/me/app:v1 |
US federal contractors с 2023 (EO 14028). EU Cyber Resilience Act (CRA) с 2027 — весь software на EU рынке. Enterprise customers — expected в RFP.
SPDX: Linux Foundation, широкое acceptance в enterprise. CycloneDX: OWASP, focus на security, richer vulnerability info. Оба — ISO стандарты 2024+.
Grype (Anchore) reads SPDX/CycloneDX + CVE DB. Dependency-Track (OWASP) — continuous monitoring, new CVEs alert on old release.
Upload в Dependency-Track / Snyk / GitHub Advisory. Для endpoint uptime — <a href="/check">Enterno HTTP checker</a>.