Pular para o conteúdo principal

📅 Aplicação no Ciclo de Vida - CI/CD Seguro

Enquanto o intro.md explica porque os pipelines são críticos e que práticas devem ser aplicadas, este documento mostra como transformar essas prescrições em ações concretas dentro do ciclo de vida de desenvolvimento e entrega.
A lógica é simples mas poderosa: cada controlo deve ter um momento certo, um responsável definido, uma user story clara e uma evidência verificável.
Só assim a segurança em CI/CD deixa de ser teórica e passa a ser prática operacional auditável.


🧭 Quando aplicar

A segurança em pipelines não acontece apenas quando algo corre mal - ela é parte do seu ADN desde o primeiro commit.
Cada vez que se cria, altera ou promove um pipeline, existem triggers que exigem controlos específicos:

Momento triggerObjetivo de segurançaPapéis principais
Criação ou refactor do pipelineIntroduzir controlos base (proteção, scanners)Developers, DevOps / SRE
Alteração de tooling/infra (runners, secrets)Rever isolamento, injeção de segredos e permissõesDevOps / SRE, AppSec Engineers
Introdução/atualização de scannersAumentar cobertura e gates proporcionais ao riscoDevelopers, AppSec Engineers
Preparação de release / promoção a produçãoValidar assinatura e proveniência dos artefactosDevOps / SRE, AppSec Engineers
Registo de exceção (bypass de gate)Aprovação formal, prazos e compensaçõesGRC / Compliance, Auditores Internos, AppSec Engineers
Auditoria ou revisão periódicaDemonstrar rastreabilidade ponta-a-pontaGRC / Compliance, Auditores Internos, DevOps / SRE

👥 Quem executa cada ação

A responsabilidade em CI/CD é partilhada.
Um pipeline seguro resulta da soma de esforços: do programador que submete código com scanners ativos, ao DevOps que endurece runners, até ao GRC que valida exceções.

Ação operacionalResponsávelApoioEvidência/Artefactos
Definir/alterar pipeline versionado via PRDevelopersDevOps / SREci-pipeline.yml, histórico de revisão
Endurecer runners (ephemerais, não-privilegiados, segregados)DevOps / SREAppSec EngineersConfiguração de runners, imagens base
Integrar scanners (SAST, secrets, IaC, containers, SBOM)DevelopersAppSec Engineers, DevOps / SRERelatórios de scanners, configs no pipeline
Injeção segura de segredos (OIDC, TTL curto, masked logs)DevOps / SREAppSec EngineersPolíticas de segredos, logs de acesso
Assinar artefactos e gerar proveniênciaDevOps / SREAppSec EngineersAssinaturas, ficheiros de proveniência
Definir políticas/gates por risco (L1–L3)AppSec EngineersDevOps / SRE, GRC / ComplianceRegras de gates, thresholds
Registar e aprovar exceçõesGRC / Compliance, Auditores InternosAppSec EngineersRegisto formal de exceções e aprovações
Garantir rastreabilidade ponta-a-pontaDevOps / SREGRC / Compliance, Auditores InternosLogs correlacionados commit→pipeline→release

🧾 User Stories normalizadas

Cada prática é expressa como user story reutilizável, com critérios verificáveis, artefactos concretos e proporcionalidade por nível de risco.


US-01 - Gestão segura de código fonte

Contexto.
Sem controlo sobre o repositório, qualquer pipeline é vulnerável.

User Story

História.
Como Developers, quero que todas as alterações ao repositório sejam protegidas por PR e revisão obrigatória, para garantir integridade.

Critérios de aceitação (BDD).

  • Dado que existe um repositório protegido
    Quando submeto um PR para main
    Então só é aceite após revisão obrigatória e todos os checks concluídos com sucesso.
  • Dado que ocorre um merge
    Quando são detetados conflitos
    Então é exigida nova revisão e execução automática dos scanners de segurança.

