🧪 Estudo de Caso - Aplicar o SbD-ToE a um Projeto de IaC
Este estudo de caso descreve a aplicação prática e transversal do manual Security by Design - Theory of Everything (SbD-ToE) a um projeto real de Infraestrutura como Código (IaC). O objetivo foi aplicar as práticas prescritas no Capítulo 08 de forma sistemática, desde a estrutura do repositório até à auditoria e validação contínua.
O projeto tratado aqui é responsável pela definição de ambientes (dev, QA, prod) num cluster Kubernetes e respetivos serviços de rede, autenticação e logging. Foi considerado de criticidade L3.
🧭 Classificação de risco
Através da metodologia do Capítulo 01 - Gestão de Risco, foi atribuída classificação L3 (Elevado) ao projeto IaC, com base em:
- Capacidade de impactar ambientes produtivos e múltiplas aplicações;
- Acesso a recursos críticos (VPC, certificados, serviços core);
- Potencial de causar interrupções e incidentes de segurança em larga escala.
📐 Arquitetura e modelo de repositório
- Uso de Terraform com estrutura modular por ambiente;
- Separação física de repositórios:
iac-core,iac-prod,iac-nonprod; - Pipelines CI/CD separados por ambiente e com controlos distintos;
- Utilização de GitHub Actions com
OPAeCheckovem todos os PRs; - Backend remoto com locking e encriptação (
S3 + DynamoDB + KMS).
🔍 Threat modeling
Aplicado conforme Capítulo 03 - Threat Modeling:
-
Análise STRIDE dos fluxos de aplicação da infraestrutura;
-
Identificação de ameaças como:
- Tampering (modificação maliciosa de módulos externos);
- Information Disclosure (exposição por permissões abertas ou tags inadequadas);
- Repudiation (alterações sem evidência ou accountability);
-
Mitigações mapeadas contra requisitos
IAC-XXXe controlos no pipeline.
🧱 Aplicação dos requisitos de segurança
Todos os requisitos IAC-001 a IAC-013 foram revistos e aplicados proporcionalmente:
- Drift detection ativa (
terraform plan,driftctl, alarmes); - Validações automáticas (
tfsec,tflint,OPA,Conftest); - Controlo de segredos via Vault (integração com
secrets.tf.json); - Versionamento com tagging, releases e rastreabilidade de
plan; - Separação clara de ambientes e políticas obrigatórias de tagging.
📊 Validações e evidência
Com base no Capítulo 10:
- Todos os
PRsrequerem validação automática e revisão humana; - Relatórios de validação são arquivados automaticamente por ambiente;
- Foi implementada auditoria contínua sobre
plan vs apply; - Exceções são documentadas e validadas por AppSec segundo Capítulo 14.
🔐 Integração com pipeline CI/CD
- Os pipelines são validados com política de branch restrita;
- Cada
pushamainaciona validação +terraform plan, com bloqueio deapplysem aprovação; - A execução dos pipelines é feita em runners dedicados, com logs centralizados;
- A assinatura dos artefactos
plané feita via hash e armazenada com metadados.
🎓 Formação e onboarding
Reconhecendo que o projeto IaC envolve práticas específicas e requisitos técnicos exigentes, foi criado um módulo de formação dedicado à equipa responsável pelo desenvolvimento e manutenção do código de infraestrutura. Este módulo cobre:
- Os requisitos de segurança aplicáveis (
REQ-XXX,IAC-XXX); - As ferramentas obrigatórias no pipeline (
tfsec,Checkov,OPA,driftctl); - Boas práticas de segregação de ambientes e tagging;
- Gestão de segredos via KMS/Vault;
- Ciclo de validação e evidência;
- Como interpretar falhas de conformidade e agir sobre elas;
- Processo de exceções e governação associada.
A formação foi disponibilizada em formato síncrono e assíncrono, com exemplos baseados no próprio repositório do projeto.
Além disso:
- Foram incluídas user stories de segurança no backlog técnico da equipa;
- Foi criada uma checklist de onboarding para novos elementos, com foco nas práticas prescritas pelo Capítulo 08;
- O processo de formação é considerado requisito para contribuição com permissões de escrita no repositório.
✅ Conclusão
Este caso demonstra a aplicação coerente e sistemática do SbD-ToE a um projeto real de Infraestrutura como Código (IaC). A abordagem permitiu:
- Aumentar o controlo e previsibilidade das alterações;
- Reduzir falhas causadas por erro humano ou prática obsoleta;
- Estabelecer uma base sólida para governação, rastreabilidade e auditoria.
💡 Este estudo pode ser reutilizado como modelo para novos projetos IaC, como base de formação ou como critério de aceitação organizacional.