Cyber Security Academy · Aula

Assinatura de dependências e artefatos

Verifique a procedência com SLSA e Sigstore.

Aula 3 de 413 etapas

Assinatura de dependências e artefatos é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

Por que a proveniência é importante

Um SBOM informa o que há dentro de um artefato. A proveniência informa de onde ele veio e como foi criado. A assinatura vincula um artefato a uma origem verificável, para que os consumidores possam rejeitar qualquer coisa que não tenha sido produzida pelo seu fluxo confiável.

Sem proveniência, um invasor que substitua um arquivo tar no seu registro é indistinguível de um lançamento legítimo.

Resumos criptográficos, não rótulos

A base da integridade é o endereçamento por conteúdo. Um resumo criptográfico de um artefato identifica exclusivamente aquele conjunto exato de bytes. Rótulos mutáveis como latest podem ser redirecionados; um resumo criptográfico não pode.

# pull by immutable digest, not a tag
docker pull my-app@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f

# compute a file digest
sha256sum release-1.4.0.tar.gz

Noções básicas de assinaturas digitais

Uma assinatura digital usa uma chave privada para assinar o resumo criptográfico do artefato; qualquer pessoa com a chave pública correspondente pode verificá-la. Isso oferece duas garantias:

  • Integridade — o artefato não foi modificado após a assinatura
  • Autenticidade — ele foi assinado pelo titular da chave privada

A parte difícil não é a matemática; é o gerenciamento de chaves e a distribuição de confiança: como uma pessoa verificadora sabe em qual chave pública confiar?

Assinatura sem chaves com Sigstore

A assinatura tradicional obriga as equipes a proteger chaves privadas de longa duração, que acabam vazando. O Sigstore oferece assinatura sem chaves: emite um certificado de curta duração vinculado a uma identidade OIDC (como uma carga de trabalho de CI ou o endereço de e-mail de um desenvolvedor), assina e registra o evento em um registro público de transparência chamado Rekor.

Não há nenhuma chave de longa duração para roubar, e toda assinatura pode ser auditada publicamente.

Assinatura com Cosign

Cosign é a ferramenta do Sigstore para assinar imagens de contêineres e outros artefatos. No modo sem chaves, usa a credencial OIDC do fluxo, portanto nenhum arquivo de chave fica armazenado no disco.

# keyless sign in CI (uses ambient OIDC identity)
COSIGN_EXPERIMENTAL=1 cosign sign my-registry/my-app@sha256:1d5283...

# verify, asserting the expected signer identity
cosign verify my-registry/my-app@sha256:1d5283... \
  --certificate-identity-regexp '.*@my-org\.com' \
  --certificate-oidc-issuer https://accounts.google.com

O registro de transparência

O Sigstore registra cada evento de assinatura no Rekor, um registro público, somente para acréscimos e que evidencia adulterações. Esse é um poderoso controle de detecção:

  • É possível provar quando algo foi assinado
  • Um invasor que roube uma identidade não pode assinar secretamente — o evento é registrado publicamente
  • Assinaturas anômalas (identidade inesperada, fora do horário) tornam-se detectáveis

A transparência transforma um comprometimento silencioso em evidência observável.

SLSA: níveis de integridade da compilação

SLSA (Níveis da cadeia de fornecimento para artefatos de software) é uma estrutura que classifica o grau de confiabilidade do seu processo de compilação. Níveis mais altos exigem garantias mais fortes contra adulteração.

  • L1 — a proveniência existe e está documentada
  • L2 — proveniência assinada de um serviço de compilação hospedado
  • L3 — compilações reforçadas e isoladas; a proveniência não pode ser falsificada nem mesmo por uma pessoa interna do fluxo

SLSA é um roteiro: escolha um nível-alvo e elimine as lacunas.

Atestados de proveniência da compilação

Um atestado de proveniência é uma declaração assinada que descreve como um artefato foi criado: o identificador da alteração no código-fonte, a identidade do compilador, os parâmetros de compilação e as entradas. O formato in-toto padroniza isso.

# generate and attach SLSA provenance for an image
cosign attest --type slsaprovenance \
  --predicate provenance.json \
  my-registry/my-app@sha256:1d5283...

# verify provenance matches expected source repo
cosign verify-attestation --type slsaprovenance my-registry/my-app@sha256:1d5283...

Aplicação de assinaturas na admissão

A assinatura só é útil se algo recusar artefatos não assinados. No Kubernetes, um controlador de admissão pode bloquear qualquer imagem sem uma assinatura válida e sem proveniência da sua identidade confiável.

  • Controladores de políticas verificam assinaturas do cosign antes de um pod ser iniciado
  • Rejeitam imagens assinadas por identidades inesperadas
  • Exigem proveniência que aponte para seu repositório de origem aprovado

Isso fecha o ciclo: artefatos não confiáveis nunca são executados.

Assinatura das dependências na origem

A proveniência é mais valiosa quando se estende ao que você consome, não apenas ao que envia. Os ecossistemas estão adicionando assinatura e proveniência nativas:

  • Proveniência do npm vincula um pacote publicado à sua alteração no código-fonte e à sua execução de CI
  • Imagens base de contêineres cada vez mais incluem assinaturas do cosign
  • Registros de linguagens estão testando a verificação baseada no Sigstore

Prefira dependências que publiquem proveniência verificável e verifique-a durante a instalação quando houver suporte.

Priorize a verificação

Uma estratégia prática de assinatura é composta por camadas e verificada de ponta a ponta:

  • Fixe as entradas por resumo criptográfico
  • Assine sem chaves os artefatos e anexe SBOM e atestados de proveniência
  • Registre tudo em um registro de transparência
  • Aplique a verificação na implantação com uma política de admissão

A cadeia só é tão forte quanto seu elo não verificado mais fraco, portanto verifique-a em cada ponto de consumo.

Verificação rápida: assinatura sem chaves

Analise por que a assinatura sem chaves melhora a segurança da cadeia de fornecimento.

Recapitulação: assinatura de dependências e artefatos

Você aprendeu a comprovar a proveniência e aplicá-la.

  • Fixe pelo resumo criptográfico, não por rótulos mutáveis
  • Assinaturas digitais oferecem integridade e autenticidade; o desafio é o gerenciamento de chaves
  • Sigstore + cosign permitem assinatura sem chaves com um registro público de transparência do Rekor
  • SLSA classifica a integridade da compilação; atestados de proveniência registram como os artefatos foram criados
  • Políticas de admissão rejeitam qualquer coisa não assinada ou não confiável no momento da implantação

Próximo passo: reforçar o fluxo de CI/CD que produz esses artefatos.

Grátis para começar

Aprenda Cyber Security Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
76
Aulas
303

Perguntas Frequentes

A aula “Assinatura de dependências e artefatos” é grátis?

Sim — o texto completo de “Assinatura de dependências e artefatos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “Assinatura de dependências e artefatos”?

Verifique a procedência com SLSA e Sigstore. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Assinatura de dependências e artefatos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ameaças à cadeia de suprimentos
  2. Lista de materiais de software (SBOM)
  3. Assinatura de dependências e artefatos
  4. Protegendo pipelines de CI/CD
← Voltar para Cyber Security Academy