Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)35 mil · #5897

implementing-image-provenance-verification-with-cosign

Assina e verifica a proveniência de imagens de contêiner com Sigstore Cosign. Usa assinatura OIDC e registros de transparência para segurança da cadeia de suprimentos.

O que ela faz

Esta ferramenta ajuda a garantir que as imagens de software que você usa são autênticas e não foram alteradas. Ela funciona assinando digitalmente as imagens e verificando essas assinaturas.

Quando usar

  • ✓Ao usar imagens de software em ambientes críticos de segurança.
  • ✓Para garantir que as imagens de software vêm de fontes confiáveis.
  • ✓Para atender a requisitos de segurança e conformidade.

Exemplo do que pedir para a IA

“Como posso ter certeza de que a imagem de software que estou usando é a original e não foi modificada?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-image-provenance-verification-with-cosign/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-image-provenance-verification-with-cosign/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela usa uma ferramenta chamada Cosign para criar uma assinatura digital única para cada imagem. Ao usar a imagem, o Cosign verifica se a assinatura corresponde à imagem original.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-image-provenance-verification-with-cosign

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-image-provenance-verification-with-cosign/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Implementando Verificação de Proveniência de Imagem com Cosign

Visão Geral

Cosign é uma ferramenta Sigstore para assinar, verificar e anexar metadados a imagens de contêiner e artefatos OCI. Ele suporta assinatura baseada em chave e sem chave (OIDC), integra-se com Fulcio (autoridade certificadora) e Rekor (log de transparência), e habilita a segurança da cadeia de suprimentos para imagens de contêiner.

Quando Usar

  • Ao implantar ou configurar a implementação de verificação de proveniência de imagem com capacidades Cosign em seu ambiente
  • Ao estabelecer controles de segurança alinhados a requisitos de conformidade
  • Ao construir ou melhorar a arquitetura de segurança para este domínio
  • Ao conduzir avaliações de segurança que exigem esta implementação

Pré-requisitos

  • Cosign CLI instalado
  • Docker ou Podman para construir imagens
  • Registro de contêiner compatível com OCI (Docker Hub, GHCR, GCR, ECR)
  • Conta de provedor OIDC (GitHub, Google, Microsoft) para assinatura sem chave

Instalando Cosign

# Install via Go
go install github.com/sigstore/cosign/v2/cmd/cosign@latest

# Install via Homebrew
brew install cosign

# Install via script
curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64"
sudo mv cosign-linux-amd64 /usr/local/bin/cosign
sudo chmod +x /usr/local/bin/cosign

# Verify installation
cosign version

Assinatura Baseada em Chave

Gerar Par de Chaves

# Generate cosign key pair (creates cosign.key and cosign.pub)
cosign generate-key-pair

# Generate key pair stored in KMS
cosign generate-key-pair --kms awskms:///alias/cosign-key
cosign generate-key-pair --kms gcpkms://projects/PROJECT/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY
cosign generate-key-pair --kms hashivault://transit/keys/cosign

Assinar Imagem com Chave

# Sign an image
cosign sign --key cosign.key ghcr.io/myorg/myapp:v1.0.0

# Sign with annotations
cosign sign --key cosign.key \
  -a "build-id=12345" \
  -a "git-sha=$(git rev-parse HEAD)" \
  ghcr.io/myorg/myapp:v1.0.0

Verificar Imagem com Chave

# Verify signature
cosign verify --key cosign.pub ghcr.io/myorg/myapp:v1.0.0

# Verify with annotation check
cosign verify --key cosign.pub \
  -a "build-id=12345" \
  ghcr.io/myorg/myapp:v1.0.0

Assinatura Sem Chave (OIDC)

Assinar Sem Chave (Interativo)

# Keyless sign - opens browser for OIDC auth
cosign sign ghcr.io/myorg/myapp:v1.0.0

# The signature, certificate, and Rekor entry are created automatically

Assinar Sem Chave (CI/CD - Não Interativo)

# GitHub Actions (uses OIDC token automatically)
cosign sign ghcr.io/myorg/myapp:v1.0.0 \
  --yes

# With explicit identity token
cosign sign ghcr.io/myorg/myapp:v1.0.0 \
  --identity-token=$(cat /var/run/sigstore/cosign/oidc-token) \
  --yes

Verificar Assinatura Sem Chave

# Verify by email identity
cosign verify ghcr.io/myorg/myapp:v1.0.0 \
  --certificate-identity=builder@example.com \
  --certificate-oidc-issuer=https://accounts.google.com

# Verify by GitHub Actions workflow
cosign verify ghcr.io/myorg/myapp:v1.0.0 \
  --certificate-identity=https://github.com/myorg/myrepo/.github/workflows/build.yml@refs/heads/main \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

# Verify with regex matching
cosign verify ghcr.io/myorg/myapp:v1.0.0 \
  --certificate-identity-regexp=".*@example.com" \
  --certificate-oidc-issuer=https://accounts.google.com

Atestações (SLSA Provenance)

Anexar Atestação SBOM

# Generate SBOM
syft ghcr.io/myorg/myapp:v1.0.0 -o cyclonedx-json > sbom.cdx.json

# Attach SBOM as attestation
cosign attest --key cosign.key \
  --type cyclonedx \
  --predicate sbom.cdx.json \
  ghcr.io/myorg/myapp:v1.0.0

# Verify attestation
cosign verify-attestation --key cosign.pub \
  --type cyclonedx \
  ghcr.io/myorg/myapp:v1.0.0

Anexar Atestação de Verificação de Vulnerabilidade

# Run scan and save results
grype ghcr.io/myorg/myapp:v1.0.0 -o json > vuln-scan.json

# Attach scan results as attestation
cosign attest --key cosign.key \
  --type vuln \
  --predicate vuln-scan.json \
  ghcr.io/myorg/myapp:v1.0.0

Atestação SLSA Provenance

# Attach SLSA provenance
cosign attest --key cosign.key \
  --type slsaprovenance \
  --predicate provenance.json \
  ghcr.io/myorg/myapp:v1.0.0

# Verify SLSA provenance
cosign verify-attestation --key cosign.pub \
  --type slsaprovenance \
  ghcr.io/myorg/myapp:v1.0.0

Integração CI/CD

GitHub Actions


…
Perguntas frequentes

O que é 'proveniência de imagem'?

É a informação sobre a origem e o histórico de uma imagem de software, como quem a criou e quando.

Qual a diferença entre assinatura com chave e sem chave?

Assinatura com chave usa um par de chaves (pública e privada) que você gerencia. Assinatura sem chave usa sua identidade online (como uma conta Google ou GitHub) para assinar, tornando o processo mais simples.

O que são 'atestações'?

São informações adicionais sobre a imagem, como um relatório de vulnerabilidades ou uma lista de componentes (SBOM), que também são assinadas digitalmente para garantir sua integridade.

Detalhes

Descrição original do autor

Signs and verifies container image provenance with Sigstore Cosign, covering key-based and keyless OIDC signing (Fulcio, Rekor transparency log), SLSA attestations, and enforcing signature verification through Kubernetes admission control. Use when signing images for supply chain security, setting up keyless OIDC signing, attaching attestations, or enforcing a verified-images-only policy at admiss

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5897
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas