Description
Type: ci / security / release
Labels: security, ci, release, A-tooling
Source: discussion #3678
Summary
Build shipped Iggy binaries (iggy-server, iggy CLI, iggy-connectors, and
release connector .so plugins where applicable) with cargo auditable so the
complete dependency tree is embedded in each artifact. Deployed binaries can then
be scanned for CVEs post-release with cargo audit bin, even when the source
tree or Cargo.lock is no longer available.
Motivation
The audit and cargo-deny gates protect the source tree at merge time. They do
not help an operator running a binary shipped months ago when a new advisory
drops. cargo auditable embeds the dependency manifest into the binary at build
time, enabling point-in-time CVE scanning of any deployed artifact. This closes
the loop: scan at merge (cargo-deny), scan at rest (cargo-auditable +
cargo audit bin).
Reference: https://github.com/rust-secure-code/cargo-auditable
Affected area / component
CI / build / tooling
Proposed solution
Proposed approach
- Use
cargo auditable build --release in the release build workflow
(.github/workflows/_build_rust_artifacts.yml and any binary-producing
release jobs) in place of cargo build --release for shipped artifacts.
- CI installs
cargo-auditable on demand (do not pin in
rust-toolchain.toml; follow the on-demand cargo-tool install pattern).
- Add a verification step:
cargo audit bin <artifact> on each produced binary,
confirming the audit data is present and scannable. Non-zero on new findings
(or warn-only initially, aligned with the audit-remediation issue).
- Document the operator workflow (how to run
cargo audit bin against a shipped
Iggy binary) in release docs / SECURITY guidance.
- Confirm no meaningful binary-size or build-time regression; note the delta.
Scope / tasks
Acceptance criteria
- Shipped release binaries contain embedded audit data (
cargo audit bin
returns dependency data, not "no audit data found").
- Release workflow verifies embedded audit data per artifact.
- Operator-facing documentation describes how to scan a deployed binary.
- No unacceptable size/build-time regression (delta documented).
Related
- Audit and remediate known CVEs (sibling issue).
- Add
cargo deny as a pre-merge check (sibling issue).
Alternatives considered
No response
Contribution
Good first issue
Description
Type: ci / security / release
Labels:
security,ci,release,A-toolingSource: discussion #3678
Summary
Build shipped Iggy binaries (
iggy-server,iggyCLI,iggy-connectors, andrelease connector
.soplugins where applicable) withcargo auditableso thecomplete dependency tree is embedded in each artifact. Deployed binaries can then
be scanned for CVEs post-release with
cargo audit bin, even when the sourcetree or
Cargo.lockis no longer available.Motivation
The audit and cargo-deny gates protect the source tree at merge time. They do
not help an operator running a binary shipped months ago when a new advisory
drops.
cargo auditableembeds the dependency manifest into the binary at buildtime, enabling point-in-time CVE scanning of any deployed artifact. This closes
the loop: scan at merge (cargo-deny), scan at rest (cargo-auditable +
cargo audit bin).Reference: https://github.com/rust-secure-code/cargo-auditable
Affected area / component
CI / build / tooling
Proposed solution
Proposed approach
cargo auditable build --releasein the release build workflow(
.github/workflows/_build_rust_artifacts.ymland any binary-producingrelease jobs) in place of
cargo build --releasefor shipped artifacts.cargo-auditableon demand (do not pin inrust-toolchain.toml; follow the on-demand cargo-tool install pattern).cargo audit bin <artifact>on each produced binary,confirming the audit data is present and scannable. Non-zero on new findings
(or warn-only initially, aligned with the audit-remediation issue).
cargo audit binagainst a shippedIggy binary) in release docs /
SECURITYguidance.Scope / tasks
cargo auditable build --release.cargo-auditableon demand in the relevant workflows.cargo audit binverification step over produced artifacts..soplugin builds embed audit data (or document why not).cargo audit binusage in release/security docs.Acceptance criteria
cargo audit binreturns dependency data, not "no audit data found").
Related
cargo denyas a pre-merge check (sibling issue).Alternatives considered
No response
Contribution
Good first issue