Segurança de Containers Docker e Kubernetes

Introdução à Segurança de Containers

Containers revolucionaram o deployment de aplicações, mas introduzem novos vetores de ataque. A segurança deve cobrir desde imagens base até orquestração Kubernetes, passando por runtime protection e network policies.

Segurança de Imagens Docker

1. Base Image Selection

  • Usar imagens oficiais e verificadas (Docker Hub verified publishers)
  • Preferir Alpine Linux ou Distroless para menor superfície de ataque
  • Evitar imagens :latest - sempre especificar versões
  • Minimizar layers e remover ferramentas desnecessárias

2. Vulnerability Scanning

  • Trivy: Scanner open-source da Aqua Security
  • Grype: Scanning de vulnerabilidades em imagens e filesystems
  • Clair: Análise estática de vulnerabilidades
  • Snyk Container: Integração com CI/CD
  • Scanning automatizado no CI/CD pipeline antes do push

3. Image Signing

  • Docker Content Trust (Notary) para assinatura de imagens
  • Sigstore/Cosign para supply chain security
  • Verificação de integridade antes do deployment

Docker Runtime Security

Hardening de containers Docker:

  • User Namespaces: Não executar como root (USER directive)
  • Capabilities: Drop all + add apenas necessários (--cap-drop=ALL)
  • Read-only Filesystem: --read-only para containers imutáveis
  • No New Privileges: --security-opt=no-new-privileges
  • Resource Limits: --memory, --cpus para prevenir DoS
  • Seccomp Profiles: Filtrar syscalls perigosas
  • AppArmor/SELinux: Mandatory access control

Segurança Kubernetes

1. RBAC e Access Control

  • Least privilege: Roles e RoleBindings específicos
  • Service Accounts dedicados por aplicação
  • Evitar ClusterAdmin exceto para automação crítica
  • Audit logging de todas as API calls

2. Pod Security Standards

  • Privileged: Sem restrições (evitar)
  • Baseline: Previne escalações conhecidas
  • Restricted: Hardening máximo para produção
  • Pod Security Admission controller para enforcement

3. Network Policies

  • Default deny all + allow explícito por necessidade
  • Segmentação por namespace e labels
  • Controle de egress para prevenir exfiltração
  • Integração com CNI plugins (Calico, Cilium)

Secrets Management

  • Nunca hardcode secrets em imagens ou código
  • Kubernetes Secrets: Base64 encoded (não criptografado!)
  • External Secrets Operator: Integração com vaults externos
  • Sealed Secrets: Criptografia assimétrica para GitOps
  • HashiCorp Vault: Dynamic secrets e rotation automática
  • AWS Secrets Manager / Azure Key Vault: Cloud-native options
  • Encryption at rest para etcd (--encryption-provider-config)

Runtime Security

Ferramentas de runtime protection:

  • Falco: Runtime threat detection com eBPF (CNCF)
  • Tetragon: eBPF-based security observability (Cilium)
  • Sysdig Secure: Container forensics e compliance
  • Aqua Security: Full lifecycle container security
  • Prisma Cloud: CWPP (Cloud Workload Protection Platform)

Detectam: process spawning anômalo, network connections suspeitas, file system changes, privilege escalation attempts

Service Mesh Security

  • Istio: mTLS automático, authorization policies, traffic encryption
  • Linkerd: Lightweight service mesh com zero-trust networking
  • Consul Connect: Service-to-service encryption e authorization
  • Certificate rotation automática
  • Fine-grained access control entre microservices
  • Observability: distributed tracing e metrics

Supply Chain Security

  • SBOM (Software Bill of Materials): Syft, Tern para geração
  • Admission Controllers: OPA/Gatekeeper, Kyverno para policy enforcement
  • Image Provenance: SLSA framework compliance
  • Registry Security: Harbor, Artifactory com scanning integrado
  • Assinatura e verificação de artefatos (Cosign, Notary v2)
  • Vulnerability management contínuo

Melhores Práticas

  • [OK] Scan de imagens em todas as fases do pipeline
  • [OK] Implementar Pod Security Standards nível Restricted
  • [OK] Network policies default deny para todos os namespaces
  • [OK] Secrets externos (nunca em Git ou imagens)
  • [OK] Runtime monitoring com Falco ou equivalente
  • [OK] Audit logs ativados e centralizados
  • [OK] Regular updates de cluster e components
  • [OK] Backup de etcd criptografado
  • [OK] Disaster recovery plans testados
  • [OK] Zero-trust networking com service mesh