El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

Cómo limita FireAI el daño en red de los errores arriesgados de OpenClaw en tu Mac

Cómo limita FireAI el daño en red de los errores arriesgados de OpenClaw en tu Mac

Ejecutar en un Mac un agente autónomo como OpenClaw otorga a un modelo de lenguaje los permisos de la cuenta que lo inicia, y los informes de seguridad publicados desde enero de 2026 documentan varias formas en que esa configuración ha salido mal. La mayoría de esos fallos terminan en una conexión de red: datos enviados a un servidor desconocido, un servicio local accesible desde fuera o una carga descargada. FireAI es un cortafuegos de red para macOS, así que puede limitar esa parte. No puede impedir que un agente lea o borre archivos locales, y este artículo indica dónde está el límite.

Contexto

La propia documentación de OpenClaw indica que las herramientas se ejecutan en el equipo anfitrión salvo que se configure un sandbox, que los mensajes entrantes son entradas no fiables y que los agentes con acceso a la herramienta de mensajes pueden, por defecto, enviar a través de conversaciones y proveedores de canales [1]. Un agente combina, por tanto, tres cosas: lee texto no fiable, puede actuar sobre la máquina y puede comunicarse hacia fuera. Un cortafuegos actúa sobre la tercera. Las secciones siguientes recorren cada clase de riesgo documentada, nombran el control de FireAI que se aplica y enumeran los pasos para configurarlo. La comparación general entre OpenClaw y Hermes Agent está en otro artículo.

Antes de los pasos: cómo identifica FireAI a un agente

FireAI identifica una app por la firma de código del ejecutable que abre la conexión o, en el caso de un programa sin firmar, por su ruta. No tiene integración con OpenClaw ni con Hermes Agent y no reconoce a ninguno de los dos por su nombre. Los agentes de este tipo se ejecutan dentro de un intérprete de uso general, normalmente Node.js o Python, de modo que FireAI muestra conexiones de «node» o «python3». Una regla sobre ese intérprete se aplica a todos los scripts que ejecuta el mismo binario, incluidas herramientas sin relación con el agente.

Hoy no es posible atribuir las conexiones por script. Por eso, todas las reglas que siguen se aplican al intérprete en su conjunto, y una regla que bloquea los destinos del agente afecta también a cualquier otro script que ejecute el mismo intérprete. La forma práctica de atribuir una conexión es leer el nombre del intérprete en un aviso y relacionarlo con el momento en que el agente estaba trabajando.

Riesgo 1: inyección de prompts que envía datos al exterior

Kaspersky informó de que OpenClaw resultó vulnerable a la extracción de datos mediante contenido de correo malicioso, incluida la demostración de un investigador que extrajo claves criptográficas privadas insertando instrucciones en un mensaje, y de usuarios que relataron que el bot volcó el contenido de su carpeta de inicio en un chat de grupo tras un prompt de ingeniería social [3]. El paso de exfiltración es una conexión saliente desde el proceso del agente hacia un servidor que controla el atacante o hacia un servicio de mensajería.

FireAI identifica cada app por su firma de código y comprueba sus reglas en cada conexión. En modo Alerta pausa la primera conexión a un destino sin regla y pregunta [12]. La configuración que limita este riesgo es una lista de permitidos construida en torno al agente:

  1. Inicia el agente una vez y deja que FireAI muestre sus primeras conexiones. En el aviso, haz clic en Opciones, elige Siempre y Todo el sitio web para el dominio del proveedor de modelos que realmente usas, y después Permitir. El aviso muestra el intérprete, no el agente.
  2. Bloquea todos los demás destinos para esa app: abre Reglas, haz clic en Añadir regla, elige Detener la conexión, selecciona el intérprete con el que se ejecuta el agente (node o python3) y en ¿Qué sitio web o servidor? indica Cualquier lugar de internet.
  3. Abre la regla Permitir que creaste para el proveedor de modelos y activa Rápida, para que la primera regla rápida que coincida decida antes de que se tenga en cuenta el bloqueo general.
  4. Responde a los avisos posteriores con Bloquear salvo que sepas identificar el destino. Un aviso para un dominio desconocido justo después de que el agente lea un correo es precisamente la señal que este control está pensado para hacer visible.
  5. Abre Detalles en el aviso para comprobar la dirección, el puerto y el estado de la firma de código, y usa ¿Por qué bloquearlo? cuando se ofrezca.