Checklist.

  • Branch protection ativa
  • Reviewer obrigatório
  • Status checks configurados
  • Proibido force push

🧾 Artefactos & evidências.
Políticas de branch protection; logs de revisão; histórico Git; auditoria de merges.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimRevisão simples e build check obrigatório
L2SimRevisor técnico + validação de segurança ativa
L3SimRevisão dupla (code owner + AppSec) e bloqueio em falhas High

US-02 - Design seguro dos pipelines

Contexto.
Pipelines inseguros são alvos privilegiados de ataque.

User Story

História.
Como DevOps / SRE, quero pipelines versionados e aprovados por PR, para evitar alterações não auditadas.

Critérios de aceitação (BDD).

  • Dado que altero pipeline
    Quando submeto PR
    Então só é aceite após revisão por DevOps e AppSec.
  • Dado que há alteração de ferramentas
    Quando o pipeline é modificado
    Então é criada nova versão rastreável.

Checklist.

  • ci-pipeline.yml versionado
  • PR obrigatório
  • Triggers explícitos
  • Histórico de versões mantido

🧾 Artefactos & evidências.
Histórico de commits; ficheiro ci-pipeline.yml; aprovação PR; logs de revisão.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimVersão única do pipeline com aprovação manual
L2SimVersionamento e revisão obrigatória
L3SimControlo de alterações assinado e validação SLSA

US-03 - Scanners integrados

Contexto.
Detetar cedo é mais barato e eficaz.

User Story

História.
Como Developers, quero que o pipeline execute scanners de segurança, para impedir falhas graves em produção.

Critérios de aceitação (BDD).

  • Dado que submeto código
    Quando corre pipeline
    Então falhas críticas bloqueiam merge.
  • Dado que é introduzido novo tipo de artefacto
    Quando o scanner não o cobre
    Então o AppSec define regra de deteção adicional.

Checklist.

  • SAST ativo
  • Secrets scanning ativo
  • IaC scanning (quando aplicável)
  • Falhas High bloqueiam merge

🧾 Artefactos & evidências.
Relatórios de scanners; logs CI/CD; registos de bloqueio de merges; dashboards de vulnerabilidades.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimScanners básicos (SAST, secrets)
L2SimInclusão de IaC e análise de dependências
L3SimScanners completos com coverage de containers e SBOM

US-04 - Gestão de segredos

Contexto.
Segredos estáticos expõem a organização.

User Story

História.
Como DevOps / SRE, quero segredos injetados por OIDC com TTL curto, para reduzir risco de abuso.

Critérios de aceitação (BDD).

  • Dado que pipeline arranca
    Quando credenciais são necessárias
    Então são emitidas JIT e mascaradas em logs.
  • Dado que o token expira
    Quando é necessário novo acesso
    Então é gerado token temporário novo sem reutilização.

Checklist.

  • OIDC configurado
  • TTL curto
  • Variáveis mascaradas

🧾 Artefactos & evidências.
Políticas de segredos; logs de acesso; configuração OIDC; histórico de tokens emitidos.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalSegredos armazenados encriptados
L2SimOIDC implementado com TTL controlado
L3SimTokens efémeros automáticos e rotação diária

US-05 - Isolamento de runners

Contexto.
Runners inseguros comprometem todo o ecossistema.

User Story

História.
Como DevOps / SRE, quero runners ephemerais e segregados, para reduzir persistência pós-compromisso.

Critérios de aceitação (BDD).

  • Dado que job termina
    Quando runner encerra
    Então é destruído sem manter estado.
  • Dado que são criados novos runners
    Quando há pipelines paralelos
    Então são isolados por namespace e permissões.

Checklist.

  • Runners efémeros
  • Sem privilégios excessivos
  • Segmentação de rede

🧾 Artefactos & evidências.
Configuração de runners; logs de execução; registos de isolamento; scripts de provisionamento.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalRunners partilhados com limites
L2SimSegregação de runners por projeto
L3SimRunners efémeros, rede isolada e destruição automática

