O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Como o FireAI limita os danos de rede dos erros arriscados do OpenClaw no seu Mac

Como o FireAI limita os danos de rede dos erros arriscados do OpenClaw no seu Mac

Rodar um agente autônomo como o OpenClaw em um Mac dá a um modelo de linguagem as permissões da conta que o inicia, e os relatórios de segurança publicados desde janeiro de 2026 documentam várias formas pelas quais esse arranjo deu errado. A maioria dessas falhas termina com uma conexão de rede: dados enviados a um servidor desconhecido, um serviço local acessível de fora ou uma carga maliciosa baixada. O FireAI é um firewall de rede para macOS, então consegue limitar essa parte. Ele não consegue impedir um agente de ler ou apagar arquivos locais, e este artigo diz onde fica essa fronteira.

Contexto

A própria documentação do OpenClaw afirma que as ferramentas rodam no host, a menos que o isolamento (sandboxing) esteja configurado, que as mensagens recebidas são entradas não confiáveis e que agentes com acesso à ferramenta de mensagens podem, por padrão, enviar mensagens entre conversas e provedores de canal [1]. Um agente combina, portanto, três coisas: lê texto não confiável, pode agir sobre a máquina e pode se comunicar com o exterior. Um firewall trata da terceira. As seções abaixo percorrem cada classe de risco documentada, indicam o controle do FireAI que se aplica e listam os passos para configurá-lo. A comparação geral entre o OpenClaw e o Hermes Agent está em um artigo separado.

Antes dos passos: como o FireAI identifica um agente

O FireAI identifica um app pela assinatura de código do executável que abre a conexão ou, no caso de um programa sem assinatura, pelo seu caminho. Ele não tem integração com o OpenClaw nem com o Hermes Agent e não reconhece nenhum dos dois pelo nome. Agentes desse tipo rodam dentro de um interpretador de uso geral, normalmente Node.js ou Python, então o FireAI mostra conexões de “node” ou “python3”. Uma regra sobre esse interpretador se aplica a todos os scripts que o mesmo binário executa, incluindo ferramentas sem relação com o agente.

A atribuição por script não está disponível hoje. Todas as regras abaixo se aplicam, portanto, ao interpretador como um todo, e uma regra que bloqueia os destinos do agente também afeta qualquer outro script que o mesmo interpretador execute. Ler o nome do interpretador em um aviso e relacioná-lo ao momento em que o agente estava trabalhando é a forma prática de atribuir uma conexão.

Risco 1: injeção de prompt que envia dados para fora

A Kaspersky relatou que o OpenClaw se mostrou suscetível à extração de dados por meio de conteúdo malicioso em e-mails, incluindo a demonstração de um pesquisador que extraiu chaves criptográficas privadas ao incorporar instruções em uma mensagem, e relatos de usuários de que o bot despejou o conteúdo do diretório pessoal em um chat de grupo após um prompt de engenharia social [3]. A etapa de exfiltração é uma conexão de saída do processo do agente para um servidor controlado pelo atacante ou para um serviço de mensagens.

O FireAI identifica cada app pela assinatura de código e verifica suas regras a cada conexão. No modo Alerta, ele pausa a primeira conexão com um destino que não tem regra e pergunta [12]. A configuração que limita esse risco é uma lista de permissões construída em torno do agente:

  1. Inicie o agente uma vez e deixe o FireAI mostrar suas primeiras conexões. No aviso, clique em Opções, escolha Sempre e O site inteiro para o domínio do provedor de modelo que você de fato usa, e depois Permitir. O aviso mostra o nome do interpretador, não do agente.
  2. Bloqueie todos os outros destinos desse app: abra Regras, clique em Adicionar regra, escolha Parar a conexão, selecione o interpretador sob o qual o agente roda (node ou python3) e defina Qual site ou servidor como Qualquer lugar na internet.
  3. Abra a regra Permitir que você criou para o provedor de modelo e ative Rápida, para que a primeira regra rápida correspondente decida antes que o bloqueio amplo seja considerado.
  4. Responda aos avisos seguintes com Bloquear, a menos que você saiba identificar o destino. Um aviso para um domínio desconhecido logo depois de o agente ler um e-mail é exatamente o sinal que esse controle foi feito para revelar.
  5. Abra Detalhes no aviso para verificar o endereço, a porta e o status da assinatura de código, e use Por que bloquear isto? quando a opção for oferecida.

