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
