Sandbox do OpenShell
O Módulo 3 deu ao OpenClaw contexto persistente e gatilhos sem supervisão. Regras no prompt e verificações do harness influenciam o que ele tenta fazer. O OpenShell deixa a decisão final de permitir ou negar com um sandbox que o agente não pode reescrever.
Nesta página, você enviará comandos reais ao launchable, lerá cada veredito e o relacionará à regra responsável. Depois, inspecionará um segundo limite: o plano de controle do operador acima do sandbox.
- OpenClaw é o framework do agente. Ele escolhe a ferramenta e a ação a tentar.
- OpenShell é o runtime de segurança. Ele limita arquivos, destinos de rede e operações do sistema operacional disponíveis à ação.
- NemoClaw é a stack de referência que reúne OpenClaw e OpenShell com comandos de ciclo de vida, políticas predefinidas, roteamento de inferência e padrões de implantação.
O OpenShell é independente do agente. O mesmo limite pode conter OpenClaw, Hermes, LangChain Deep Agents ou outro processo que exija contenção no sistema operacional.
Onde cada camada de defesa intervém
Suponha que conteúdo não confiável instrua um agente a ler uma credencial e enviá-la para fora do ambiente. Três camadas podem interromper essa ação, e cada uma responde a uma pergunta diferente.
- O prompt orienta a intenção. Uma regra como “não revele credenciais” descreve o comportamento esperado. Ainda assim, conteúdo recuperado malicioso, a saída de uma ferramenta ou outro agente podem enganar o modelo. Essa camada influencia a decisão; não reduz a autoridade concedida pelo runtime.
- O harness valida a solicitação. OpenClaw ou Hermes pode rejeitar uma forma de shell não aceita, uma ferramenta proibida ou um argumento malformado antes de chegar ao sistema operacional. A verificação determinística ajuda, mas continua sendo lógica da aplicação, sujeita a configuração incorreta, desatualização ou comprometimento.
- O sandbox limita o resultado. O OpenShell concede ao processo somente a autoridade permitida pela política. Se prompt e harness falharem, o sistema operacional ainda pode negar uma operação de arquivo, rede ou processo antes que ela ocorra.
O trabalho ao vivo nesta página mede essa camada final. Você tentará uma ação, observará o veredicto de permissão ou negação, e conectará o veredicto ao mecanismo que o executou.
Como os mecanismos sandbox respondem perguntas testáveis
Este launchable combina quatro mecanismos de sistema operacional. Cada um responde a uma pergunta que você pode testar, e juntos eles aplicam a política em mais de um limite. Leia a política ao vivo mais tarde nesta página antes de tratar qualquer garantia como universal.
1 · Onde este processo pode se conectar?
Um namespace de rede (netns) fornece ao agente uma stack de rede isolada. A saída começa bloqueada. Um proxy HTTP CONNECT oferece o único caminho externo. O Open Policy Agent (OPA) compara o binário solicitante, host, porta e caminho com a política. Quem controla essa política decide quais conexões são permitidas.
2 · Quais arquivos ele pode alcançar?
O Landlock é um módulo de segurança do Linux que restringe acessos futuros ao sistema de arquivos. Aqui, ele limita novas operações aos caminhos concedidos pela política. A aplicação é forte, mas o modo de compatibilidade, o OverlayFS e descritores abertos antes da restrição ainda importam. Leia a política ativa e teste o caminho que pretende expor.
3 · Quais as operações do kernel que ele pode solicitar?
Uma chamada de sistema, ou syscall, pede ao kernel Linux que execute uma operação. O seccomp filtra syscalls; um filtro BPF compara cada solicitação com uma lista permitida. Uma chamada negada retorna EPERM (“operação não permitida”) antes da execução. Este launchable bloqueia primitivas perigosas como ptrace, mount e setuid.
4 · Com que autoridade começa?
O agente é executado como um processo sem privilégios de root sob o usuário sandbox. Portanto, uma exploração bem-sucedida começa com menos autoridade. Isso reduz o raio de impacto, mas não prova que uma escalada seja impossível. A configuração do host e do contêiner e a política de syscalls continuam fazendo parte do limite de segurança.
Formar primeiro o runtime
Antes de dirigir o sandbox você mesmo, torne o agente saudável recuperando o runtime se ele estiver degradado, de modo que cada célula viva abaixo tenha um agente de trabalho para conversar.
O diagrama mostra o caminho de cada chamada de ferramenta. As células seguintes permitem executar essas chamadas e ler a resposta do kernel.
O mesmo runtime do Kickstart. Cada célula controla o agente OpenClaw conectado naquela página.
Assista ao kernel decidir
Os quatro mecanismos anteriores estão ativos no ambiente do laboratório. Assim, você pode observar cada decisão em vez de confiar apenas no diagrama.
A célula abaixo executa um comando de cada vez no sandbox e devolve três informações:
- o veredito que o kernel devolveu,
- o mecanismo que o decidiu,
- e a linha de provas por trás dessa decisão.
O catálogo inicial reúne perguntas que vão do acesso à internet aberta até a reescrita da persona do agente. Você pode editar qualquer comando ou adicionar outra sonda.
Profundo · TrajetóriaExecutar uma trajetória de vários comandos no sandbox?
Indo mais longe: uma trajetória inteira
Um agente real encadeia vários comandos para alcançar um objetivo que nenhuma célula isolada tentou. Descreva um objetivo abaixo. O agente planeja a sequência de comandos de shell, executa cada um no sandbox e mostra os resultados em ordem. Observe onde o kernel interrompe a trajetória porque a política nega a próxima ação.
A regra dos comandos isolados continua válida: um segredo exibido em qualquer etapa já vazou, mesmo que uma tentativa posterior de saída seja negada. Depois de observar esse limite, edite o objetivo ou o prompt de planejamento e execute outra trajetória.
Leia a política ao vivo do seu launchable e veja-a como um mapa
Os vereditos observados vêm de um arquivo de política. Leia a política do launchable antes de confiar em suas garantias. A célula abaixo chama helpers.policyGet(), executa openshell policy get pelo terminal do operador e analisa o resultado.
A partir daqui, a página usa a política da sua instância, não um exemplo fixo. O código da célula fica recolhido; abra-o quando quiser inspecionar a chamada exata.
A célula desenha a política como um mapa interativo. Os nós à direita incluem endpoints citados pela política e alguns destinos não permitidos. Troque o binário chamador e observe as conexões mudarem. A decisão considera o programa, não apenas o host: integrate.api.nvidia.com pode ser acessível ao openclaw e negado ao curl.
Clique em um destino para abrir a regra correspondente, os binários autorizados e a justificativa do veredito. Ver código-fonte da política mostra o mesmo YAML lido na etapa anterior.
Preveja o veredito e confirme na instância ativa
openshell policy prove verifica uma propriedade da política ou devolve um contraexemplo. Em cada conexão, o proxy também produz uma decisão determinística de permitir ou negar. A célula calcula o resultado a partir da política do launchable, executa a ação no sandbox e compara a resposta real com a previsão.
O exercício destaca a identidade do binário. A política concede saída por programa, não apenas por host. Por isso, openclaw pode alcançar o endpoint de inferência enquanto um curl para o mesmo destino é negado. Escolha uma ação para ver o veredito estático e a confirmação ativa.
openshell sandbox exec. Mantenha o launchable aberto em outra aba para preservar a sessão de acesso.Acima do sandbox: o plano de controle
Até aqui, você mediu o que o agente pode fazer. Agora considere quem pode reconfigurá-lo pelo plano acima do sandbox. Nesta instância, esse plano é o gateway acessado pelo OPENCLAW_GATEWAY_TOKEN do Módulo 3, com escopo operator.admin. Suas operações não passam pelo sandbox do agente.
O que aquela credencial alcança:
agents.files.getlê e define diretamente os arquivos da persona, como SOUL.md e AGENTS.md.cron.addecron.listcontrolam tarefas que podem disparar depois do fim da conversa.config.geteconfig.patchtoda a configuração do agente: modelo, ferramentas, até mesmotoolSearch.chat.sendinjeta uma mensagem durante uma tarefa e pode redirecionar o agente.sessions.resetedeleteapagam memória;gateway.restart.requestreinicia o runtime.
Combinadas, essas chamadas formam um caminho de escalada. Um invasor pode ler a persona, criar uma tarefa cron para execução posterior, ampliar a configuração, redirecionar uma tarefa ativa e reiniciar o runtime para aplicar a nova forma.
O sandbox governa as syscalls do agente; essas operações pertencem ao plano de controle. A robustez do sandbox e o alcance administrativo são propriedades diferentes. Avalie as duas.
Enumere esse alcance no launchable. A célula apenas lê e não altera a configuração.
O que o sandbox não pode capturar
O kernel limitou as ações do agente, mas duas classes de dano permanecem. A primeira vem do plano de controle, que reconfigura o agente acima do ponto de aplicação. A segunda usa um envelope autorizado: cada ação isolada é permitida, mas sua composição causa o dano.
Entrada não confiável, acesso a dados privados e comunicação externa formam a tríade letal.
- Dados privados são informações que o agente pode ler, mas não deve divulgar: arquivos do workspace, e-mails, tokens, memória ou registros internos.
- Entrada não confiável é conteúdo não escrito pelo operador que o modelo pode interpretar como instrução: página web, issue, documento, resultado de ferramenta ou resposta de outro agente.
- Comunicação externa é qualquer caminho capaz de transportar bytes para fora: HTTP, pull request, chat, linha de log, carregamento de imagem ou link aberto pelo usuário.
O risco surge da composição. A política pode autorizar corretamente um endpoint, mas a conexão continua bidirecional: a solicitação sai e a resposta volta como nova entrada. Conteúdo hostil pode orientar o modelo a ler dados privados e enviá-los por um canal permitido. Um controle acima do sandbox precisa interromper pelo menos uma dessas três condições.
Essas lacunas existem em uma configuração padrão, e a política de rede e do sistema de arquivos não consegue resolvê-las sozinha:
- Alteração da persona. SOUL.md pertence ao agente e permite gravação; um agente confuso ou comprometido pode reescrever a própria identidade. O proprietário consegue desfazer
chmod. Umchattr +iaplicado por root, fora do sandbox, cria um limite mais forte. - Plano de controle no nível da identidade. Quem possui
OPENCLAW_GATEWAY_TOKENpode ler a persona, criar uma tarefa cron e injetar um turno acima do ponto de aplicação do kernel. - Injeção por entrada. Bloquear a saída por padrão impede alguns vazamentos, mas não remove instruções maliciosas recebidas por um canal autorizado. Essa é a injeção indireta de prompt descrita por Greshake e colegas. Mitigá-la exige procedência, classificação de entrada e avaliação comportamental.
- Exfiltração por canal permitido. Um endpoint autorizado ainda pode transportar dados indevidos. A política prova que o canal é permitido; não determina se o conteúdo é benigno.
- Intenção oculta. O gateway encaminha ações sem expor o raciocínio do modelo. Um agente comprometido pode executar um workflow prejudicial inteiramente com ações que, isoladas, parecem válidas.
- Preservação entre pares. Em uma frota, o contexto social pode alterar o julgamento de um agente ao avaliar ou desligar outro. Testes de regressão comportamental precisam detectar essa mudança.
Escolha o controle pelo modo de falha
Um sandbox limita o que um processo comprometido pode alcançar. A aplicação e prática operacional ainda possuem decisões cujo significado é invisível para o kernel.
| Modo de falha | O que o sandbox contribui | Controle ainda necessário acima dele |
|---|---|---|
| Sequestro de objetivos ou injeção de prompt | Limita arquivos, processos e destinos alcançáveis depois que o modelo é desviado | Procedência da entrada, aprovação de ações com consequências e avaliação comportamental |
| Mau uso da ferramenta | Restringe o OS e o envelope de rede em que a ferramenta é executada | Autorização por ferramenta, validação de argumentos, limites de taxa e confirmação de chamadas irreversíveis |
| Abuso de identidade ou privilégio | Inicia o processo sem root e bloqueia caminhos selecionados de escalada | Identidades por carga de trabalho, escopos mínimos, tokens de curta duração, rotação e auditoria |
| Cadeia de fornecimento ou execução inesperada de código | Reduz os arquivos, syscalls e egress disponíveis para o código instalado | Dependências definidas e verificadas, política de instalação e monitoramento da integridade |
| Envenenamento de memória ou contexto | Pode proteger arquivos específicos quando a política os torna somente para leitura | Procedência das gravações, histórico auditável, rótulos de confiança e restauração de um estado conhecido |
As categorias se alinham com o OWASP Top 10 para Aplicações Agenticas. Use a tabela para escolher um ponto de execução em vez de pedir uma camada para reconhecer todos os tipos de dano.
Referências
- Simon Willison, The lethal trifecta (2025). Define a combinação de dados privados, conteúdo não confiável e acesso à rede representada pelo diagrama da tríade letal no Passo 3.
- Greshake et al. (2023) Not what you've signed up for. Trabalho de referência sobre injeção indireta de prompt: ataques entregues por conteúdo recuperado ou renderizado no qual o modelo confia.
- Saltzer e Schroeder, The Protection of Information in Computer Systems (1975). Trabalho que nomeou o princípio do menor privilégio, base da contenção com bloqueio por padrão.
- seccomp filter e Landlock. Primitivas do kernel para listas de syscalls permitidas e controle de acesso ao sistema de arquivos, usadas pelo
openshellnos mecanismos 2 e 3. - Open Policy Agent. Mecanismo de política como dados que avalia o proxy CONNECT e controla cada conexão de saída.
- NeMo Guardrails. Complemento na camada da aplicação para a contenção no kernel; detecta violações de política que o kernel não consegue interpretar.
- OWASP Top 10 for Agentic Applications. Taxonomia atual de sequestro de objetivos, uso indevido de ferramentas, abuso de identidade, comprometimento da cadeia de suprimentos, execução inesperada de código e envenenamento de memória.
Lista completa em Próximos passos · Referências.