Pular para o conteúdo principal

📘️ Matriz de Requisitos Técnicos para Projetos IaC

Este catálogo define requisitos de segurança específicos para projetos de Infraestrutura como Código (IaC), que complementam os requisitos aplicacionais definidos no Capítulo 02.

Estes requisitos são aplicáveis diretamente ao código, estrutura e práticas dos próprios projetos IaC, e incluem aspetos tanto aplicacionais (ex: versionamento, validação) como infraestruturais (ex: controlo de estado, segregação de ambientes, enforcement de políticas).


📊 Requisitos por nível de risco

IDRequisitoL1L2L3Cap. 2?ReferênciasJustificação
IAC-001O projeto IaC deve usar backend remoto autenticado com locking ativado para controlo de estadoXX-SSDF PW.5, Terraform DocsEvita concorrência e drift em ambientes críticos
IAC-002Ambientes (dev, QA, prod) devem ser definidos de forma segregada e versionadaXXXREQ-004CIS 4.5, SSDF PM.2Impede alterações acidentais e permite revisão por ambiente
IAC-003Todas as alterações devem ser sujeitas a validações automáticas (syntax, lint, policy, segurança)XXXREQ-005SSDF PS.2, SLSA Build L2Reforça integridade e conformidade contínua
IAC-004Módulos reutilizados devem ter origem confiável (repositório interno, hash ou verificação manual)XX-SLSA Source L2, TerraformProtege contra código externo malicioso ou obsoleto
IAC-005O histórico de alterações deve ser completo, com tagging e releases rastreáveisXXXREQ-002GitOps, SSDF CM.1Suporta rollback e auditoria
IAC-006Devem existir convenções formais de nomeação, tagging e estrutura de diretóriosXX-Terraform Best PracticesFacilita automação, rastreabilidade e revisão
IAC-007O plano (terraform plan ou equivalente) deve ser rastreado e aprovado antes do applyXX-SSDF PW.6Garante controlo de alterações aplicadas
IAC-008O projeto IaC deve ter rastreabilidade entre ficheiros e os ambientes/recursos que afetamXX-SSDF CM.5Permite accountability e avaliação de impacto
IAC-009Devem existir políticas de enforcement aplicadas automaticamente (ex: OPA, Sentinel, Rego, Conftest)X-SSDF PW.5, SLSA L3Reduz risco de erro humano e aplica controlo em pipelines
IAC-010Os artefactos gerados (ex: plan, apply, manifests) devem ser armazenados com versionamento e hashXX-SLSA Provenance, SSDF PW.4Garante integridade e auditoria de mudanças em tempo
IAC-011O projeto IaC não deve conter segredos hardcoded e deve integrar mecanismo seguro de gestão de segredosXXXREQ-008SSDF PW.6, Terraform Sec. GuideProtege contra exfiltração acidental e rastreia origem e uso de credenciais
IAC-012Deve existir mecanismo automatizado de deteção de drift entre infraestrutura real e definição em códigoXX-Terraform plan, Driftctl, SSDF CM.5Garante que estado real reflete intenção e permite auditoria contínua
IAC-013Os templates e módulos IaC devem ser alvo de revisão formal e periódica por equipa AppSec ou DevSecOpsX-SAMM AA2.2, SR2.2A revisão periódica reduz risco de propagação de práticas obsoletas ou inseguras

📌 Notas explicativas

  • IAC-001: aplica-se a projetos com múltiplos colaboradores e ambientes partilhados.
  • IAC-004: módulos não verificados podem conter configurações perigosas ou vulnerabilidades.
  • IAC-007: permite validar o que será alterado antes da execução e associar a change request.
  • IAC-009: enforcement automatizado evita drift organizacional e violações de política.
  • IAC-010: necessário para rastrear o impacto real do IaC aplicado em ambientes produtivos.
  • IAC-011: promove boas práticas de separação entre código e segredos sensíveis.
  • IAC-012: assegura integridade e deteção precoce de alterações fora do pipeline.
  • IAC-013: fomenta ciclos de revisão técnica contínua com base em risco e criticidade.

🧾 Exemplos de evidência

RequisitoEvidência sugerida
IAC-001Configuração de backend remoto (backend.tf) com locking ativado
IAC-003Log de execução de linter + scanner (ex: TFLint, tfsec, Checkov)
IAC-005Histórico Git com tags, releases e convenções de commits
IAC-007Aprovação manual ou automática do plan via Pull Request com diff visível
IAC-009Política OPA/Rego em CI/CD + resultados visíveis e bloqueio se não conforme
IAC-011Ausência de segredos no código + integração com Vault/KMS/GitHub Actions Secrets
IAC-012Relatórios de drift (terraform plan, driftctl, alarmes de divergência)
IAC-013Ata de revisão, calendarização no backlog, ou comentários de segurança nos PRs

🔗 Relacionado com outros capítulos