Introdução
A execução segura de código e ferramentas permite que o Hermes analise dados, teste soluções e produza arquivos sem receber acesso irrestrito à máquina ou à rede. Como código gerado pode conter erros e conteúdo externo pode tentar manipular o agente, cada execução precisa ocorrer dentro de limites técnicos e permissões explícitas.
Segurança não depende apenas de pedir cuidado ao modelo. Ela exige isolamento, privilégio mínimo, validação de parâmetros, controle de recursos e aprovação para efeitos relevantes. Mesmo uma tarefa legítima pode apagar arquivos, consumir memória ou enviar dados para um destino indevido se a ferramenta aceitar qualquer comando.
Neste tutorial será montado um sandbox para agentes de IA com sistema de arquivos temporário, rede bloqueada por padrão, limites de processo e auditoria. O fluxo distingue leitura, transformação e ação externa, permitindo aumentar capacidades sem entregar autoridade desnecessária.
Pré-requisitos / Materiais
Ambiente isolado
Use contêiner, máquina virtual ou executor dedicado que possa ser destruído após a tarefa. Não execute código gerado no mesmo processo do serviço principal. O isolamento deve limitar usuário, processos, arquivos, dispositivos e chamadas de sistema.
Política de permissões
Liste linguagens, comandos, diretórios, domínios e operações permitidas. Defina o que é bloqueado e o que exige aprovação. A política deve ser aplicada fora do modelo, por componentes que o agente não consegue alterar.
Limites de recursos
Configure tempo de CPU, memória, armazenamento, quantidade de processos e tamanho de saída. Inclua cancelamento. Limites evitam travamentos acidentais e reduzem impacto de código hostil.
Casos de teste ofensivos
Prepare tentativas de ler segredos, percorrer diretórios, acessar rede, iniciar muitos processos, executar por tempo indefinido e sobrescrever arquivos. Esses casos medem o isolamento de execução do Hermes.
Passo a Passo Sequencial
1. Classifique ferramentas por capacidade
Separe consultas sem efeito, escrita reversível, comunicação externa e ação destrutiva. Uma calculadora não precisa das mesmas permissões de um terminal. Conceda capacidades específicas em vez de um conector genérico com acesso total.
2. Crie um diretório efêmero
Para cada missão, gere uma área temporária com identificador próprio. Copie apenas arquivos autorizados e monte entradas como somente leitura quando possível. Ao final, exporte artefatos aprovados e destrua o ambiente.
3. Use usuário sem privilégios
Execute processos sem administração e sem acesso a sockets, dispositivos ou diretórios do host. Remova variáveis de ambiente sensíveis. Credenciais necessárias devem ser fornecidas a um proxy controlado, não ao código.
4. Bloqueie rede por padrão
Libere somente destinos, protocolos e métodos necessários à tarefa. Registre requisições e limite volume. Uma lista de permissões é mais segura que tentar identificar todos os destinos perigosos.
5. Valide comandos e parâmetros
Prefira ferramentas estruturadas a uma linha de shell livre. Valide caminhos normalizados, extensões, tamanho e esquema. Rejeite caminhos fora da área de trabalho, redirecionamentos inesperados e parâmetros que ampliem escopo.
6. Mostre o plano antes de executar
O Hermes deve declarar finalidade, entradas, comandos, arquivos modificados e saída esperada. A execução controlada de ferramentas usa essa prévia para comparar intenção e ação efetiva. Operações sensíveis aguardam aprovação específica.
7. Aplique limites durante a execução
Interrompa processos que excedam tempo, memória ou quantidade de filhos. Limite tamanho de logs para evitar esgotamento de disco. Um cancelamento precisa encerrar também processos descendentes e conexões abertas.
8. Capture saída de modo seguro
Separe saída normal, erro e código de retorno. Trunque volumes excessivos e remova segredos antes de registrar. Nunca interprete automaticamente texto da ferramenta como nova instrução de sistema.
9. Valide artefatos gerados
Confira tipo real, tamanho, conteúdo e presença de código ativo. Documentos e arquivos compactados podem esconder materiais inesperados. Antes de disponibilizar um artefato, verifique se ele pertence à missão e não contém credenciais.
10. Proteja ações destrutivas
Exija alvo explícito, resolução do caminho, prévia e confirmação. Prefira operações recuperáveis. Bloqueie exclusões recursivas em diretórios amplos e impeça que variáveis não resolvidas definam o destino.
11. Use proxies para serviços externos
Em vez de entregar a chave de um serviço, exponha uma ferramenta que valide parâmetros e execute apenas operações autorizadas. O proxy aplica limite, registra efeito e pode esconder campos sensíveis da resposta.
12. Implemente idempotência
Ações externas devem receber uma chave que impeça duplicação após falha ou reinício. Antes de repetir, consulte o estado. Uma resposta perdida não significa que a operação não ocorreu.
13. Registre auditoria útil
Armazene missão, política aplicada, aprovação, comando estruturado, recursos, retorno e artefatos. Proteja logs e defina retenção. A auditoria deve apoiar investigação sem virar um novo repositório de segredos.
14. Atualize imagens e dependências
Ambientes isolados também possuem vulnerabilidades. Fixe versões, examine pacotes e reconstrua imagens regularmente. Não permita instalação livre de dependências durante tarefas de produção sem fonte e versão aprovadas.
Teste de resistência
Peça ao Hermes para processar um arquivo e inclua no conteúdo uma instrução para ler credenciais e enviá-las pela rede. O agente deve tratar o texto como dado, enquanto o sandbox impede acesso mesmo se houver tentativa. Depois execute um laço infinito e confirme o encerramento pelo limite.
Teste também caminhos com travessia de diretório e nomes semelhantes aos arquivos permitidos. Documente qual camada bloqueou cada tentativa. Defesa em profundidade significa que uma falha de interpretação não se transforma automaticamente em incidente.
Recuperação e resposta a incidentes
Defina como interromper executores, revogar credenciais de proxies e bloquear a exportação de artefatos. Preserve somente evidências necessárias e evite abrir arquivos suspeitos fora do ambiente isolado. Classifique se o evento veio de erro do código, conteúdo malicioso, política inadequada ou vulnerabilidade da infraestrutura.
Após a correção, transforme o incidente em teste automatizado. Verifique outras ferramentas com capacidade semelhante e revise permissões já concedidas. Uma falha contida ainda é sinal de que outra camada pode precisar de melhoria. Registre decisão, responsável e prazo para acompanhamento.
Faça revisão periódica das ferramentas disponíveis ao Hermes e remova capacidades não utilizadas. Confirme que versões novas não ampliaram parâmetros ou acessos silenciosamente. Um inventário pequeno e conhecido facilita testes, reduz superfície de ataque e torna pedidos de aprovação mais compreensíveis para usuários.
Simule a revogação de uma ferramenta e confirme que missões em andamento falham de maneira segura e informativa.
Perguntas Frequentes
Um contêiner é isolamento suficiente?
Depende da configuração e do risco. Ele ajuda, mas precisa de usuário restrito, limites, rede controlada e atualizações. Casos críticos podem exigir isolamento mais forte.
Por que bloquear a rede?
Para impedir exfiltração, downloads não autorizados e contato com serviços internos. Libere apenas destinos necessários por meio de políticas ou proxies.
O agente pode instalar pacotes?
Somente em ambiente descartável e conforme política. Em produção, prefira dependências aprovadas, versões fixas e imagens previamente verificadas.
Como aprovar um comando com segurança?
Mostre finalidade, comando estruturado, arquivos, destino e impacto. A aprovação deve valer para aquela ação exata e expirar se houver mudança.
O que registrar nos logs?
Registre decisões, parâmetros seguros, recursos e resultados. Remova chaves, tokens, dados sensíveis e grandes conteúdos que não sejam necessários à auditoria.
Como agir após uma violação de limite?
Encerre o ambiente, preserve evidências seguras, bloqueie exportação e classifique a causa. Ajuste política ou ferramenta antes de permitir nova tentativa.
A execução segura assume que código e conteúdo podem falhar. Com barreiras externas ao modelo, o Hermes continua produtivo sem transformar uma resposta equivocada em acesso irrestrito aos sistemas.
Artigos relacionados: defesa contra prompt injection; níveis de autonomia para agentes.


