Como aplicar princípios de zero trust em segurança
1. Fundamentos do modelo Zero Trust
O modelo Zero Trust parte de uma premissa radicalmente simples: nunca confie, sempre verifique. Diferente do modelo tradicional de segurança baseado em perímetro de rede — onde tudo dentro da rede corporativa era considerado confiável — o Zero Trust elimina qualquer confiança implícita, independentemente da localização do usuário ou dispositivo.
Enquanto o modelo clássico protege o "castelo com um fosso", o Zero Trust trata cada recurso como se estivesse exposto à internet. Os pilares fundamentais são:
- Identidade: cada usuário e serviço precisa ser autenticado
- Dispositivo: o estado de segurança do dispositivo é avaliado continuamente
- Rede: a comunicação é restrita ao mínimo necessário
- Dados: criptografia e classificação são obrigatórias
- Workloads: cargas de trabalho são isoladas e verificadas
Na prática, isso significa que um administrador de rede não tem acesso automático a servidores de produção apenas por estar na VPN corporativa. Cada requisição deve ser autorizada individualmente.
2. Autenticação e verificação contínua
O primeiro passo prático é implementar autenticação multifator (MFA) como requisito mínimo. Mas o Zero Trust vai além: a verificação deve ocorrer em cada requisição, não apenas no login inicial.
Exemplo de política de token efêmero usando OAuth 2.0:
# Política de token de acesso
Tipo: Bearer Token
Duração: 15 minutos
Renovação: Permitida apenas com refresh token
Reautenticação: Obrigatória a cada 4 horas
MFA: Obrigatório para ações administrativas
Para implementar sessões de curta duração em APIs:
# Configuração de sessão para API Gateway
POST /api/auth/login
Headers:
Authorization: Basic <credenciais>
Response:
access_token: "eyJhbGciOiJIUzI1NiIs..."
expires_in: 900 # 15 minutos
refresh_token: "dGhpcyBpcyBhIHJlZnJlc2g..."
Sempre que um token expira, o sistema deve reavaliar o contexto: o dispositivo ainda está seguro? O usuário ainda tem privilégios? A localização mudou?
3. Microssegmentação de rede
A microssegmentação divide a rede em zonas isoladas por função e criticidade. Não basta ter uma VLAN para TI e outra para produção; é preciso segmentar por aplicação, camada e sensibilidade.
Exemplo de política de microssegmentação:
# Política de firewall lógico
Zona: "frontend-web"
Permite: tráfego HTTP/HTTPS da internet
Bloqueia: todas as conexões SSH
Acesso à zona "api-gateway": apenas porta 443
Zona: "api-gateway"
Permite: conexões da zona "frontend-web"
Bloqueia: acesso direto à internet
Acesso à zona "banco-dados": apenas porta 5432
Zona: "banco-dados"
Permite: conexões da zona "api-gateway"
Bloqueia: qualquer acesso administrativo direto
Acesso: apenas via proxy com autenticação
Ferramentas como firewalls de próxima geração (NGFW) e SDN (redes definidas por software) facilitam essa implementação. O Kubernetes também oferece Network Policies nativas para microssegmentação em clusters.
4. Controle de acesso baseado em confiança dinâmica
No Zero Trust, a confiança é dinâmica e baseada em contexto. A cada requisição, o sistema avalia:
- Localização geográfica
- Estado do dispositivo (atualizações, antivírus)
- Horário da requisição
- Comportamento histórico do usuário
- Nível de risco da ação solicitada
Exemplo de política adaptativa:
# Política de acesso condicional
IF localizacao != "escritorio_brasil" AND
dispositivo.antivirus_atualizado == false THEN
BLOQUEAR acesso a dados sensíveis
EXIGIR MFA para acesso básico
REGISTRAR evento como "risco alto"
IF usuario.tentativas_falhas > 3 IN 5 minutos THEN
SUSPENDER conta por 30 minutos
NOTIFICAR equipe de segurança
Essa abordagem permite que um funcionário acesse sistemas críticos do escritório sem MFA extra, mas precise de múltiplos fatores ao acessar de um café em outro país.
5. Proteção de dados e criptografia em todos os estados
Dados devem ser protegidos em três estados:
- Em repouso: discos criptografados (AES-256)
- Em trânsito: TLS 1.3 para todas as comunicações
- Em uso: criptografia homomórfica ou enclaves seguros (SGX)
Exemplo de política de criptografia:
# Política de criptografia de dados
Dados em repouso:
- Banco de dados: criptografia transparente (TDE)
- Backups: criptografados com chave gerenciada pelo HashiCorp Vault
Dados em trânsito:
- Comunicação interna: mTLS obrigatório
- APIs externas: HTTPS com certificados válidos
Gerenciamento de chaves:
- Rotação automática a cada 90 dias
- Acesso restrito por política de mínimo privilégio
- Auditoria de todas as operações com chaves
Ferramentas como HashiCorp Vault gerenciam segredos e chaves com políticas granulares:
# Política Vault para acesso a chaves de banco
path "database/creds/app-readonly" {
capabilities = ["read"]
allowed_parameters = {
"ttl" = ["1h"]
}
}
6. Monitoramento contínuo e resposta a incidentes
Monitoramento não é opcional no Zero Trust. É preciso coletar logs de todas as autenticações, autorizações e acessos. Ferramentas de UEBA (User and Entity Behavior Analytics) detectam anomalias com machine learning.
Exemplo de regra de detecção:
# Regra de anomalia comportamental
ALERTA: Usuário acessando sistema fora do horário padrão
Usuário: {usuario}
Sistema: {sistema}
Horário: {horario} (padrão: 08:00-18:00)
Ação: Registrar como "risco médio"
Resposta: Exigir confirmação por e-mail
ALERTA: Múltiplas falhas de autenticação
Contagem: >10 em 5 minutos
Ação: Bloquear IP por 1 hora
Notificar: SOC via SOAR
A orquestração SOAR (Security Orchestration, Automation and Response) automatiza respostas: isolar um dispositivo comprometido, revogar tokens ou bloquear um usuário suspeito.
7. Implementação prática em ambientes de desenvolvimento
Em ambientes de microsserviços, o Zero Trust se aplica a APIs e serviços internos. Um service mesh como Istio oferece autenticação mútua (mTLS) entre pods:
# Configuração Istio para mTLS entre serviços
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default
namespace: production
spec:
mtls:
mode: STRICT # Exige mTLS para toda comunicação
Para políticas de autorização, o Open Policy Agent (OPA) avalia regras em tempo real:
# Política OPA para acesso a API
package api.authz
default allow = false
allow {
input.method == "GET"
input.path == "/api/v1/users"
input.user.role == "admin"
input.user.department == "security"
}
allow {
input.method == "POST"
input.path == "/api/v1/reports"
input.user.clearance_level >= 3
input.request_time >= "08:00:00"
input.request_time <= "18:00:00"
}
O BeyondCorp do Google é um exemplo prático de Zero Trust em escala: nenhum usuário acessa a rede interna diretamente; tudo passa por um proxy de autenticação que verifica identidade, dispositivo e contexto.
Referências
- Zero Trust Security — NIST SP 800-207 — Documentação oficial do NIST sobre arquitetura Zero Trust, com definições e modelos de implementação.
- HashiCorp Vault Documentation — Guia completo para gerenciamento de segredos, chaves e políticas de acesso no modelo Zero Trust.
- Istio Security — mTLS and Authorization — Documentação oficial do Istio sobre autenticação mútua e políticas de segurança para microsserviços.
- Open Policy Agent (OPA) — Policy Language — Tutorial e referência da linguagem Rego para definição de políticas de autorização dinâmicas.
- Google BeyondCorp: A New Approach to Enterprise Security — Whitepaper original do Google sobre o modelo BeyondCorp, implementação prática de Zero Trust em escala empresarial.
- Zero Trust Architecture — Microsoft Learn — Guia prático da Microsoft para implementar Zero Trust com Azure Active Directory, Conditional Access e Microsoft Defender.
- CIS Controls for Zero Trust — Framework do CIS para implementação de controles de segurança alinhados ao modelo Zero Trust.