US-06 - Assinatura e proveniência

Contexto.
Artefactos não assinados perdem legitimidade.

User Story

História.
Como DevOps / SRE, quero que todos os artefactos sejam assinados e tenham proveniência validada, para garantir confiança.

Critérios de aceitação (BDD).

  • Dado que artefacto é produzido
    Quando é promovido
    Então assinatura e proveniência são verificadas.
  • Dado que falha verificação
    Quando assinatura não é válida
    Então o artefacto é rejeitado e alerta emitido.

Checklist.

  • Assinatura automática
  • Proveniência SLSA
  • Verificação antes de release

🧾 Artefactos & evidências.
Assinaturas digitais; ficheiros de proveniência; logs de promoção; auditoria de build.

Referência: Este US complementa [Cap 05-US-02: SBOM em cada build] ao integrar assinatura e proveniência no pipeline de CI/CD. SBOM e assinatura devem ser geradas conjuntamente como artefactos da build.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimAssinatura manual recomendada
L2SimAssinatura automática e validação SLSA L2
L3SimValidação obrigatória SLSA L3 e bloqueio automático

Padrão Comum: Assinatura e verificação de proveniência ocorrem em múltiplos contextos (CI/CD, IaC, imagens, deploy). Este US foca o contexto de pipeline de CI/CD; ver também Cap 08-US-09 (módulos IaC), Cap 09-US-03 (imagens), Cap 11-US-01 (deploy). Todos aplicam o mesmo princípio (sign → validate → use).


US-07 - Gates por risco

Contexto.
Nem todas as apps exigem o mesmo rigor.

User Story

História.
Como AppSec Engineers, quero gates distintos por L1–L3, para aplicar segurança proporcional.

Critérios de aceitação (BDD).

  • Dado que aplicação é L3
    Quando há falha High
    Então gate bloqueia promoção.
  • Dado que aplicação é L1
    Quando há falha Medium
    Então alerta é registado sem bloqueio.

Checklist.

  • Política publicada
  • Gates configurados
  • Thresholds definidos

🧾 Artefactos & evidências.
Políticas de gates; relatórios CI/CD; logs de bloqueio de promoção.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimApenas bloqueio de falhas críticas
L2SimBloqueio de High e Critical, aprovação AppSec
L3SimBloqueio automático, revisão GRC

US-08 - Cobertura ampliada

Contexto.
Cobertura limitada cria pontos cegos.

User Story

História.
Como AppSec Engineers, quero scanners de containers e SBOM em pipelines, para cobrir supply chain.

Critérios de aceitação (BDD).

  • Dado que imagem é construída
    Quando corre pipeline
    Então SBOM é gerado e anexado.
  • Dado que imagem base muda
    Quando vulnerabilidade é detetada
    Então é aberta tarefa de mitigação automática.

Checklist.

  • Container scanning ativo
  • SBOM gerado
  • Base images validadas

🧾 Artefactos & evidências.
Relatórios de scanning; SBOM; auditoria de imagens; logs de builds.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalScans de imagens base trimestrais
L2SimSBOM obrigatório e validação de base images
L3SimScans contínuos e correlação automática de CVEs

US-09 - Rastreabilidade ponta-a-ponta

Contexto.
Sem rastreio, auditoria é impossível.

User Story

História.
Como GRC / Compliance, quero rastrear commit→pipeline→release, para suportar auditorias.

Critérios de aceitação (BDD).

  • Dado que ocorre incidente
    Quando analiso release
    Então consigo traçar origem.
  • Dado que auditor pede evidências
    Quando executo consulta
    Então sistema exporta logs correlacionados.

Checklist.

  • IDs de correlação
  • Logs retidos
  • Export imutável

