Cómo detectar procesos zombie y actividad sospechosa en macOS

Última actualización: 26/02/2026
Autor: Isaac
  • Los procesos zombie en macOS son hijos ya finalizados que siguen listados por fallos del proceso padre, y normalmente no consumen CPU.
  • Un “Mac zombie” dentro de una botnet es distinto: se trata de un equipo infectado que participa en ataques DDoS u otras actividades maliciosas.
  • Herramientas como Monitor de Actividad, ps, top, lsof y pmset permiten detectar procesos anómalos y comportamientos extraños del sistema.
  • Revisar procesos sospechosos, limpiar zombis y usar diagnósticos de Apple ayuda a mantener el Mac estable, seguro y con buen rendimiento.

detectar procesos zombie en macOS

Si notas que tu Mac va más lenta de lo normal, que el ventilador se pone a tope sin motivo aparente o que la batería cae en picado incluso con la tapa cerrada, es bastante probable que haya procesos extraños consumiendo recursos en segundo plano. Entre ellos, los llamados procesos zombie y, en el peor de los casos, procesos asociados a malware o incluso a redes botnet.

Aunque macOS es un sistema bastante seguro, no es intocable. Existen casos documentados de equipos Apple que han acabado formando parte de una red de ordenadores “zombie” utilizada para lanzar ataques DDoS, sobre todo cuando se han instalado aplicaciones pirateadas como iWork o Photoshop. Además, como macOS es un sistema basado en UNIX, hereda también el concepto técnico de proceso zombie, que nada tiene que ver con virus, pero que conviene entender y saber detectar.

Qué es exactamente un proceso zombie en macOS (y en sistemas tipo UNIX)

concepto procesos zombie macOS

En los sistemas UNIX y derivados, como macOS, cada vez que se ejecuta un programa se crea al menos un proceso padre y, muchas veces, uno o varios procesos hijos que se encargan de tareas concretas. Cada proceso tiene un identificador (PID), un propietario, un consumo de CPU, memoria, tiempo de ejecución, etc.

Cuando un proceso hijo termina su trabajo, envía una señal de salida al proceso padre (una llamada exit) indicando que ya ha finalizado. Lo normal es que el proceso padre recoja esa información llamando a wait (o variantes), lea el estado de salida y el sistema operativo elimine la entrada de ese hijo de la tabla de procesos.

Sin embargo, en ocasiones el padre no gestiona bien esa información de salida. Si el proceso padre no llega a leer el estado del hijo que ya ha terminado, el proceso hijo aparece como terminado, pero sigue ocupando una entrada en la tabla de procesos. A esa entrada “fantasma”, que ya no hace nada pero sigue listada, se la denomina proceso zombie.

Piensa en ello como un trabajador de una obra que ya no cobra, no hace nada, pero sigue sentado en la obra ocupando espacio. Un proceso zombie ya está “muerto”: no está ejecutando código ni usando CPU, pero su información básica (PID, estado de salida, algunos metadatos) se mantiene en memoria hasta que el padre la recoja o el sistema la limpie.

Desde el punto de vista del rendimiento, un par de procesos zombie no son un problema grave. Pero si una aplicación está mal programada y va dejando zombis sin eliminar, puedes acabar con muchos de ellos, lo que sí puede ocupar memoria de forma innecesaria y dificultar la gestión de procesos por parte del sistema.

Diferencia entre proceso zombie y Mac “zombie” en una botnet

mac zombie botnet

Conviene distinguir bien dos conceptos que suelen confundirse: un proceso zombie es una figura técnica interna del sistema operativo; un Mac zombie es un ordenador controlado por un tercero para realizar ataques, normalmente de forma remota.

En el pasado se detectaron troyanos en versiones pirateadas de iWork’09 y Photoshop CS4 que instalaban en el Mac un componente llamado iWorkServices (o iworkserv). Este proceso convertía el equipo en parte de una botnet que se utilizaba para realizar ataques de denegación de servicio (DDoS) contra determinados objetivos.

