Melhores Práticas de Segurança do OpenFang

23 min de leitura

A segurança de agentes de IA autônomos não pode ser negligenciada. O OpenFang incorpora 16 camadas de proteção desde o design: 4 camadas de isolamento em sandbox, 4 de segurança de rede, 4 de segurança de dados e 4 de auditoria e conformidade. Este artigo fornece três modelos de configuração predefinidos e uma lista de verificação de segurança completa.

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:

CategoriaCamadasObjetivo de Proteção
Isolamento em Sandbox1–4Limitar o ambiente de execução do agente
Segurança de Rede5–8Controlar o acesso à rede do agente
Segurança de Dados9–12Proteger dados sensíveis contra vazamentos
Auditoria e Conformidade13–16Registrar 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:

toml
[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:

toml
[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:

toml
[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 / notify

Camada 4: Limites de CPU

toml
[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 CPU

Segunda Categoria: Segurança de Rede

Camada 5: Isolamento de Rede

Controla o acesso à rede de saída do agente:

toml
[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 criptografado

Camada 6: Criptografia de Tráfego

toml
[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:

toml
[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:

toml
[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 proxy

Terceira Categoria: Segurança de Dados

Camada 9: Sanitização de Entrada

Defesa contra ataques de Prompt Injection:

toml
[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 = true

O 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:

toml
[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

toml
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30

Camada 12: Minimização de Dados

toml
[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 automaticamente

Quarta Categoria: Auditoria e Conformidade

Camada 13: Auditoria de Operações

toml
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = true

Os 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:

json
{  "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

toml
[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

toml
[security.compliance]generate_reports = trueschedule = "0 0 1 * *"           # Gerado mensalmenteframeworks = ["SOC2", "ISO27001"]export_format = "pdf"

Camada 16: Resposta a Incidentes de Segurança

toml
[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 disparado

Modelos 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)

bash
openfang security preset development

Ambiente de Produção (Requisitos de segurança padrão)

bash
openfang security preset production

Ambiente de Alta Segurança (Financeiro/Saúde/Governamental)

bash
openfang security preset hardened

Principais diferenças entre os três modelos:

Item de ConfiguraçãoDevelopmentProductionHardened
Sistema de Arquivosbasicstrictstrict
Acesso ShellPermitidoProibidoProibido
Modo de Redeblocklistallowlistallowlist
Filtragem de SaídaDesativadoAtivadoAtivado
Logs de AuditoriaDesativadoAtivadoAtivado
Criptografia de DadosDesativadoAtivadoAtivado
Detecção de AnomaliasDesativadomediumhigh
Isolamento AutomáticoDesativadoDesativadoAtivado

Lista de Verificação de Segurança

Antes de implantar em produção, use o comando openfang security audit para verificar cada item:

bash
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 pendentes

Perguntas Frequentes

O que fazer se a configuração de segurança for rigorosa demais e impedir o funcionamento do agente?
Use uma estratégia de relaxamento gradual. Comece com o modelo 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?
O sanitizador de entrada do OpenFang oferece várias camadas de defesa, mas nenhuma defesa é perfeita. A melhor prática é combinar múltiplas camadas: sanitização de entrada + restrições de sandbox + isolamento de rede. Mesmo que uma injeção contorne a sanitização, as restrições de sandbox e rede minimizam o impacto.
Como adicionar camadas de segurança em ambientes conteinerizados (Docker/K8s)?
As camadas de segurança do OpenFang são complementares à segurança da camada de aplicação, não substitutas. Os perfis 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?
1. Verifique os logs de auditoria para determinar o escopo do evento.
2. Se auto_contain = true estiver configurado, o agente já foi isolado automaticamente.
3. Baixe o snapshot forense: openfang security forensics download --run-id xxx
4. Analise a causa raiz e corrija a vulnerabilidade.
5. Restaure a partir do snapshot ou reinicialize o agente.

Próximos Passos