Una estrategia de defensa empresarial de millones de dólares a menudo se derrumba bajo el peso de un solo contenedor no autenticado. Vi esto de primera mano el trimestre pasado mientras auditaba un laboratorio de investigación que había pasado seis meses reforzando sus clústeres de Kubernetes pero dejó una instancia de ComfyUI abierta para una demostración de fin de semana. Ese único puerto expuesto en el 8188 fue suficiente para eludir cada política de red que tenían implementada. La botnet NadMesh, descubierta a principios de julio de 2026, vive exactamente en esa brecha entre los estándares de seguridad corporativa y el ritmo frenético del despliegue de la IA.
NadMesh es una familia de malware basada en Go que prioriza la identidad sobre el procesamiento bruto. Mientras que las botnets anteriores se centraban en secuestrar GPUs para la minería de Monero, los operadores detrás de NadMesh entienden que un secreto de AWS robado es más valioso que unos pocos miles de hashes por segundo. El XLab de QiAnXin publicó un informe el viernes detallando cómo esta botnet busca generadores de imágenes, ejecutores de modelos locales y constructores de flujos de trabajo que los equipos de ingeniería levantan rápido y protegen con firewalls tarde.
Existe una paradoja fundamental en el despliegue de la IA moderna. Las organizaciones invierten fuertemente en roles IAM de la nube y almacenamiento cifrado, pero permiten que los desarrolladores ejecuten herramientas no autenticadas como Ollama o n8n directamente en el internet público. NadMesh explota esta falta de fricción. La botnet utiliza un recolector de Shodan para mantener su cola de escaneo abastecida con objetivos que ejecutan ComfyUI, Open WebUI, Langflow y Gradio. Estas son las herramientas del stack de IA moderno, y rara vez vienen reforzadas de fábrica.
Recientemente analicé una captura donde un desarrollador desplegó un cuaderno de Marimo para probar un nuevo modelo. Ignoraron las advertencias de seguridad porque solo lo necesitaban por una hora. En veinte minutos, un bot de NadMesh había escaneado la IP, identificado el servicio e intentado un exploit. Esta velocidad es posible porque la botnet trata a internet como una base de datos en la que se pueden realizar búsquedas en lugar de un vasto territorio por el cual deambular. Las subredes que producen aciertos exitosos se vuelven a muestrear cada cinco minutos. Si un objetivo es marcado como peligroso, la botnet regresa cada quince minutos para ejecutar primero un escaneo de alta prioridad de los puertos específicos de IA.
La lógica de escaneo es persistente. Un barrido completo arrastra cada IP marcada como peligrosa en los últimos siete días de vuelta a la parte superior de la cola. El autor claramente sabe que los investigadores y los honeypots están observando. Si un objetivo absorbe diez intentos de despliegue sin devolver un resultado, la botnet lo pone en una lista negra automáticamente. Esto evita que la flota desperdicie recursos en señuelos. Cuando la cola se agota, los bots generan una subred /24 aleatoria y continúan la caza.
Para la segunda semana de julio, las IPs de origen distintas que impulsaban NadMesh se dispararon verticalmente. XLab registró que el recuento saltó de casi cero a alrededor de 139 por día. El propio panel de control del operador, capturado el 10 de julio, afirma haber obtenido 3,811 claves de AWS únicas. Esta discrepancia entre el pequeño número de bots activos y el volumen masivo de credenciales robadas sugiere un motor de automatización altamente eficiente. El operador no necesita una botnet masiva si cada infección rinde una clave maestra para un entorno de nube.
El Protocolo de Contexto de Modelo (MCP) es el vector principal en la lista de prioridades del controlador. MCP es un estándar que permite a los modelos de IA llamar a herramientas externas y acceder a fuentes de datos. Por diseño, la primera especificación de MCP dejó la autenticación fuera del protocolo central. Existe un flujo de autorización a partir de marzo de 2025, pero la especificación lo describe como opcional. Muchos desarrolladores lo omiten para ahorrar tiempo durante la configuración.
Censys contabilizó más de 21,000 servicios MCP accesibles para mayo de 2026. Aproximadamente 90 de ellos anunciaban una herramienta llamada execute_command. Esta herramienta es la llamada exacta que encabeza la tabla de exploits de NadMesh. La botnet utiliza un JSON-RPC tools/call para activar este comando. No hay ningún CVE asociado con esta actividad porque el software está funcionando exactamente como fue configurado. El problema no es un error en el código. El problema es un protocolo que permite la ejecución de comandos no autenticados por defecto.
Cuando un bot compromete con éxito un host, no solo instala un minero. Cataloga el entorno. El flujo de inteligencia detrás del panel de NadMesh muestra inventarios de modelos DeepSeek, GLM y Kimi. Estos inventarios a menudo están etiquetados con un identificador ":cloud". Esto indica que el bot está mirando más allá de la máquina local e identificando a qué servicios de IA remotos puede acceder el host.
Lo que un bot envía a casa es la identidad de la organización. Extrae claves de la nube de las variables de entorno, extrae tokens de cuentas de servicio de Kubernetes y raspa el contenido de ~/.aws/config. También apunta a archivos .env y ~/.docker/config.json. Los investigadores son claros sobre el motivo. El operador busca las credenciales de la nube y los privilegios del clúster en lugar del host en sí. En una arquitectura moderna, el host es un producto desechable, pero las credenciales proporcionan acceso persistente al plano de datos.
Eliminar NadMesh de un sistema comprometido es difícil debido a sus mecanismos de persistencia redundantes. El agente mantiene tres formas separadas de sobrevivir a un reinicio. Si un administrador encuentra y elimina una entrada, las otras dos permanecen para descargar una copia fresca del malware. Esto es como intentar apagar un incendio que tiene tres fuentes de combustible independientes. Cada compilación del malware también pasa por la ofuscación de Garble y el empaquetado UPX con relleno aleatorio. Esto significa que cada agente tiene un hash de archivo único. Un equipo de seguridad no puede confiar en un solo hash para encontrar infecciones en toda su red.
Cinco versiones de compilación de la botnet funcionan actualmente en estado salvaje. La más común es 33.8-GO-TITAN. El operador utiliza un endpoint canario para probar nuevas compilaciones en una pequeña porción de la flota antes de un lanzamiento general. Este es un nivel de madurez de DevOps que refleja a las empresas de software legítimas a las que atacan. El éxito para el operador se puntúa en una lista de permitidos de resultados que excluye la cosecha de Ollama y AWS. Esto sugiere que el marcador en el panel de control solo muestra una fracción de la operación total.
La mayor parte de lo que lanza NadMesh está dirigido a funcionalidades de administración que se dejan accesibles en el internet público. Esto incluye APIs de Docker abiertas en el puerto 2375, consolas de scripts de Jenkins e instancias de Redis no autenticadas. Ningún parche cierra estos agujeros porque son opciones de configuración. Para asegurar su entorno, debe mover estos servicios detrás de una autenticación o fuera del internet público por completo. Priorice los cuatro puertos que el trabajo de re-escaneo de NadMesh pone primero: 8188 (ComfyUI), 11434 (Ollama), 7860 (Gradio) y 5678 (n8n).
También hay una lista corta de vulnerabilidades que requieren parches inmediatos. CVE-2026-39987 es un fallo de ejecución remota de código previo a la autenticación en los cuadernos de Marimo. CISA lo añadió al catálogo de Vulnerabilidades Explotadas Conocidas en abril. CVE-2026-41176 también es crítico, ya que permite a los llamadores no autenticados cambiar el interruptor de autenticación en los servidores RC de rclone. Dado que las configuraciones de rclone a menudo contienen credenciales de la nube, este es un objetivo de alta prioridad para NadMesh.
Si encuentra indicadores de compromiso, aísle el host inmediatamente. Busque archivos de persistencia en /etc/cron.d/.sys_monitor y archivos ocultos en /dev/shm/.a o /tmp/.a. Revocar las credenciales es el único camino seguro a seguir. Si un host está comprometido, asuma que cada clave de AWS, token de clúster y archivo .env que tocó está ahora en manos del operador. Rotar las claves no es suficiente si el malware sigue presente para robar las nuevas. Debe eliminar la persistencia antes de emitir reemplazos. Audite sus registros en busca de actividad de la IP 209.99.186[.]235 o conexiones al dominio cdnorigin[.]net. El objetivo es verificar dónde se usaron las identidades robadas mientras estuvieron activas.
Fuentes: NIST Cybersecurity Framework, MITRE ATT&CK (Resource Development, Initial Access), QiAnXin XLab NadMesh Report, Censys MCP Census 2026.
Descargo de responsabilidad: Este artículo es solo para fines informativos y educativos y no reemplaza una auditoría de ciberseguridad profesional o un servicio de respuesta a incidentes.



Nuestra solución de correo electrónico cifrado y almacenamiento en la nube de extremo a extremo proporciona los medios más potentes para el intercambio seguro de datos, lo que garantiza la seguridad y la privacidad de sus datos.
/ Crear una cuenta gratuita