🛡️ Exercícios Práticos — DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD

Instruções Gerais:

  • Resolva as atividades em ordem progressiva de maturidade.
  • Cada nível adiciona requisitos técnicos, tratamento de erros e casos de borda reais.
  • Consulte o gabarito comentado ao final de cada questão para autoavaliação.

🎯 Nível 1: Fundamentos

Problema 17.1 — Assinatura Criptográfica de Imagens Docker com Cosign (Sigstore)

Contexto: Assinatura Criptográfica de Imagens Docker com Cosign (Sigstore) no contexto de DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD.

Requisitos de Execução:

  1. Assinar imagem de container OCI publicando a assinatura no registro de containers.

Resultado Esperado

Imagem Docker assinada criptograficamente.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_17_1_SeuNome
  2. Envie na tarefa: Atividade Cap 17 - DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD
🔑 Gabarito de Código & Solução Comentada
# Assinatura de container com Sigstore Cosign
cosign sign --key cosign.key ghcr.io/empresa/portal-backend:v1.0.0
echo "Imagem container assinada com sucesso." 

# Checagem de status
STATUS=200
echo "Concluido com status $STATUS"
exit 0

🔍 Nível 2: Prática

Problema 17.2 — Verificação de Assinatura antes do Deploy no Kubernetes (Kyverno / Gatekeeper)

Contexto: Verificação de Assinatura antes do Deploy no Kubernetes (Kyverno / Gatekeeper) no contexto de DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD.

Requisitos de Execução:

  1. Configurar política de admissão no cluster bloqueando execução de pods sem assinatura válida.

Resultado Esperado

Cluster Kubernetes protegido contra execução de imagens não homologadas.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_17_2_SeuNome
  2. Envie na tarefa: Atividade Cap 17 - DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD
🔑 Gabarito de Código & Solução Comentada
# Verificacao de assinatura Cosign
cosign verify --key cosign.pub ghcr.io/empresa/portal-backend:v1.0.0
echo "Assinatura do container verificada: Deploy autorizado no Kubernetes." 

# Checagem de status
STATUS=200
echo "Concluido com status $STATUS"
exit 0

⚡ Nível 3: Integração

Problema 17.3 — Geração de Lista de Materiais de Software (SBOM - Software Bill of Materials)

Contexto: Geração de Lista de Materiais de Software (SBOM - Software Bill of Materials) no contexto de DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD.

Requisitos de Execução:

  1. Gerar arquivo SBOM no padrão CycloneDX ou SPDX catalogando todos os pacotes e licenças da aplicação.

Resultado Esperado

Inventário SBOM gerado para rastreabilidade de supply chain security.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_17_3_SeuNome
  2. Envie na tarefa: Atividade Cap 17 - DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD
🔑 Gabarito de Código & Solução Comentada
# Geracao de SBOM com Syft
syft packages dir:. -o cyclonedx-json=sbom.json
echo "SBOM CycloneDX gerado para conformidade de Supply Chain." 

# Checagem de status
STATUS=200
echo "Concluido com status $STATUS"
exit 0

🏆 Nível 4: Desafio Corporativo

Problema 17.4 — Hardening de Permissões de CI/CD e Runners Isolados

Contexto: Hardening de Permissões de CI/CD e Runners Isolados no contexto de DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD.

Requisitos de Execução:

  1. Configurar permissões mínimas no GitHub Actions (permissions: contents: read) e mascaramento de segredos.

Resultado Esperado

Pipeline CI/CD blindado contra ataques de Supply Chain e envenenamento de runners.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_17_4_SeuNome
  2. Envie na tarefa: Atividade Cap 17 - DevSecOps: Assinatura de Artefatos com Cosign e Hardening CI/CD
🔑 Gabarito de Código & Solução Comentada
permissions:
  contents: read
  security-events: write

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos