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

Executar num Mac um agente autónomo como o OpenClaw 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 como esse arranjo correu mal. A maioria dessas falhas termina numa ligação de rede: dados enviados para um servidor desconhecido, um serviço local acessível a partir do exterior ou um payload descarregado. O FireAI é uma firewall de rede para macOS, pelo que pode limitar essa parte. Não consegue impedir um agente de ler ou apagar ficheiros locais, e este artigo indica onde se situa essa fronteira.

Contexto

A própria documentação do OpenClaw afirma que as ferramentas correm no anfitrião, salvo se for configurado um sandbox, que as mensagens recebidas são dados não fiáveis e que os agentes com acesso à ferramenta de mensagens podem, por predefinição, enviar mensagens entre conversas e fornecedores de canais [1]. Um agente combina, por isso, três coisas: lê texto não fiável, pode agir sobre a máquina e pode comunicar para o exterior. Uma firewall atua sobre a terceira. As secções seguintes tratam, uma a uma, as classes de risco documentadas, indicam o controlo do FireAI aplicável e enumeram os passos para o configurar. A comparação geral entre o OpenClaw e o Hermes Agent encontra-se num artigo separado.

Antes dos passos: como o FireAI identifica um agente

O FireAI identifica uma app pela assinatura de código do executável que abre a ligação ou, no caso de um programa não assinado, pelo seu caminho. Não tem integração com o OpenClaw nem com o Hermes Agent e não reconhece nenhum deles pelo nome. Os agentes deste tipo correm dentro de um interpretador de uso geral, tipicamente Node.js ou Python, pelo que o FireAI mostra ligações de «node» ou «python3». Uma regra aplicada a esse interpretador aplica-se 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á hoje disponível. Todas as regras abaixo aplicam-se, por isso, ao interpretador no seu conjunto, e uma regra que bloqueie os destinos do agente afeta também qualquer outro script executado pelo mesmo interpretador. Ler o nome do interpretador num aviso e relacioná-lo com o momento em que o agente estava a trabalhar é a forma prática de atribuir uma ligação.

Risco 1: injeção de prompts que envia dados para o exterior

A Kaspersky relatou que o OpenClaw se revelou suscetível à extração de dados através de conteúdo de email malicioso, incluindo a demonstração de um investigador que extraiu chaves criptográficas privadas incorporando instruções numa mensagem, e utilizadores que relataram que o bot despejou o conteúdo da pasta pessoal numa conversa de grupo após um prompt de engenharia social [3]. A etapa de exfiltração é uma ligaçã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 sua assinatura de código e verifica as suas regras em cada ligação. No modo Alerta, suspende a primeira ligação a um destino sem regra e pergunta [12]. A configuração que limita este risco é uma lista de permissões construída em torno do agente:

  1. Inicie o agente uma vez e deixe o FireAI mostrar as suas primeiras ligações. No aviso, clique em Options, escolha Always e The whole website para o domínio do fornecedor de modelos que efetivamente utiliza, e depois Permitir. O aviso indica o interpretador, não o agente.
  2. Bloqueie todos os outros destinos para essa app: abra Regras, clique em Add rule, escolha Stop the connection, selecione o interpretador sob o qual o agente corre (node ou python3) e defina Which website or server como Anywhere on the internet.
  3. Abra a regra Permitir que criou para o fornecedor de modelos e ative Quick, para que a primeira regra Quick correspondente decida antes de ser considerado o bloqueio geral.
  4. Responda aos avisos seguintes com Bloquear, a menos que consiga identificar o destino. Um aviso relativo a um domínio desconhecido logo após o agente ler um email é precisamente o sinal que este controlo foi concebido para evidenciar.
  5. Abra Details no aviso para verificar o endereço, a porta e o estado da assinatura de código, e use Why block this? quando estiver disponível.

Há limites. Se o agente puder contactar um serviço de mensagens ou o seu fornecedor de modelos, uma instrução injetada pode enviar dados para esse destino, e o FireAI vê quanto é enviado, não o que é dito, porque não lê o conteúdo de ligações cifradas (como as ligações são inspecionadas sem decifragem).

