Volver al blog

Cómo detectar procesos sospechosos en macOS

Aprende a identificar malware y procesos sospechosos en tu Mac mediante la verificación de firmas de código, comprobaciones de Gatekeeper y técnicas de inspección de procesos.

Tu Mac ejecuta cientos de procesos en cualquier momento. La mayoría son servicios del sistema legítimos y apps que instalaste tú mismo. Pero un único proceso malicioso —sin firmar, ejecutándose desde una ruta inusual o abriendo conexiones de red en silencio— puede comprometer toda tu máquina. Saber distinguir entre un daemon del sistema sano y un intruso sospechoso es una de las habilidades de seguridad más prácticas que un usuario de macOS puede desarrollar.

Respuesta rápida

Para detectar procesos sospechosos en macOS, comprueba si faltan firmas de código o si son inválidas con codesign -dvvv, verifica la aprobación de Gatekeeper con spctl --assess e inspecciona la ruta de lanzamiento, el proceso padre, la actividad de red y los entitlements de cada proceso. Los procesos que se ejecutan desde /tmp, /var/folders o ubicaciones con permiso de escritura de usuario sin firmas de Apple o de un desarrollador merecen una investigación inmediata.

Señales de alerta: indicios de un proceso sospechoso

No todo proceso desconocido es malware, pero ciertos patrones deberían elevar tu nivel de alerta:

Paso a paso: investigar un proceso sospechoso

Cuando detectes algo desconocido en tu lista de procesos, recorre estas comprobaciones de forma sistemática.

1. Verificar la firma de código

La comprobación individual más importante. Ejecuta codesign contra el binario:

codesign -dvvv /path/to/suspicious-binary

Busca la cadena de Authority. Una app sana muestra algo como:

Authority=Developer ID Application: Company Name (TEAMID)
Authority=Developer ID Certification Authority
Authority=Apple Root CA

Si ves code object is not signed at all o falta la cadena de autoridad, ese binario nunca fue firmado por un desarrollador identificado.

2. Comprobar el estado de Gatekeeper y de notarización

Gatekeeper de Apple verifica que el software está notarizado, es decir, que se ha enviado a Apple para un análisis automatizado de malware:

spctl --assess --verbose /path/to/suspicious-binary

Una app notarizada devuelve accepted, source=Notarized Developer ID. Cualquier otra cosa significa que el binario eludió el requisito de notarización de Apple o es anterior a él.

3. Inspeccionar la ruta de lanzamiento y los argumentos

Averigua dónde reside realmente el binario del proceso:

ps -eo pid,comm,args | grep <process-name>

Los procesos legítimos del sistema se ejecutan desde /usr/libexec, /System/Library o /Applications. Un proceso llamado com.apple.something que se ejecuta desde /Users/you/Library/LaunchAgents/ con un binario en /tmp está imitando un servicio del sistema.

4. Comprobar los mecanismos de persistencia

El malware suele instalar un LaunchAgent o LaunchDaemon para sobrevivir a los reinicios:

# User-level persistence
ls ~/Library/LaunchAgents/

# System-level persistence
ls /Library/LaunchDaemons/
ls /Library/LaunchAgents/

Abre cualquier archivo .plist desconocido y comprueba la clave ProgramArguments para ver qué binario lanzan.

5. Examinar las conexiones de red

Mira con qué está hablando el proceso:

lsof -i -n -P | grep <PID>

Busca conexiones con IPs desconocidas, especialmente en puertos como 4444, 8080 u otros puertos no estándar que los servidores C2 (mando y control) suelen utilizar.

6. Revisar los entitlements

Los entitlements definen a qué recursos del sistema puede acceder un proceso:

codesign -d --entitlements - /path/to/binary

Un visor de PDF legítimo no debería necesitar com.apple.security.device.camera ni com.apple.security.network.server.

Procesos legítimos comunes que parecen sospechosos