En ese contexto, tu equipo pasa a ser un “zombie” dentro de una red de ordenadores infectados: alguien puede estar usando tu Mac para atacar servidores en Internet sin que tú seas consciente. Aunque hoy los antivirus y herramientas de seguridad detectan con bastante facilidad esos troyanos concretos, en caso de haber instalado software pirateado sigue siendo recomendable revisar el sistema.

Por tanto, mientras que los procesos zombie no ejecutan nada ni te están atacando, un Mac zombie dentro de una botnet sí está realizando actividad ilegítima, consumiendo recursos y exponiéndote a problemas legales y de seguridad.

Lo interesante es que, tanto para detectar malware que convierte tu Mac en un zombie, como para localizar procesos zombie “clásicos” de UNIX, vas a usar herramientas muy similares: Monitor de Actividad y comandos de Terminal.

Cómo detectar si tu Mac forma parte de una botnet (caso iWorkServices y similares)

Si en algún momento has instalado versiones no oficiales de iWork’09, Photoshop CS4 u otro software pirateado, es importante que revises si en tu sistema se encuentra el proceso sospechoso asociado a la antigua botnet, u otros procesos rara vez presentes en instalaciones limpias.

  Cómo desinstalar programas en Mac paso a paso y sin dejar restos

Para ello, puedes usar la Terminal. Abre Spotlight, escribe Terminal y pulsa Intro. Una vez dentro, utiliza este comando básico para comprobar si el proceso iWorkServices (iworkserv) está activo:

sudo ps aux | grep -i iworkserv | grep -v "grep"

El comando lista todos los procesos y filtra por el nombre sospechoso. Si la ejecución no devuelve ninguna línea, puedes respirar relativamente tranquilo: en principio no tienes ese proceso en marcha. Si, por el contrario, aparece alguna coincidencia, es muy posible que haya restos de la antigua amenaza o algo similar.

El siguiente paso es revisar si ese proceso tiene archivos o conexiones abiertas. Puedes utilizar:

sudo lsof -i -P | grep -i iworkserv

Si observas ficheros abiertos o conexiones de red asociadas a ese proceso, es casi seguro que estás infectado o que quedan restos de una infección. Para localizar los archivos en el disco, usa:

sudo find / -iname "iworkserv*" -print

Con esta búsqueda obtendrás la ruta de todos los ficheros cuyo nombre comience por iworkserv, lo cual te permitirá confirmar la presencia del componente malicioso. En aquel momento se recomendaba usar una herramienta gratuita de un proveedor de seguridad (por ejemplo, SecureMac) para eliminar el troyano de forma automática; hoy en día es más práctico recurrir a un antivirus actualizado o al soporte oficial de Apple si tienes dudas.

Monitor de Actividad: tu primera ventana a los procesos de macOS

Antes de lanzarte a la Terminal, conviene familiarizarse con Monitor de Actividad, la utilidad gráfica de macOS que permite ver qué se está ejecutando en el equipo en cada momento. La encontrarás en Aplicaciones > Utilidades > Monitor de Actividad.

Al abrirla, verás una lista de procesos con columnas como PID, nombre, usuario, % de CPU, tiempo de CPU, hilos, memoria, uso de GPU y otros datos. Puedes ordenar por cualquier columna haciendo clic en el encabezado correspondiente, lo que te ayuda a identificar rápidamente qué está consumiendo más recursos.

En la parte superior, tienes varias pestañas: CPU, Memoria, Energía, Disco y Red. Cada una te muestra información específica: qué procesos consumen más CPU, cuánta RAM se está usando, qué apps tiran más de batería o disco, o qué procesos están generando tráfico de red.

A la izquierda de esas pestañas verás tres botones clave: Detener, Obtener información y el menú de muestra/diagnóstico. El botón Detener es, en esencia, una interfaz amigable para enviar señales tipo kill a un proceso, como harías desde la Terminal. Seleccionas un proceso y pulsas Detener para cerrarlo.

