El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

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

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

Ejecutar un agente autónomo como OpenClaw en una Mac le da a un modelo de lenguaje los permisos de la cuenta que lo inicia, y los reportes de seguridad publicados desde enero de 2026 documentan varias formas en que ese arreglo ha salido mal. La mayoría de esas fallas terminan con una conexión de red: datos enviados a un servidor desconocido, un servicio local accesible desde fuera o una carga descargada. FireAI es un firewall 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á ese límite.

Antecedentes

La propia documentación de OpenClaw indica que las herramientas se ejecutan en el host a menos que se configure un sandbox, que los mensajes entrantes son entradas no confiables y que los agentes con acceso a la herramienta de mensajes pueden enviar mensajes entre conversaciones y proveedores de canales de forma predeterminada [1]. Un agente combina, por lo tanto, tres cosas: lee texto no confiable, puede actuar sobre la máquina y puede comunicarse hacia fuera. Un firewall atiende la tercera. Las secciones siguientes toman cada clase de riesgo documentada, nombran el control de FireAI que 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 firma, por su ruta. No tiene integración con OpenClaw ni con Hermes Agent y no reconoce a ninguno por su nombre. Los agentes de este tipo se ejecutan dentro de un intérprete de uso general, normalmente Node.js o Python, así 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 que no tienen nada que ver.

Hoy no existe la atribución por script. Por eso, cada regla de abajo se aplica al intérprete completo, y una regla que bloquea los destinos del agente también afecta a cualquier otro script que ejecute el mismo intérprete. Leer el nombre del intérprete en un aviso y relacionarlo con el momento en que el agente estaba trabajando es la forma práctica de atribuir una conexión.

Riesgo 1: inyección de prompts que envía datos hacia fuera

Kaspersky reportó 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 usuarios que reportaron que el bot volcó el contenido de su directorio personal en un chat grupal después de un prompt de ingeniería social [3]. El paso de exfiltración es una conexión saliente del 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 revisa sus reglas en cada conexión. En el modo Alerta pausa la primera conexión a un destino que no tiene regla y pregunta [12]. La configuración que limita este riesgo es una lista de permitidos construida alrededor del agente:

  1. Inicia el agente una vez y deja que FireAI muestre sus primeras conexiones. En el aviso, da clic en Opciones, elige Siempre y Todo el sitio web para el dominio del proveedor de modelos que realmente usas, y luego Permitir. El aviso nombra el intérprete, no el agente.
  2. Bloquea todos los demás destinos para esa app: abre Reglas, da clic en Agregar regla, elige “Detener la conexión”, selecciona el intérprete con el que se ejecuta el agente (node o python3) y pon ¿Qué sitio web o servidor? en 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 considere el Bloquear amplio.
  4. Responde Bloquear a los avisos posteriores a menos que puedas identificar el destino. Un aviso por un dominio desconocido justo después de que el agente lee un correo es la señal que este control está diseñado para mostrar.
  5. Abre Detalles en el aviso para revisar la dirección, el puerto y el estado de la firma de código, y usa ¿Por qué bloquear esto? cuando se ofrezca.

Hay límites. Si el agente tiene permitido llegar a un servicio de mensajería o a su proveedor de modelos, una instrucción inyectada puede enviar datos ahí, 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 en ClawHub e identificó 341 maliciosas, 335 de ellas de una sola campaña; eSecurity Planet reporta que las skills pedían a los usuarios instalar “requisitos previos” que entregaban Atomic macOS Stealer, que apunta a credenciales del navegador, contraseñas del llavero, wallets, 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 formas. Primero, la lista de permitidos de la sección anterior rechaza los destinos que nunca se aprobaron. Segundo, 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 listas como abuse.ch URLhaus, ThreatFox y Feodo Tracker una vez al día, y tu tráfico nunca se les envía. Consulta la documentación.
  2. Activa Bloquear lo que confirma una lista de amenazas, para que una coincidencia confirmada se convierta en un bloqueo y no solo en una marca.
  3. Abre Amenazas y usa Investigar en cualquier fila que no reconozcas; el expediente explica la conexión paso a paso.
  4. Mantén activado el Historial de conexiones (Ajustes, Historial de conexiones) para revisar después qué app contactó qué destino; guarda un registro de 7 días solo en esta Mac.