Hay límites. Si el agente tiene permitido acceder a un servicio de mensajería o a su proveedor de modelos, una instrucción inyectada puede enviar datos allí, y FireAI ve cuánto se envía, no qué dice, porque no lee el contenido de las conexiones cifradas (cómo se inspeccionan las conexiones sin descifrarlas).

Riesgo 2: skills maliciosas o comprometidas

Koi Security auditó 2.857 skills de ClawHub e identificó 341 maliciosas, 335 de ellas de una sola campaña; eSecurity Planet informa de que esas skills pedían a los usuarios instalar unos «requisitos previos» que distribuían Atomic macOS Stealer, que se dirige a credenciales del navegador, contraseñas del llavero, monederos, claves SSH y tokens de API [6]. Una skill se ejecuta con los permisos del agente, así que sus llamadas de red aparecen como del agente.

Los controles de FireAI actúan sobre el destino de esas llamadas, de dos maneras. En primer lugar, la lista de permitidos de la sección anterior rechaza los destinos que nunca se aprobaron. En segundo lugar, FireAI puede usar listas públicas de amenazas:

  1. Abre la página de listas de amenazas en FireAI y activa Usar datos públicos de amenazas. FireAI descarga entonces una vez al día listas como abuse.ch URLhaus, ThreatFox y Feodo Tracker, y tu tráfico nunca se les envía. Véase la documentación.
  2. Activa Bloquear lo que confirme una lista de amenazas, para que una coincidencia confirmada se convierta en un bloqueo y no solo en una señal.
  3. Abre Amenazas y usa Investigar en cualquier fila que no reconozcas; el informe explica la conexión paso a paso.
  4. Mantén activado el Historial de conexiones (Ajustes, Historial de conexiones) para revisar más tarde qué app contactó con qué destino; guarda un registro de 7 días solo en este Mac.

Este control no detecta una skill que contacte con un servidor que ninguna lista conoce, ni una que solo lea archivos locales. Revisar la skill antes de instalarla sigue siendo la defensa principal.

Riesgo 3: un gateway local accesible desde fuera o desde un navegador

Censys registró un crecimiento de unas 1.000 a 21.639 instancias de OpenClaw expuestas públicamente en menos de una semana hasta el 31 de enero de 2026, y señaló que el Gateway está diseñado para escuchar localmente en el puerto TCP 18789 [4]. Kaspersky describió instalaciones sin autenticación que confiaban en localhost y estaban detrás de proxies inversos mal configurados [3]. El hallazgo ClawJacked de Oasis Security mostró que una página web podía conectarse al Gateway local desde el navegador; se corrigió en OpenClaw 2026.2.25 [5].

FireAI aplica reglas tanto a las conexiones entrantes al Mac como a las salientes, aunque nunca pregunta por las entrantes. Véase la documentación. Los pasos pertinentes:

  1. Cambia al modo Cafetería cuando el Mac esté en una red que no controlas. Bloquea las conexiones entrantes y el uso compartido de archivos y pantalla con otros dispositivos, como se describe en modos de seguridad.
  2. Para automatizarlo, asocia el modo Cafetería a tus lugares públicos como se documenta en lugares, o usa Coffee Shop Armor, que la documentación de FireAI describe para las Wi-Fi públicas.
  3. En Reglas, añade una regla Bloquear de entrada para la app del agente (en Avanzado, ajusta Dirección a Entrante) en cualquier red en la que no confíes plenamente.
  4. Comprueba también la configuración del propio agente: el Gateway debe seguir vinculado a loopback, como describe la documentación de OpenClaw para las instalaciones habituales en el equipo anfitrión [1].

Riesgo 4: credenciales y archivos que salen de la máquina

Los mismos informes citan como objetivos claves de API, tokens, claves SSH y archivos de monederos [6]. Para la exfiltración por red, se aplican tres funciones de FireAI:

  1. La inspección de protocolos bloquea, antes de que salgan del Mac, las solicitudes web sin cifrar que contienen números de tarjeta, datos bancarios, contraseñas o claves, y bloquea los datos sacados a escondidas como consultas DNS; no se guarda ni se envía nada. Véase la documentación.
  2. El mapa del mundo y Actividad muestran cada conexión en directo y en un historial con búsqueda. Haz clic derecho en una conexión para elegir Denegar host, Bloquear IP para todas las apps o Bloquear esta app en todas partes. Véase la documentación.
  3. Ask FireAI acepta órdenes en lenguaje natural, como «bloquea» seguido del nombre de una app tal como aparece en FireAI (el intérprete, en el caso de un agente), muestra una vista previa y no aplica nada hasta que haces clic en Aplicar. Véase la documentación.