Há limites. Se o agente tiver permissão para alcançar um serviço de mensagens ou seu provedor de modelo, uma instrução injetada pode enviar dados para lá, e o FireAI vê quanto é enviado, não o que é dito, porque não lê o conteúdo de conexões criptografadas (como as conexões são inspecionadas sem descriptografia).

Risco 2: skills maliciosas ou comprometidas

A Koi Security auditou 2.857 skills no ClawHub e identificou 341 maliciosas, 335 delas de uma única campanha; a eSecurity Planet relata que as skills pediam aos usuários que instalassem “pré-requisitos” que entregavam o Atomic macOS Stealer, que visa credenciais de navegador, senhas do chaveiro, carteiras, chaves SSH e tokens de API [6]. Uma skill roda com as permissões do agente, então suas chamadas de rede aparecem como se fossem do agente.

Os controles do FireAI atuam sobre o destino dessas chamadas, de duas formas. Primeiro, a lista de permissões da seção anterior recusa destinos que nunca foram aprovados. Segundo, o FireAI pode usar listas públicas de ameaças:

  1. Abra a página de listas de ameaças no FireAI e ative Usar dados públicos de ameaças. O FireAI passa a baixar uma vez por dia listas como abuse.ch URLhaus, ThreatFox e Feodo Tracker, e seu tráfego nunca é enviado a elas. Veja a documentação.
  2. Ative Bloquear o que uma lista de ameaças confirma, para que uma correspondência confirmada vire um bloqueio, e não apenas um sinal.
  3. Abra Ameaças e use Investigar em qualquer linha que você não reconheça; o dossiê explica a conexão passo a passo.
  4. Mantenha o Histórico de conexões ativado (Ajustes, Histórico de conexões) para revisar depois qual app contatou qual destino; ele guarda um registro de 7 dias apenas neste Mac.

Uma skill que contata um servidor que nenhuma lista conhece, ou que só lê arquivos locais, não é detectada por esse controle. Revisar a skill antes da instalação continua sendo a principal defesa.

Risco 3: um gateway local acessível de fora ou a partir de um navegador

A Censys registrou um crescimento de cerca de 1.000 para 21.639 instâncias do OpenClaw expostas publicamente em menos de uma semana até 31 de janeiro de 2026, observando que o Gateway foi projetado para escutar localmente na porta TCP 18789 [4]. A Kaspersky descreveu instalações sem autenticação que confiavam no localhost e ficavam atrás de proxies reversos mal configurados [3]. A descoberta ClawJacked, da Oasis Security, mostrou que uma página web podia se conectar ao Gateway local a partir do navegador; a falha foi corrigida no OpenClaw 2026.2.25 [5].

O FireAI aplica regras às conexões de entrada no Mac, assim como às de saída, embora nunca exiba avisos para conexões de entrada. Veja a documentação. Os passos relevantes:

  1. Mude para o modo Cafeteria quando o Mac estiver em uma rede que você não controla. Ele bloqueia conexões de entrada e o compartilhamento de arquivos e de tela com outros dispositivos, como descrito em modos de segurança.
  2. Para que isso seja automático, associe o modo Cafeteria aos seus locais públicos, como documentado em locais, ou use o Coffee Shop Armor, que a documentação do FireAI descreve para Wi-Fi público.
  3. Em Regras, adicione uma regra de bloqueio de entrada para o app do agente (em Avançado, defina Direção como de entrada) em qualquer rede em que você não confie plenamente.
  4. Verifique também a configuração do próprio agente: o Gateway deve continuar vinculado ao loopback, como a documentação do OpenClaw descreve para instalações comuns no host [1].

Risco 4: credenciais e arquivos saindo da máquina

Os mesmos relatórios listam chaves de API, tokens, chaves SSH e arquivos de carteiras como alvos [6]. Para a exfiltração pela rede, três recursos do FireAI se aplicam:

  1. A inspeção de protocolos bloqueia requisições web não criptografadas que carregam números de cartão, dados bancários, senhas ou chaves antes que saiam do Mac, e bloqueia dados contrabandeados na forma de consultas DNS; nada é armazenado nem enviado. Veja a documentação.
  2. O mapa-múndi e Atividade mostram cada conexão ao vivo e em um histórico pesquisável. Clique com o botão direito em uma conexão para Recusar host, Bloquear IP para todos os apps ou Bloquear este app em todo lugar. Veja a documentação.
  3. O Ask FireAI aceita ordens em linguagem simples, como “bloquear” seguido do nome de um app tal como aparece no FireAI (o interpretador, no caso de um agente), mostra uma prévia e não aplica nada até você clicar em Aplicar. Veja a documentação.

