Deploy em produção: checklist de segurança antes de lançar

1. Preparação do Ambiente de Produção

O primeiro passo para um deploy seguro é garantir que o ambiente de produção esteja devidamente isolado e protegido. A segmentação de rede é essencial para limitar o impacto de possíveis invasões.

Checklist prático:
- [ ] VPC configurada com sub-redes públicas e privadas
- [ ] Grupos de segurança com regras de ingresso mínimas necessárias
- [ ] Firewall de aplicação web (WAF) ativado
- [ ] Acesso SSH desabilitado para IPs públicos

Exemplo de configuração de grupo de segurança (AWS Security Group):

# Regras de ingresso mínimas
- Porta 443 (HTTPS) — Origem: 0.0.0.0/0
- Porta 80 (HTTP) — Origem: 0.0.0.0/0 (redirecionamento para HTTPS)
- Porta 22 (SSH) — Origem: IP da VPN corporativa apenas

# Regras de egresso
- Toda saída bloqueada, exceto para serviços essenciais (bancos, APIs internas)

Princípio do menor privilégio: Revise todas as permissões IAM/RBAC. Nenhum usuário ou serviço deve ter mais permissões do que o estritamente necessário para sua função.

2. Segurança de Dados e Criptografia

Dados em repouso e em trânsito devem ser criptografados. Nunca armazene senhas, tokens ou chaves em código-fonte ou variáveis de ambiente não seguras.

Checklist prático:
- [ ] Criptografia AES-256 ativada em bancos de dados (RDS, MongoDB Atlas, etc.)
- [ ] TLS 1.2+ configurado para todas as comunicações
- [ ] Certificados SSL/TLS gerenciados (Let's Encrypt, AWS ACM)
- [ ] Secrets gerenciados em cofres (AWS Secrets Manager, HashiCorp Vault)

Exemplo de configuração de gerenciamento de segredos:

# Estrutura recomendada para secrets
- Banco de dados: DB_HOST, DB_PORT, DB_USER, DB_PASSWORD
- APIs externas: API_KEY, API_SECRET
- Tokens JWT: JWT_SECRET, JWT_EXPIRATION
- Certificados SSL: SSL_CERT, SSL_KEY

# Rotação automática a cada 90 dias

3. Autenticação e Autorização de Aplicações

A camada de autenticação deve ser robusta contra ataques comuns como força bruta e credential stuffing.

Checklist prático:
- [ ] OAuth 2.0 ou OpenID Connect implementado
- [ ] MFA habilitado para usuários administrativos
- [ ] Rate limiting configurado em endpoints de login
- [ ] Políticas de senha forte (mínimo 12 caracteres, complexidade)

Exemplo de configuração de rate limiting:

# Endpoint de login: máximo 5 tentativas por minuto por IP
# Endpoint de registro: máximo 3 tentativas por hora por IP
# APIs sensíveis: máximo 100 requisições por minuto por token

4. Configuração de Infraestrutura e Orquestração

Em ambientes Kubernetes, a segurança começa na imagem do contêiner e se estende às políticas de rede.

Checklist prático:
- [ ] Imagens escaneadas com Trivy ou Snyk antes do deploy
- [ ] Imagens base oficiais e minimalistas (Alpine, Distroless)
- [ ] NetworkPolicies configuradas para todos os namespaces
- [ ] Secrets do Kubernetes criptografados em repouso (etcd)

Exemplo de NetworkPolicy no Kubernetes:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: api-network-policy
spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: ingress-nginx
    ports:
    - protocol: TCP
      port: 8080
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: database
    ports:
    - protocol: TCP
      port: 5432

5. Monitoramento, Logging e Alertas de Segurança

Sem monitoramento adequado, um ataque pode passar despercebido por dias ou semanas.

Checklist prático:
- [ ] Logs centralizados (ELK Stack, Datadog, Splunk)
- [ ] IDS/IPS configurado (Snort, Suricata)
- [ ] Alertas para eventos críticos (login suspeito, alteração de permissões)
- [ ] Retenção de logs por no mínimo 90 dias (conformidade)

Exemplo de alerta de segurança:

# Evento: Múltiplas tentativas de login falhas
# Ação: Bloquear IP temporariamente e notificar equipe de segurança
# Canal: Slack #security-alerts + e-mail para CISO

# Evento: Alteração inesperada em grupo de segurança
# Ação: Reverter alteração automaticamente e criar ticket de incidente

6. Testes de Segurança Pré-Deploy

Antes de qualquer deploy em produção, realize uma bateria completa de testes de segurança.

Checklist prático:
- [ ] SAST (análise estática) integrada ao pipeline CI/CD
- [ ] DAST (análise dinâmica) em ambiente de staging
- [ ] Teste de penetração manual a cada 3 meses
- [ ] Verificação de dependências (SBOM) com ferramentas como OWASP Dependency-Check

Exemplo de pipeline de segurança:

# Etapas do CI/CD para segurança
1. Lint e análise de código (ESLint, Bandit)
2. Escaneamento de vulnerabilidades (Snyk, Trivy)
3. Testes unitários e de integração
4. Testes de segurança automatizados (ZAP, OWASP)
5. Deploy em staging
6. Testes de penetração automatizados
7. Aprovação manual de segurança
8. Deploy em produção

7. Plano de Resposta a Incidentes e Rollback

Mesmo com todas as precauções, incidentes podem acontecer. Tenha um plano claro.

Checklist prático:
- [ ] Procedimento documentado de resposta a incidentes (playbook)
- [ ] Estratégia de rollback testada (última versão estável)
- [ ] Backups automatizados e testados (restauração em até 1 hora)
- [ ] Contatos de emergência (equipe de segurança, DPO, jurídico)

Exemplo de playbook de incidente:

# Incidente: Vazamento de dados
1. Isolar servidor afetado (desligar da rede)
2. Notificar equipe de segurança e DPO
3. Coletar logs e evidências
4. Analisar causa raiz (forense)
5. Notificar autoridades (LGPD/GDPR em até 72h)
6. Comunicar usuários afetados
7. Implementar correção
8. Restaurar a partir de backup limpo

8. Revisão Final e Conformidade

Antes do deploy, realize uma revisão final de conformidade.

Checklist prático:
- [ ] Checklist de conformidade (LGPD, GDPR, PCI-DSS, SOC 2)
- [ ] Aprovação formal de segurança (sign-off do CISO)
- [ ] Versionamento de infraestrutura (IaC com Terraform, CloudFormation)
- [ ] Auditoria de mudanças registrada (change management)

Exemplo de checklist de conformidade LGPD:

# LGPD — Requisitos mínimos
- [ ] Política de privacidade publicada
- [ ] Consentimento explícito para coleta de dados
- [ ] Criptografia de dados pessoais
- [ ] Direito de exclusão (opt-out) implementado
- [ ] Notificação de vazamento em até 72h
- [ ] DPO nomeado e contato disponível

Referências