Una credencial enviada a un destino permitido por una conexión cifrada queda fuera de lo que FireAI puede ver.

Riesgo 5: conexiones inesperadas mientras nadie mira

Los agentes trabajan sin supervisión. La documentación de OpenClaw señala que los remitentes desconocidos se emparejan por defecto y que los agentes pueden enviar mensajes entre canales salvo que se restrinja [1]; la documentación de Hermes Agent describe un sistema de aprobación de comandos cuyo modo puede desactivarse [7]. Las ejecuciones sin supervisión son aquellas en las que una acción errónea o inyectada hace más daño antes de que alguien se dé cuenta.

  1. Usa una regla temporizada, creada con Ask FireAI, para que el agente solo se conecte en determinadas horas, por ejemplo «permite el agente en horario laboral»; las cuatro franjas integradas son noche, tarde, horario laboral y fines de semana. Véase la documentación.
  2. Usa el modo Paranoico cuando el agente funcione sin supervisión. Bloquea el tráfico de rastreo, las apps sin firmar y todos los puertos sin cifrar, e incluso las herramientas del sistema de Apple deben aprobarse [10].
  3. Usa el modo Bajo ataque o el botón de corte cuando un agente se comporte de forma anómala. Bajo ataque solo permite las apps con una regla Permitir explícita y deja de preguntar. El botón de corte rechaza las conexiones nuevas a cualquier destino fuera de la red de casa o de la oficina, y también está accesible desde la barra de menús [11].
  4. Deja FireAI Pilot para las demás apps, o revisa sus decisiones en Sugerencias, ya que responde automáticamente a las conexiones sobre las que está seguro; para un agente, las reglas explícitas son más fáciles de auditar.

Recomendaciones

  1. Ejecuta el agente en una cuenta de usuario de macOS dedicada o en una máquina virtual, solo con las carpetas que necesita.
  2. Dale credenciales revocables y de alcance limitado, y nunca tu gestor de contraseñas principal ni tus claves SSH.
  3. Lee el código fuente de una skill antes de instalarla y rechaza cualquiera que te pida pegar un comando de shell como requisito previo.
  4. Mantén el agente actualizado; la corrección de ClawJacked solo llegó a los usuarios mediante la actualización.
  5. Mantén la aprobación de comandos en manual cuando el agente lo permita.
  6. Combina la lista de permitidos, el botón de corte y un modo adecuado al lugar donde trabajas.

Limitaciones

  • FireAI ve el intérprete que abre una conexión (por ejemplo, node o python3), no el nombre del agente; una regla se aplica a todo lo que ejecuta ese intérprete. No tiene integración con estos agentes.
  • FireAI controla qué app se conecta a dónde y puede cortar internet. No puede impedir que un agente borre, cifre o lea archivos locales, ejecute comandos o cambie ajustes en el Mac.
  • El botón de corte rechaza las conexiones nuevas; no cierra las que ya están abiertas.
  • FireAI no lee el contenido de las conexiones cifradas, así que los datos enviados a un destino permitido no se inspeccionan.
  • El filtrado del tráfico loopback entre un navegador y un servicio local no está documentado; actualiza el agente para cerrar ese tipo de fallos.
  • Las listas de amenazas solo bloquean lo que confirman; un servidor nuevo o una skill con un comportamiento exclusivamente local no quedan cubiertos.
  • Un cortafuegos no corrige las decisiones de diseño del propio agente, como un Gateway vinculado a una dirección pública.
  • Hacen falta medidas complementarias: cuentas con privilegios mínimos, sandboxes o máquinas virtuales, copias de seguridad y revisión de las skills antes de instalarlas.

El papel de FireAI y de HisnLabs

Los agentes actúan deprisa. Un cortafuegos de red decide a dónde pueden conectarse.

FireAI es el propio producto de HisnLabs: un cortafuegos con IA integrada para Mac. Muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona en el propio equipo, así que tu tráfico nunca se envía a HisnLabs ni a nadie más. El equipo de investigación en seguridad de HisnLabs es quien mantiene esas decisiones fiables: cataloga qué dominios son simple telemetría frente a un servicio real, sigue el país y la red detrás de una conexión, y entrena el modelo local (la función FireAI Pilot) con tráfico real, sin que nada salga de tu Mac.

Puedes leer las decisiones técnicas detrás de esto, o probar FireAI durante 17 días, en FireAI, de HisnLabs.

Fuentes