Risco 2: skills maliciosas ou comprometidas

A Koi Security auditou 2857 skills no ClawHub e identificou 341 maliciosas, 335 delas provenientes de uma única campanha; a eSecurity Planet relata que as skills pediam aos utilizadores que instalassem «pré-requisitos» que distribuíam o Atomic macOS Stealer, que visa credenciais de navegadores, palavras-passe do porta-chaves, carteiras, chaves SSH e tokens de API [6]. Uma skill corre com as permissões do agente, pelo que as suas chamadas de rede aparecem como sendo do agente.

Os controlos do FireAI atuam sobre o destino dessas chamadas, de duas formas. Primeiro, a lista de permissões da secçã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 Use public threat data. O FireAI descarrega então, uma vez por dia, listas como abuse.ch URLhaus, ThreatFox e Feodo Tracker, e o seu tráfego nunca lhes é enviado. Consulte a documentação.
  2. Ative Block what a threat list confirms, para que uma correspondência confirmada resulte num bloqueio e não apenas num alerta.
  3. Abra Ameaças e use Investigate em qualquer linha que não reconheça; o dossiê explica a ligação passo a passo.
  4. Mantenha o Connection history ativo (Definições, Connection history) para rever mais tarde que app contactou que destino; guarda um registo de 7 dias apenas neste Mac.

Uma skill que contacte um servidor que nenhuma lista conhece, ou que apenas leia ficheiros locais, não é detetada por este controlo. Analisar a skill antes da instalação continua a ser a principal defesa.

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

A Censys registou um aumento de cerca de 1000 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 concebido para escutar localmente na porta TCP 18789 [4]. A Kaspersky descreveu instalações sem autenticação que confiavam no localhost e se encontravam atrás de proxies inversos mal configurados [3]. A descoberta ClawJacked da Oasis Security mostrou que uma página web podia ligar-se ao Gateway local a partir do navegador; a falha foi corrigida no OpenClaw 2026.2.25 [5].

O FireAI aplica regras às ligações de entrada no Mac, tal como às de saída, embora nunca apresente avisos sobre ligações de entrada. Consulte a documentação. Os passos relevantes:

  1. Mude para o modo Café quando o Mac estiver numa rede que não controla. Este modo bloqueia as ligações de entrada e a partilha de ficheiros e de ecrã com outros dispositivos, conforme descrito em modos de segurança.
  2. Para que isto seja automático, associe o modo Café aos seus locais públicos, conforme documentado em locais, ou use o Coffee Shop Armor, que a documentação do FireAI descreve para Wi-Fi público.
  3. Em Regras, acrescente uma regra de bloqueio de entrada para a app do agente (em Advanced, defina Direction como incoming) em qualquer rede em que não confie plenamente.
  4. Verifique também a configuração do próprio agente: o Gateway deve permanecer associado à interface de loopback, como a documentação do OpenClaw descreve para as instalações normais no anfitrião [1].

Risco 4: credenciais e ficheiros que saem da máquina

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

  1. A inspeção de protocolos bloqueia pedidos web não cifrados que transportem números de cartão, dados bancários, palavras-passe ou chaves antes de saírem do Mac, e bloqueia dados extraídos sob a forma de consultas DNS; nada é guardado nem enviado. Consulte a documentação.
  2. O Mapa-múndi e a Atividade mostram cada ligação em tempo real e num histórico pesquisável. Clique com o botão direito numa ligação para Deny host, Block IP for all apps ou Block this app everywhere. Consulte a documentação.
  3. O Ask FireAI aceita ordens em linguagem simples, como «bloquear» seguido do nome de uma app tal como aparece no FireAI (o interpretador, no caso de um agente), mostra uma pré-visualização e não aplica nada até clicar em Aplicar. Consulte a documentação.

Uma credencial enviada para um destino permitido através de uma ligação cifrada está fora do que o FireAI consegue ver.

Risco 5: ligações inesperadas enquanto ninguém está a observar

