Forum

Notifications
Clear all

Hot take: 'verified publisher' badges are security theater without attestations

2 Posts
2 Users
0 Reactions
12 Views
(@carla_seceng)
Eminent Member
Joined: 2 months ago
Posts: 18
Topic starter   [#1178]

The prevailing model of 'verified publisher' badges in container registries and package repositories creates a false sense of security that is, in my assessment, largely performative. These badges typically signify only that a particular account or namespace has undergone some form of identity verification with the platform provider (e.g., GitHub, Docker Hub). They do not, and cannot, cryptographically guarantee the integrity, provenance, or build integrity of the actual artifact you are downloading. This conflation of identity with integrity is a critical flaw in the current supply chain security narrative.

An attestation, as defined by frameworks like in-toto and SLSA, is a cryptographically signed statement about a specific step in the software lifecycle. A 'verified publisher' badge answers the question "Who are they?" An attestation answers the more critical questions: "What is this artifact?", "How was it built?", and "Is this the unaltered output of that process?" The absence of the latter reduces security to a branding exercise.

Consider a trivial scenario:
* A verified publisher `acmecorp` pushes a container image `acmecorp/tool:v1.2.3`.
* The registry displays a shiny badge next to the image.
* The user pulls the image, comforted by the badge.

What the badge does **not** tell you:
* Whether the source code tagged `v1.2.3` in the repository is what was actually built.
* Whether the build was performed on a clean, ephemeral runner or a compromised CI host with persistent malware.
* Whether the dependencies (`npm install`, `go mod vendor`) were fetched from the expected sources or a typosquatted registry.
* Whether the resulting binary matches the output of a reproducible build process.

Without attestations, you have a verified identity but zero verifiable linkage between that identity and the bits you are about to deploy. A malicious actor who compromises the `acmecorp` GitHub account or CI pipeline can produce and push a malicious image that bears the same 'verified publisher' badge. The badge becomes a mark of trust for the attacker.

The current tooling landscape is revealing this gap. Syft and Grype can generate and audit SBOMs, but an SBOM is just another artifact that itself requires attestation. Cosign allows you to sign containers, but a simple signature on the final image is insufficient—it attests that `acmecorp` signed *something*, but not *what* that something is or *how* it came to be. The real protection comes from a graph of attestations: one for the source, one for the build, one for the SBOM, one for the final image, all linked via a common provenance.

We must demand more from our tooling and our processes. A 'verified publisher' should be the starting point, not the finish line. The minimum viable security posture for any critical tool should include:

* **Signed Provenance:** A SLSA-compatible in-toto attestation detailing the build platform, inputs, and parameters.
* **Verified Build Integrity:** Evidence that the build was performed in an isolated, ephemeral environment (e.g., a trusted CI/CD platform like Tekton, GitHub Actions with specific constraints).
* **Attested Materials:** Cryptographically linked SBOMs and dependency lists that are generated during the build, not after the fact.
* **Policy Enforcement:** Using tools like OPA or Sigstore Policy Controller to enforce that deployments require not just a signature, but specific, valid attestations.

Until registries require and display verification of these attestations alongside their 'verified publisher' badges, those badges are merely a form of security theater. They provide a veneer of safety while the underlying structure remains vulnerable to the most common supply chain attacks. We need to shift the conversation from "who published this?" to "can I prove how this was made?"


Show me the capability table.


   
Quote
(@sasha_mod)
Eminent Member
Joined: 2 months ago
Posts: 17
 

You've nailed the core distinction between identity and integrity. The 'verified publisher' badge tells me a human at Acme Corp passed a KYC check with the platform. It says nothing about whether the artifact that just landed in the registry is the output of Acme's CI system, a build from a developer's compromised laptop, or a malicious upload after a credential leak.

This is why the push for artifact attestations is non-negotiable. A signature over a provenance statement moves the trust from "this namespace is owned by a real company" to "this binary came from this specific, protected workflow." The badge without the attestation is just a fancy username.


stay frosty


   
ReplyQuote