🧾 Artefactos & evidências.
Logs de pipelines; dashboards de rastreabilidade; registos de auditoria.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimLogs básicos armazenados 30 dias
L2SimRetenção 90 dias + correlação commit-build
L3SimRetenção 1 ano + exportação imutável

US-10 - Gestão de exceções

Contexto.
Exceções mal geridas tornam-se risco estrutural.

User Story

História.
Como GRC / Compliance, quero exceções registadas, aprovadas e temporárias, para não acumular dívida técnica.

Critérios de aceitação (BDD).

  • Dado que exceção é pedida
    Quando é analisada
    Então só é aprovada com prazo e compensações.
  • Dado que o prazo expira
    Quando exceção não é renovada
    Então é removida e pipeline volta ao modo de controlo normal.

Checklist.

  • Owner registado
  • Prazo definido
  • Aprovação dupla (AppSec + GRC)
  • Registo de compensações

🧾 Artefactos & evidências.
Registo de exceções; logs de aprovação; relatórios de revisão periódica; prazos automáticos no sistema de GRC.

Referência: Este US implementa [Cap 14-US-01: Processo formal de exceções] no contexto de pipeline CI/CD. Aprovação dupla, TTL e revalidação automática devem seguir a política master de exceções em Cap 14.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1SimRegisto simples com aprovação única
L2SimAprovação dupla e prazo máximo 60 dias
L3SimRevisão automática a cada sprint e auditoria obrigatória

US-11 - Testes de segurança dinâmicos (DAST)

Contexto.
Testes estáticos apenas cobrem parcialmente; DAST em staging valida comportamento real.

User Story

História.
Como AppSec Engineers, quero executar DAST em ambiente de staging após deployment, para validar vulnerabilidades comportamentais e corrigir antes de produção.

Critérios de aceitação (BDD).

  • Dado que nova build é promovida a staging
    Quando inicia pipeline DAST
    Então são executadas análises de autenticação, autorização, injection e XSS.
  • Dado que DAST encontra falha High
    Quando resultado é disponibilizado
    Então bloqueia promoção a produção até correção validada.

Checklist.

  • DAST integrado no pipeline
  • Credenciais de teste segregadas
  • Relatório correlacionado com commit
  • Bloqueio automático em High/Critical

🧾 Artefactos & evidências.
Relatórios DAST; logs de execução; evidências de correção; matriz de rastreabilidade.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalDAST manual trimestral
L2SimDAST em staging pré-release
L3SimDAST contínuo com bloqueio automático e retry pós-correção

US-12 - Métricas e conformidade organizacional

Contexto.
Sem visibilidade centralizada, risco acumula-se invisível.

User Story

História.
Como Gestão Executiva / CISO, quero visualizar dashboard de métricas de CI/CD (cobertura de scanners, exceções ativas, gate blocks, tempo de remediação), para decisão informada e ação corretiva.

Critérios de aceitação (BDD).

  • Dado que pipeline executa
    Quando eventos ocorrem (merge, gate block, exceção)
    Então são automaticamente registados em base central com timestamp e atores.
  • Dado que dashboard é consultado
    Quando métricas são renderizadas
    Então permitem slicing por project, team, período, severidade.

Checklist.

  • Eventos centralizados por telemetria
  • Dashboard com KPIs (cobertura, MTTR, compliance rate)
  • Alertas automáticos em anomalias
  • Relatórios mensais para GRC

🧾 Artefactos & evidências.
Dashboard de métricas; logs centralizados; relatórios de conformidade; alertas gerados.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalRelatórios manuais trimestrais
L2SimDashboard com KPIs principais, atualizado diariamente
L3SimDashboard em tempo real com alertas automáticos e previsões de risco

US-13 - Validação de integridade de imagens base

Contexto.
Imagens base comprometidas propagam risco a todo o ecossistema.

User Story

História.
Como DevOps / SRE, quero validar que imagens base não foram alteradas (hash, assinatura, drift) e correlacionar com CVEs, para evitar supply chain comprometido.