Uma credencial enviada a um destino permitido por uma conexão criptografada está fora do que o FireAI consegue ver.

Risco 5: conexões inesperadas quando ninguém está olhando

Os agentes trabalham sem supervisão. A documentação do OpenClaw observa que remetentes desconhecidos são pareados por padrão e que os agentes podem enviar mensagens entre canais, a menos que isso seja restringido [1]; a documentação do Hermes Agent descreve um sistema de aprovação de comandos cujo modo pode ser definido como desativado [7]. É nas execuções sem supervisão que uma ação equivocada ou injetada causa mais estrago antes que alguém perceba.

  1. Use uma regra com horário, criada pelo Ask FireAI, para que o agente só se conecte em horários definidos, por exemplo “permitir o agente durante o horário de trabalho”; as quatro janelas integradas são noite, fim de tarde, horário de trabalho e fins de semana. Veja a documentação.
  2. Use o modo Paranoico quando o agente rodar sem supervisão. Ele bloqueia tráfego de rastreamento, apps sem assinatura e todas as portas não criptografadas, e até as ferramentas de sistema da Apple precisam ser aprovadas [10].
  3. Use o modo Sob ataque ou o kill switch quando um agente se comportar mal. Sob ataque permite apenas apps com uma regra Permitir explícita e deixa de perguntar. O kill switch recusa novas conexões com qualquer coisa fora da rede de casa ou do escritório e também pode ser acionado pela barra de menus [11].
  4. Deixe o FireAI Pilot para os outros apps, ou revise-o em Sugestões, já que ele responde automaticamente às conexões sobre as quais tem certeza; para um agente, regras explícitas são mais fáceis de auditar.

Recomendações

  1. Rode o agente em uma conta de usuário do macOS dedicada ou em uma máquina virtual, com acesso apenas às pastas de que ele precisa.
  2. Dê a ele credenciais revogáveis e de escopo restrito, e nunca o seu gerenciador de senhas principal nem suas chaves SSH.
  3. Leia o código-fonte de uma skill antes de instalá-la e recuse qualquer uma que peça para você colar um comando de shell como pré-requisito.
  4. Mantenha o agente atualizado; a correção do ClawJacked só chegou aos usuários por meio da atualização.
  5. Mantenha a aprovação de comandos no modo manual quando o agente oferecer essa opção.
  6. Combine a lista de permissões, o kill switch e um modo adequado ao lugar onde você trabalha.

Limitações

  • O FireAI vê o interpretador que abre uma conexão (por exemplo node ou python3), não o nome do agente; uma regra se aplica a tudo o que esse interpretador executa. Ele não tem integração com esses agentes.
  • O FireAI controla qual app se conecta a onde e pode cortar a internet. Ele não consegue impedir um agente de apagar, criptografar ou ler arquivos locais, executar comandos ou mudar ajustes no Mac.
  • O kill switch recusa novas conexões; ele não encerra as que já estão abertas.
  • O FireAI não lê o conteúdo de conexões criptografadas, então os dados enviados a um destino permitido não são inspecionados.
  • A filtragem do tráfego de loopback entre um navegador e um serviço local não está documentada; atualize o agente para corrigir falhas desse tipo.
  • As listas de ameaças só bloqueiam o que confirmam; um servidor novo ou uma skill com comportamento apenas local não são cobertos.
  • Um firewall não corrige as escolhas de design do próprio agente, como um Gateway vinculado a um endereço público.
  • Medidas complementares são necessárias: contas com privilégio mínimo, sandboxes ou máquinas virtuais, backups e a revisão das skills antes da instalação.

Onde FireAI e HisnLabs entram nessa história

Agentes agem rápido. Um firewall de rede decide para onde eles podem se conectar.

O FireAI é o produto da HisnLabs: um firewall com IA que roda direto no seu Mac. Ele mostra, em linguagem simples, cada conexão que seus aplicativos fazem e deixa você decidir o que sai do seu Mac — a IA roda localmente, então seu tráfego nunca é enviado para nós nem para ninguém. A equipe de pesquisa em segurança da HisnLabs é quem mantém essas decisões confiáveis: cataloga quais domínios são telemetria comum e quais são um serviço de verdade, rastreia o país e a rede por trás de uma conexão e treina o modelo local (o recurso FireAI Pilot) com padrões reais de tráfego, sem que nada disso saia do seu Mac.

Você pode ler as decisões técnicas por trás dele, ou testar o FireAI por 17 dias, em FireAI, da HisnLabs.

Fontes