Melhores Práticas de Segurança do OpenFang: Detalhes da Proteção de 16 Camadas
Slug: openfang-security-best-practices
Categoria: usage-guides (Guias de Uso)
Palavras-chave: Segurança OpenFang, Configuração de Segurança OpenFang, Melhores Práticas de Segurança para Agentes
Intenção de busca: Informativa (usuários que desejam implantar o OpenFang com segurança)
Contagem de palavras: ~2000 palavras
Idioma: pt
Por que a segurança do agente é crucial?
Agentes de IA autônomos possuem a capacidade de executar comandos, acessar a rede e ler/escrever arquivos — se não forem limitados, essas capacidades são uma receita para o desastre de segurança. Um agente sem proteção pode ser induzido por ataques de Prompt Injection a executar comandos perigosos, vazar dados sensíveis ou ser abusado como um ponto de salto para ataques.
O OpenFang coloca a segurança como parte central de sua arquitetura desde o início, oferecendo um mecanismo de proteção de 16 camadas. Este artigo apresentará os métodos de configuração e as melhores práticas para cada camada, do básico ao avançado.
Visão Geral da Arquitetura de Segurança
As 16 camadas de proteção do OpenFang são divididas em quatro categorias principais:
| Categoria | Camadas | Objetivo de Proteção |
|---|---|---|
| Isolamento em Sandbox | 1–4 | Limitar o ambiente de execução do agente |
| Segurança de Rede | 5–8 | Controlar o acesso à rede do agente |
| Segurança de Dados | 9–12 | Proteger dados sensíveis contra vazamentos |
| Auditoria e Conformidade | 13–16 | Registrar e auditar o comportamento do agente |
Primeira Categoria: Isolamento em Sandbox
Camada 1: Sandbox do Sistema de Arquivos
Limita os caminhos do sistema de arquivos que o agente pode acessar:
[security.sandbox.filesystem]mode = "strict" # off / basic / strictallowed_paths = [ "./workspace/", "/tmp/openfang/",]denied_paths = [ "/etc/", "~/.ssh/", "~/.aws/",]read_only_paths = [ "./config/", "/usr/share/openfang/",]No modo strict, o agente não pode acessar nenhum caminho não listado em allowed_paths. Recomendamos sempre criar um diretório de trabalho dedicado para o agente.
Camada 2: Sandbox de Processos
Limita os comandos do sistema que o agente pode executar:
[security.sandbox.process]allow_shell = false # Proíbe acesso direto ao Shellallowed_commands = [ "git", "curl", "python3", "node",]denied_commands = [ "rm", "sudo", "chmod", "wget",]command_timeout = 30 # Tempo limite de execução do comando (segundos)allow_shell = false é uma configuração obrigatória para ambientes de produção. O agente só pode interagir com o sistema através dos comandos na lista allowed_commands.
Camada 3: Limites de Memória
Evita que o agente esgote os recursos do sistema devido a vazamentos de memória ou código malicioso:
[security.sandbox.memory]max_memory_mb = 512 # Limite de memória do agentemax_per_hand_mb = 128 # Limite de memória por Handoom_policy = "kill_hand" # kill_hand / restart / notifyCamada 4: Limites de CPU
[security.sandbox.cpu]max_cores = 2 # Uso máximo de 2 núcleos de CPUpriority = "low" # low / normal / highcfs_period_us = 100000cfs_quota_us = 50000 # Cota de 50% de CPUSegunda Categoria: Segurança de Rede
Camada 5: Isolamento de Rede
Controla o acesso à rede de saída do agente:
[security.network]mode = "allowlist" # allowlist / blocklist / unrestrictedallowed_domains = [ "api.anthropic.com", "api.openai.com", "github.com",]allowed_ports = [443, 80]block_ip_ranges = [ "10.0.0.0/8", # Bloqueia acesso à rede interna "172.16.0.0/12", "192.168.0.0/16",]dns_over_https = true # Usa DNS criptografadoCamada 6: Criptografia de Tráfego
[security.network.tls]min_version = "1.2"verify_certificates = truecertificate_pinning = [ { domain = "api.anthropic.com", pin = "sha256/..." },]Camada 7: Limitação de Taxa (Rate Limiting)
Evita que o agente seja usado para enviar um volume excessivo de solicitações:
[security.network.rate_limit]requests_per_minute = 60tokens_per_minute = 100000burst_multiplier = 2cooldown_after_exceeded = "5m"Camada 8: Proxy e Controle de Saída
Todo o tráfego do agente passa pelo proxy corporativo:
[security.network.proxy]http_proxy = "${HTTP_PROXY}"https_proxy = "${HTTPS_PROXY}"no_proxy = ["localhost", "127.0.0.1"]enforce_proxy = true # Força todo o tráfego através do proxyTerceira Categoria: Segurança de Dados
Camada 9: Sanitização de Entrada
Defesa contra ataques de Prompt Injection:
[security.data.input_guard]enabled = truemode = "strict"[security.data.input_guard.rules]detect_jailbreak = truedetect_prompt_leak = truedetect_code_injection = truemax_input_length = 8000sanitize_markdown = trueO sanitizador de entrada verifica potenciais ataques de injeção antes que o agente processe a entrada do usuário, incluindo prompts de jailbreak, tentativas de vazamento de prompt e injeção de código.
Camada 10: Filtragem de Saída
Impede que dados sensíveis sejam vazados através das respostas do agente:
[security.data.output_guard]enabled = true[security.data.output_guard.patterns]credit_cards = trueapi_keys = true # Detecta e bloqueia formatos de API keyemails = "mask" # mask / block / allowphone_numbers = "mask"custom_patterns = [ "\\b(?:sk|pk)_[a-zA-Z0-9]{32,}\\b", "\\bAKIA[A-Z0-9]{16}\\b", # AWS Access Key]Camada 11: Criptografia de Dados Sensíveis
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30Camada 12: Minimização de Dados
[security.data.minimization]log_user_inputs = false # Não registra entradas do usuáriolog_agent_outputs = false # Não registra saídas do agenteretention_days = 7 # Retenção de logs por 7 diasstrip_pii = true # Remove PII automaticamenteQuarta Categoria: Auditoria e Conformidade
Camada 13: Auditoria de Operações
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = trueOs logs de auditoria estão em formato JSON e contêm carimbo de data/hora, tipo de operação, operador, detalhes da operação e resultado:
{ "timestamp": "2026-07-10T08:30:15.123Z", "event": "command_execution", "hand": "researcher", "command": "git clone https://github.com/...", "sandbox": "strict", "result": "allowed", "duration_ms": 1240}Camada 14: Detecção de Anomalias
[security.audit.anomaly_detection]enabled = truebaseline_days = 7sensitivity = "medium" # low / medium / highalert_on = ["unusual_command", "off_hours_activity", "unusual_destination"]Camada 15: Relatórios de Conformidade
[security.compliance]generate_reports = trueschedule = "0 0 1 * *" # Gerado mensalmenteframeworks = ["SOC2", "ISO27001"]export_format = "pdf"Camada 16: Resposta a Incidentes de Segurança
[security.incident_response]auto_contain = true # Isola o agente automaticamente se detectar anomaliacontainment_action = "pause_all_hands"notify_channels = ["slack:#security", "email:[email protected]"]forensic_snapshot = true # Salva snapshot do estado atual quando disparadoModelos de Configuração de Segurança Rápida
Dependendo do seu cenário de implantação, escolha a configuração de segurança predefinida correspondente:
Ambiente de Desenvolvimento (Baixos requisitos de segurança)
openfang security preset developmentAmbiente de Produção (Requisitos de segurança padrão)
openfang security preset productionAmbiente de Alta Segurança (Financeiro/Saúde/Governamental)
openfang security preset hardenedPrincipais diferenças entre os três modelos:
| Item de Configuração | Development | Production | Hardened |
|---|---|---|---|
| Sistema de Arquivos | basic | strict | strict |
| Acesso Shell | Permitido | Proibido | Proibido |
| Modo de Rede | blocklist | allowlist | allowlist |
| Filtragem de Saída | Desativado | Ativado | Ativado |
| Logs de Auditoria | Desativado | Ativado | Ativado |
| Criptografia de Dados | Desativado | Ativado | Ativado |
| Detecção de Anomalias | Desativado | medium | high |
| Isolamento Automático | Desativado | Desativado | Ativado |
Lista de Verificação de Segurança
Antes de implantar em produção, use o comando openfang security audit para verificar cada item:
openfang security audit# Exemplo de saída:# ✅ [1/16] Sandbox do sistema de arquivos: strict# ✅ [2/16] Sandbox de processos: sem acesso ao shell# ✅ [3/16] Limite de memória: 512 MB# ✅ [4/16] Limite de CPU: 2 núcleos# ✅ [5/16] Rede: modo allowlist# ⚠️ [6/16] TLS cert pinning: não configurado# ✅ [7/16] Limitação de taxa: ativado# ...# Pontuação: 14/16 — 2 recomendações pendentesPerguntas Frequentes
O que fazer se a configuração de segurança for rigorosa demais e impedir o funcionamento do agente?
hardened, observe o comportamento do agente. Para operações necessárias que foram bloqueadas, use os logs de auditoria para identificar o item bloqueado e adicione-o à lista de permissões de forma direcionada.É realmente possível se defender contra Prompt Injection?
Como adicionar camadas de segurança em ambientes conteinerizados (Docker/K8s)?
seccomp/AppArmor do Docker podem servir como uma camada 0 de proteção adicional, mas não devem substituir os mecanismos de segurança integrados do OpenFang.O que fazer se ocorrer um incidente de segurança?
2. Se
auto_contain = true estiver configurado, o agente já foi isolado automaticamente.3. Baixe o snapshot forense:
openfang security forensics download --run-id xxx4. Analise a causa raiz e corrija a vulnerabilidade.
5. Restaure a partir do snapshot ou reinicialize o agente.
Próximos Passos
- Guia de Instalação e Configuração do OpenFang: Implantação segura do zero
- Guia de Construção de Fluxo de Trabalho Automatizado do OpenFang: Construindo fluxos de trabalho automatizados e seguros