Antes de entrar en pánico, revisa esta lista. Estos procesos del sistema de Apple confunden a los usuarios con regularidad:

ProcesoLo que realmente hace
kernel_taskKernel de macOS; una CPU alta suele significar limitación térmica, no malware
mds / mds_storesMotor de indexación de Spotlight; picos tras instalar apps o copiar archivos
WindowServerCompositor de toda la GUI; una CPU alta suele indicar problemas de escalado de pantalla
nsurlsessiondDescargas en segundo plano para actualizaciones de App Store y sincronización de iCloud
trustdDaemon de evaluación de certificados y confianza
syspolicydAplicación de la política de Gatekeeper
clouddDaemon de sincronización de iCloud Drive
birdAsistente de sincronización de documentos de iCloud
mediaanalysisdProcesamiento de ML de la app Fotos para reconocimiento de rostros/objetos
suggestdSugerencias de Siri e indexación de conocimiento de Spotlight

Si alguno de estos aparece con firmas de Apple válidas y se ejecuta desde /usr/libexec o /System/Library, casi con seguridad es legítimo.

Herramientas para la auditoría de seguridad de procesos

Activity Monitor

Activity Monitor muestra CPU, memoria e información básica de los procesos, pero no puede mostrar firmas de código, entitlements, árboles de procesos padre-hijo ni rutas de lanzamiento de una forma útil. Para el trabajo de seguridad, es un punto de partida en el mejor de los casos.

Terminal: codesign y spctl

Las herramientas de línea de comandos codesign y spctl son la verdad de referencia para la verificación de firmas y notarización. Son esenciales pero tediosas cuando necesitas auditar decenas de procesos: cada una requiere que encuentres la ruta del binario manualmente.

ProcXray

ProcXray lleva la verificación de firmas de código y la inspección de entitlements directamente a una interfaz de monitorización de procesos. Para cada proceso en ejecución puedes ver:

En lugar de ejecutar manualmente codesign -dvvv en cada binario, ProcXray expone el contexto de seguridad de cada proceso en tiempo real. Cuando detectas algo sin firmar o ejecutándose desde una ubicación inesperada, puedes investigar su linaje y su contexto de red sin cambiar al Terminal.

Preguntas frecuentes

¿Cómo sé si un proceso es malware o un servicio legítimo del sistema?

Comprueba tres cosas: (1) firma de código —ejecuta codesign -dvvv y busca una cadena de autoridad de Apple o de un desarrollador identificado, (2) ruta de lanzamiento —los servicios legítimos se ejecutan desde /System o /usr/libexec, no desde /tmp ni directorios ocultos, y (3) persistencia —revisa ~/Library/LaunchAgents y /Library/LaunchDaemons por si hay archivos plist desconocidos que apunten al binario.

¿Puede el malware ocultarse de Activity Monitor?

Sí. Los rootkits pueden interceptar llamadas al sistema para ocultar procesos a las herramientas de espacio de usuario. La protección de integridad del sistema (SIP) de macOS lo dificulta considerablemente: si SIP está activado (csrutil status), la ocultación a nivel de kernel está bloqueada en macOS moderno. Aun así, el malware todavía puede disfrazarse usando nombres con apariencia legítima o inyectándose en procesos firmados.

¿Protege Gatekeeper contra todo el malware?

No. Gatekeeper y la notarización proporcionan una primera capa sólida: bloquean por defecto la ejecución de software sin firmar y sin notarizar. Pero si un usuario anula Gatekeeper explícitamente (clic derecho > Abrir), o si el malware se entrega a través de un proceso que ya se está ejecutando (p. ej., un exploit del navegador), Gatekeeper queda eludido. La defensa en profundidad —comprobar firmas, monitorizar el comportamiento de los procesos y auditar los mecanismos de persistencia— sigue siendo esencial.

Fuentes y referencias

Descargar ProcXray → — verificación de firma de código integrada, macOS Sonoma+.