Si eliges “Obtener información”, se abre una ventana con detalles del proceso: memoria utilizada, estadísticas, archivos abiertos, puertos activos, etc. Desde esa misma ventana puedes generar una “muestra” (sample) que captura el estado interno del proceso, con pilas de llamadas y frameworks en uso, útil para depurar bloqueos o comportamientos raros.

Comandos de Terminal para analizar procesos en macOS

Para usuarios que quieran ir un poco más allá, la Terminal ofrece varias herramientas clásicas de UNIX para analizar qué se ejecuta en el sistema y cómo se comporta, y si necesitas controlar prioridades, consulta ejemplos prácticos de uso de nice y renice.

El comando más conocido es top, que muestra en tiempo real los procesos más activos, similar a un Monitor de Actividad en modo texto. Basta con escribir:

top

y pulsar Intro. Verás una tabla actualizada periódicamente con procesos ordenados por consumo de CPU, junto con estadísticas de sistema. Si quieres aprender todas sus opciones, puedes consultar su manual con:

man top

Otra utilidad muy práctica es ps, que permite volcar a un fichero o a pantalla una lista de todos los procesos activos. Por ejemplo, si quieres guardar una fotografía de los procesos en un archivo de texto en tu Escritorio, puedes usar:

ps -A > /Users/TU_USUARIO/Desktop/procesos.txt

Cambiando TU_USUARIO por tu nombre real de usuario del sistema. Ese archivo de texto puede analizarse a mano o subirse a servicios online (como el clásico de triviaware) que describen cada proceso y te ayudan a identificar programas legítimos y procesos potencialmente maliciosos.

Cómo encontrar y analizar procesos zombie desde la Terminal

Localizar procesos zombie en macOS es bastante sencillo usando comandos estándar. Los procesos zombie se marcan con el estado “Z” en la salida de ps, así que puedes filtrarlos de esta manera:

ps aux | grep Z

Este comando mostrará las líneas de procesos cuyo estado contiene la letra Z, que corresponde a “zombie”. Ten en cuenta que también puede aparecer la propia línea del comando grep; lo importante es identificar las entradas cuyo estado indica realmente proceso zombie.

  Consejos clave de seguridad en macros de Excel

Si encuentras uno o varios, recuerda que no están consumiendo CPU ni realizando trabajo activo; simplemente ocupan una entrada en la tabla de procesos porque el proceso padre no ha recogido su estado de salida.

Normalmente, para terminar procesos vivos se utiliza SIGKILL (por ejemplo, con kill -9 PID), pero en el caso de los zombis esto no sirve: no puedes “matar” algo que técnicamente ya está muerto. La clave está en actuar sobre el proceso padre.

Cómo intentar eliminar procesos zombie (sin liarla demasiado)

La forma teóricamente más elegante de limpiar zombies consiste en enviar una señal al proceso padre para que recoja el estado de sus hijos muertos. En muchos sistemas UNIX se utiliza:

kill -s SIGCHLD PID_DEL_PADRE

Reemplaza PID_DEL_PADRE por el identificador del proceso que figura como padre en la salida de ps. Con esta señal, se invita al proceso padre a ejecutar la rutina de espera (wait) y limpiar a los hijos zombi que tenga pendientes.

En la práctica, sin embargo, si la aplicación está mal programada y no gestiona adecuadamente estas señales, lo más efectivo suele ser terminar el proceso padre. Cuando el padre muere, el sistema operativo reasigna sus hijos (incluidos los zombies) al proceso init (o su equivalente en macOS), que sí los recogerá y limpiará automáticamente.

