---
title: "Verify signatures and provenance before · Agent Wranglers"
url: https://agentwranglers.se/playbook/application-security/supply-chain/verify-provenance
id: APS-105
level: Recommended
updated: 2026-10-27
build: a2a6bdfed830
tokens: 762
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Verify signatures and provenance before you install or deploy

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Supply chain](https://agentwranglers.se/playbook/application-security/supply-chain.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: APS-105
- Level: Recommended
- Chapter: [Supply chain](https://agentwranglers.se/playbook/application-security/supply-chain.md)
- Rule: Check the signature or provenance of every package and container image before it runs, where the publisher offers one. Deploy only images signed by your own build.
- Check: CI runs `npm audit signatures` or the equal check for your package manager, and fails on an invalid signature. A test deploy of an unsigned image, and of one signed by another identity, is refused.
- How: Producing provenance helps others. Checking it protects you. For npm, `npm audit signatures` checks registry signatures and provenance of installed packages. For container images, verify the signature against the expected signer identity, such as your CI workflow, not only any valid signature. Put the check in the deploy step or in an admission policy of the cluster, so an image pushed by hand cannot run. Record which dependencies offer no provenance, and prefer ones that do when you [review a new package](https://agentwranglers.se/playbook/application-security/supply-chain/review-new-packages.md).

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### Shell example

```sh
npm ci && npm audit signatures
cosign verify registry.example.com/shop@sha256:4f1c... \
  --certificate-identity-regexp '^https://github.com/example-shop/shop/.github/workflows/release.yml@' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com
```

## Sources

- [SLSA v1.2 Verifying artifacts](https://slsa.dev/spec/v1.2/verifying-artifacts)

## Related rules

- APS-70 [Review every new package](https://agentwranglers.se/playbook/application-security/supply-chain/review-new-packages.md) in Application security

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/application-security/supply-chain/verify-provenance">Agent Wranglers application security playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Build releases at SLSA Build Level 2 or higher](https://agentwranglers.se/playbook/application-security/supply-chain/slsa-build-level.md)
- Next: [Say which known holes do not affect you with VEX](https://agentwranglers.se/playbook/application-security/supply-chain/vex.md)
- [Supply chain](https://agentwranglers.se/playbook/application-security/supply-chain.md)