Os agentes trabalham sem supervisão. A documentação do OpenClaw observa que os remetentes desconhecidos são emparelhados por predefinição e que os agentes podem enviar mensagens entre canais, salvo restrição [1]; a documentação do Hermes Agent descreve um sistema de aprovação de comandos cujo modo pode ser definido como off [7]. É nas execuções sem supervisão que uma ação errada ou injetada causa mais efeitos antes de alguém se aperceber.

  1. Use uma regra temporizada, criada através do Ask FireAI, para que o agente só se ligue em horas definidas, 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. Consulte a documentação.
  2. Use o modo Paranoico quando o agente corre sem supervisão. Bloqueia o tráfego de rastreio, as apps não assinadas e todas as portas não cifradas, e até as ferramentas de sistema da Apple têm de ser aprovadas [10].
  3. Use o modo Sob ataque ou o corte de emergência quando um agente se comporta mal. O modo Sob ataque permite apenas as apps com uma regra Permitir explícita e deixa de perguntar. O corte de emergência recusa novas ligações a tudo o que esteja fora da rede de casa ou do escritório, e está também acessível a partir da barra de menus [11].
  4. Reserve o FireAI Pilot para outras apps, ou reveja as suas decisões em Sugestões, uma vez que responde automaticamente às ligações em que tem confiança; no caso de um agente, as regras explícitas são mais fáceis de auditar.

Recomendações

  1. Execute o agente numa conta de utilizador do macOS dedicada ou numa máquina virtual, apenas com as pastas de que necessita.
  2. Dê-lhe credenciais revogáveis e de âmbito restrito, e nunca o seu gestor de palavras-passe principal nem as suas chaves SSH.
  3. Leia o código-fonte de uma skill antes de a instalar, e recuse qualquer uma que lhe peça para colar um comando de shell como pré-requisito.
  4. Mantenha o agente atualizado; a correção do ClawJacked só chegou aos utilizadores através da atualização.
  5. Mantenha a aprovação de comandos em manual, quando o agente o permitir.
  6. Combine a lista de permissões, o corte de emergência e um modo adequado ao local onde trabalha.

Limitações

  • O FireAI vê o interpretador que abre uma ligação (por exemplo, node ou python3), não o nome do agente; uma regra aplica-se a tudo o que esse interpretador executa. Não tem integração com estes agentes.
  • O FireAI controla que app se liga a que destino e pode cortar a internet. Não consegue impedir um agente de apagar, cifrar ou ler ficheiros locais, executar comandos ou alterar definições no Mac.
  • O corte de emergência recusa novas ligações; não encerra as que já estão abertas.
  • O FireAI não lê o conteúdo de ligações cifradas, pelo que os dados enviados para 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 essas falhas.
  • As listas de ameaças só bloqueiam o que confirmam; um servidor novo ou uma skill com comportamento apenas local não estão abrangidos.
  • Uma firewall não corrige as opções de conceção do próprio agente, como um Gateway associado a um endereço público.
  • São necessárias medidas complementares: contas com privilégios mínimos, sandboxes ou máquinas virtuais, cópias de segurança e análise das skills antes da instalação.

O papel do FireAI e da HisnLabs

Os agentes agem depressa. Uma firewall de rede decide a que destinos podem ligar-se.

O FireAI é o produto da HisnLabs: uma firewall com IA que corre diretamente no seu Mac. Mostra, em linguagem clara, cada ligação que as suas aplicações fazem e deixa-o decidir o que sai do seu Mac — a IA funciona localmente, pelo que o seu tráfego nunca é enviado para nós nem para mais ninguém. A equipa de investigação em segurança da HisnLabs é quem mantém essas decisões fiáveis: cataloga que domínios são simples telemetria e quais são um serviço real, acompanha o país e a rede por detrás de uma ligação e treina o modelo local (a funcionalidade FireAI Pilot) com padrões de tráfego reais, sem que nada disso saia do seu Mac.

Pode ler as decisões técnicas por detrás dele, ou experimentar o FireAI durante 17 dias, em FireAI, da HisnLabs.

Fontes