Aunque esta solución es eficaz, hay que aplicar algo de sentido común: no conviene matar procesos críticos del sistema porque podrías provocar inestabilidad, cierres de sesión o reinicios inesperados. Antes de matar nada, asegúrate de saber qué hace ese proceso (con Monitor de Actividad, consultando documentación o usando servicios de análisis de procesos).

Cómo detectar procesos sospechosos y comportamientos extraños en macOS

Más allá de los zombies, puede que lo que te preocupe sea un comportamiento raro del equipo: la batería se desploma con la tapa cerrada, el ventilador no para, el portátil está caliente en la mochila, etc. En muchos casos, estos síntomas indican que algún proceso impide la correcta suspensión o está usando la CPU de forma continua.

En Mac portátiles modernos es relativamente común ver procesos de indexación (como los relacionados con Spotlight o Fotos) consumiendo CPU mientras el equipo está encendido. El problema es cuando eso se mantiene incluso con la tapa cerrada o en momentos en que el sistema debería estar durmiendo.

Para investigar qué ocurre en esos momentos, puedes usar el comando pmset -g log en la Terminal, que muestra registros relacionados con gestión de energía, reposo y activaciones del sistema. Analizando estos logs puedes detectar qué proceso o servicio está impidiendo la suspensión o provocando despertares continuos que se comen la batería.

Si no te aclaras con la lectura del registro, una forma más sencilla de aproximarte al problema es revisar Monitor de Actividad ordenando por consumo de energía y CPU, sobre todo justo después de abrir la tapa o cuando notes que el equipo está caliente. Un proceso que se dispare continuamente en estas vistas es sospechoso y conviene buscar información sobre él.

Uso de diagnóstico de Apple para descartar problemas de hardware

En algunas ocasiones, un comportamiento anómalo que atribuimos a procesos locos o zombies puede deberse a un problema de hardware (batería defectuosa, ventilador, sensores de temperatura, etc.). Para descartar estas causas, puedes usar el Diagnóstico de Apple incluido en los Mac.

Antes de nada, es buena idea instalar las actualizaciones más recientes de macOS. Después, apaga completamente el Mac. Si no responde, mantén pulsado el botón de encendido (o Touch ID en portátiles modernos) unos 10 segundos hasta que se apague.

Desconecta todos los dispositivos externos excepto teclado, ratón, pantalla, conexión a la corriente y, si la usas, la conexión Ethernet. Coloca el Mac en una superficie firme, plana y bien ventilada para que las pruebas se ejecuten en condiciones óptimas.

A partir de aquí, el procedimiento cambia ligeramente según tengas un Mac con chip de Apple (M1, M2, etc.) o un Mac con procesador Intel. En ambos casos, el sistema te irá guiando paso a paso en pantalla, pidiéndote que elijas red Wi‑Fi si es necesario o permitiéndote ejecutar diagnósticos sin conexión si no tienes Internet disponible.

En versiones recientes del sistema (por ejemplo, macOS con nombre interno Tahoe 26 y superiores), el propio diagnóstico te pedirá que selecciones qué tipo de prueba quieres ejecutar: pantalla, teclado, trackpad, etc. En versiones anteriores, estas pruebas son más automáticas y menos configurables.

Cuando el diagnóstico termina, verás uno o varios códigos de referencia. Esos códigos se pueden consultar en la página oficial de Soporte de Apple para saber qué significan exactamente. Si con esa información no consigues resolver el problema, lo recomendable es acudir a un Apple Store, a un Proveedor de Servicios Autorizado o a un reparador independiente llevando apuntados los códigos, porque ayudarán mucho a acotar la avería.

  LLMNR e IPv6: qué es, riesgos en Wi‑Fi público y cómo desactivarlo

Gestión avanzada de procesos: vistas, columnas y diagnósticos extra

Volviendo a Monitor de Actividad, hay varias opciones “ocultas” que te permiten tener un control mucho más fino sobre lo que pasa en el sistema y, de paso, ayudarte a cazar procesos zombie o sospechosos.