Critérios de aceitação (BDD).

  • Dado que imagem base é utilizada
    Quando pipeline inicia
    Então hash é validado contra registry confiável.
  • Dado que CVE novo é publicado
    Quando afeta imagem em uso
    Então alerta é criado e equipa é notificada para ação.

Checklist.

  • Hash de imagens base armazenado
  • Validação automática no pull
  • Rejeição se mismatch detectado
  • Correlação contínua com CVE feeds

🧾 Artefactos & evidências.
Hashes de imagens; logs de validação; relatórios de drift; correção de imagens.

⚖️ Proporcionalidade.

NívelObrigatório?Ajustes
L1OpcionalValidação manual mensal
L2SimValidação automática no pull com log
L3SimValidação + assinatura de imagens + alertas automáticos em drift ou CVE

📦 Artefactos esperados

Cada prática deixa pegadas técnicas. Sem elas, não há prova de conformidade:

Artefacto / EvidênciaDonoObservações
ci-pipeline.ymlDevelopersVersionado via PR (US-01, US-02)
Assinaturas + Proveniência (SLSA)DevOps / SREValidadas como gate (US-06)
Relatórios de scannersDevelopers / AppSec EngineersThresholds definidos (US-03)
SBOM por buildAppSec EngineersAnexado ao artefacto (US-08)
Registo de exceçõesGRC / Compliance / Auditores InternosInclui prazo e compensações (US-10)
Logs de execuções/releasesDevOps / SREIDs de correlação armazenados (US-09)
Relatórios DASTAppSec EngineersCorrelacionados com commits (US-11)
Dashboard de métricas CI/CDGestão Executiva / CISOKPIs de conformidade (US-12)
Hashes e validação de imagens baseDevOps / SRECorrelação com CVEs e drift (US-13)

⚖️ Matriz de proporcionalidade L1–L3

Nem todas as apps exigem o mesmo nível de rigor.
A matriz assegura que o esforço é proporcional ao risco:

CategoriaL1 (baixo)L2 (médio)L3 (crítico)
Branches/PR1 reviewer + build checkReviewer + segurança≥2 reviewers + code owners
ScannersSAST + secrets+ IaC+ Containers + SBOM
SegredosVariáveis mascaradasOIDC preferidoOIDC obrigatório + TTL curto
RunnersPartilhados com guardrailsSegregadosEfémeros + segmentação de rede
ArtefactosAssinatura recomendadaAssinatura + proveniência obrigatóriaRejeição automática se inválido
Gates por riscoAvisoBloqueio High/CriticalBloqueio Medium+
ExceçõesRegisto simplesAprovação AppSecDupla aprovação + prazo curto
RastreabilidadeLogs básicosIDs correlacionadosExport imutável + dashboards
DASTManual trimestralEm staging pré-releaseContínuo com bloqueio automático
MétricasRelatórios manuaisDashboard diário com KPIsDashboard tempo real + alertas
Imagens baseValidação manual mensalValidação automática no pull+ Assinatura + alertas em drift/CVE

🏁 Recomendações finais

A segurança de pipelines não é opcional: é o coração da segurança por design.
Um CI/CD seguro multiplica a confiança em todo o ciclo de vida, permitindo releases rápidas e auditáveis.

  • Prefere OIDC a segredos estáticos — elimina chaves long-lived.
  • Usa runners efémeros e segregados — reduz persistência de ataque.
  • Assina artefactos e regista proveniência — cada release deve ser verificável.
  • Aplica gates proporcionais ao risco — evita tanto o excesso como a negligência.
  • Controla exceções — com prazo, dono e compensações, nunca em aberto.
  • Investe em rastreabilidade totalcommit → pipeline → release como linha de confiança.

Em suma: um pipeline seguro é o garante silencioso de que todo o trabalho de desenvolvimento chega a produção de forma íntegra, confiável e auditável.