Una skill que contacta un servidor que ninguna lista conoce, o que solo lee archivos locales, no queda atrapada por este control. 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 aproximadamente 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 a la Mac como a las salientes, aunque nunca pregunta por las conexiones entrantes. Consulta la documentación. Los pasos relevantes:

  1. Cambia al modo Cafetería cuando la Mac esté en una red que no controlas. Bloquea las conexiones entrantes y el uso compartido de archivos y de pantalla con otros dispositivos, como se describe en modos de seguridad.
  2. Para hacerlo automático, 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 el Wi-Fi público.
  3. En Reglas, agrega una regla Bloquear entrante para la app del agente (en Avanzado, pon Dirección en entrante) en cualquier red en la que no confíes por completo.
  4. Revisa también la configuración del propio agente: el Gateway debe quedarse vinculado a loopback, como describe la documentación de OpenClaw para las instalaciones normales en el host [1].

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

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

  1. La inspección de protocolos bloquea las solicitudes web sin cifrar que llevan números de tarjeta, datos bancarios, contraseñas o claves antes de que salgan de la Mac, y bloquea los datos sacados de contrabando como consultas DNS; no se guarda ni se envía nada. Consulta la documentación.
  2. El Mapa mundial y Actividad muestran cada conexión en vivo y en un historial con búsqueda. Da clic derecho en una conexión para Denegar host, Bloquear IP para todas las apps o Bloquear esta app en todas partes. Consulta la documentación.
  3. Preguntar a FireAI acepta órdenes en lenguaje sencillo como “bloquear” 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 das clic en Aplicar. Consulta 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 está mirando

Los agentes trabajan sin supervisión. La documentación de OpenClaw señala que los remitentes desconocidos se emparejan de forma predeterminada y que los agentes pueden enviar mensajes entre canales a menos que se restrinja [1]; la documentación de Hermes Agent describe un sistema de aprobación de comandos cuyo modo se puede desactivar [7]. Las ejecuciones sin supervisión son donde una acción equivocada o inyectada hace más daño antes de que una persona lo note.

  1. Usa una regla con horario, creada con Preguntar a FireAI, para que el agente solo se conecte en horas definidas, por ejemplo “permitir el agente en horario laboral”; las cuatro ventanas integradas son noche, tarde, horario laboral y fines de semana. Consulta la documentación.
  2. Usa el modo Paranoico cuando el agente se ejecute sin supervisión. Bloquea el tráfico de rastreo, las apps sin firma 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 interruptor de emergencia cuando un agente se comporte mal. Bajo ataque solo permite las apps con una regla Permitir explícita y deja de preguntar. El interruptor de emergencia rechaza las conexiones nuevas a todo lo que esté fuera de la red de casa o de la oficina, y también se puede usar desde la barra de menús [11].
  4. Deja FireAI Pilot para otras apps, o revísalo en Sugerencias, porque responde automáticamente las conexiones en las que tiene confianza; 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 al actualizar.
  5. Mantén la aprobación de comandos en manual donde el agente lo ofrezca.
  6. Combina la lista de permitidos, el interruptor de emergencia 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 adónde y puede cortar internet. No puede impedir que un agente borre, cifre o lea archivos locales, ejecute comandos o cambie ajustes en la Mac.
  • El interruptor de emergencia 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 de loopback entre un navegador y un servicio local no está documentado; actualiza el agente para cerrar ese tipo de fallas.
  • Las listas de amenazas solo bloquean lo que confirman; un servidor nuevo o una skill con comportamiento solo local no quedan cubiertos.
  • Un firewall no corrige las decisiones de diseño del propio agente, como un Gateway vinculado a una dirección pública.
  • Se requieren medidas complementarias: cuentas con privilegios mínimos, sandboxes o máquinas virtuales, respaldos y revisar las skills antes de instalarlas.

Dónde entran FireAI y HisnLabs

Los agentes actúan rápido. Un firewall de red decide adónde pueden conectarse.

FireAI es el producto de HisnLabs: un firewall con IA que corre directamente en tu Mac. Te muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona de manera local, así que tu tráfico nunca se envía a nosotros ni a nadie más. El equipo de investigación en seguridad de HisnLabs es el que mantiene esas decisiones confiables: cataloga qué dominios son simple telemetría y cuáles un servicio real, rastrea el país y la red detrás de cada conexión, y entrena el modelo local (la función FireAI Pilot) con patrones de tráfico reales, sin que nada de eso salga de tu Mac.

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

Fuentes