En el menú Ver > Columnas puedes activar y desactivar muchas columnas adicionales más allá de las que aparecen por defecto: número de despertares, prioridad, puertos abiertos, uso de GPU, etc. Ajustando estas columnas a lo que te interesa, es más fácil localizar procesos atípicos.

Desde el mismo menú Ver también puedes cambiar la frecuencia de actualización del listado, filtrar por tipo de proceso (solo procesos de usuario, de sistema, ventanas del usuario actual, etc.) o borrar el historial de CPU. Esto es útil si vas a observar el comportamiento del sistema durante unos minutos y quieres partir de “cero”.

En el menú Ventana encontrarás accesos a gráficos flotantes de historial de CPU, uso instantáneo de CPU e historial de GPU. Estos gráficos pueden anclarse en una esquina y te permiten ver de un vistazo si hay picos de actividad en momentos en los que no deberías tener nada pesado abierto.

Por último, el icono del Dock de Monitor de Actividad se puede configurar como un indicador en vivo del uso de CPU o de la carga del sistema, lo que te da una pista visual constante de si hay procesos que están tirando de la máquina aunque no tengas la aplicación en primer plano.

DNS, procesos en red y su relación indirecta con procesos anómalos

Aunque borrar la caché DNS de tu Mac no elimina procesos zombie ni malware, sí puede ser útil cuando detectas problemas al acceder a determinadas webs o sospechas que hay algo raro con las resoluciones de nombres de dominio.

La caché DNS es básicamente una lista local donde el sistema guarda las últimas traducciones de nombres de dominio a direcciones IP. Así, cuando vuelves a visitar un sitio web, macOS no tiene que preguntar de nuevo al servidor DNS externo, lo que agiliza mucho la navegación. Pero si un sitio ha cambiado de servidor, IP o ha habido alguna incidencia con la resolución, esa caché puede quedar desactualizada y provocar fallos intermitentes.

En macOS Big Sur y versiones cercanas, puedes vaciar la caché DNS manualmente abriendo la Terminal y usando:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

El sistema te pedirá tu contraseña de administrador. Al ejecutarlo, se vacía la caché interna y se reinicia el servicio mDNSResponder. Ten en cuenta que, durante un rato, algunas webs pueden tardar algo más en cargar, porque tu Mac tendrá que reconstruir de cero su caché de resoluciones.

En versiones anteriores del sistema, el comando cambia ligeramente. Por ejemplo, en macOS Sierra se suele usar:

sudo killall -HUP mDNSResponder; say DNS cache has been flushed

Y en OS X El Capitan y Yosemite es habitual este formato:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say cache flushed

También hay aplicaciones de terceros, como algunas suites de mantenimiento tipo CleanMyMac X, que incluyen una opción gráfica para limpiar la caché DNS sin usar la Terminal. Este tipo de herramientas pueden ser cómodas, pero siempre conviene descargarlas de fuentes de confianza y, a ser posible, certificadas por Apple.

En cualquier caso, el borrado de la caché DNS es algo que solo deberías hacer cuando tenga sentido: tras una migración de web, un cambio de IP del servidor o cuando detectas problemas de resolución persistentes. No es una operación que haya que repetir por rutina ni solucionará por sí sola cuestiones de procesos zombie o consumo de CPU indebido.

Combinando todo lo anterior —Monitor de Actividad, comandos como ps, top, lsof, logs de pmset y, en menor medida, la gestión de DNS— tendrás una visión bastante completa de qué se está ejecutando en tu Mac en cada momento, qué se comporta de manera anómala y cómo actuar para corregirlo. Entender la diferencia entre procesos zombies inofensivos, procesos mal programados que dejan restos, y un Mac realmente “zombie” dentro de una botnet es clave para no alarmarse de más, pero tampoco bajar la guardia.

ejemplos de uso de nice, renice e ionice en linux
Artículo relacionado:
Ejemplos prácticos de uso de nice, renice e ionice en Linux